Home | History | Annotate | Download | only in testing
      1 package(default_visibility = [
      2     "//visibility:public",
      3 ])
      4 
      5 licenses(["notice"])  # Apache 2.0
      6 
      7 load(
      8     "//tensorflow/lite:build_def.bzl",
      9     "gen_zip_test",
     10     "generated_test_models_all",
     11 )
     12 load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite")
     13 load("//tensorflow:tensorflow.bzl", "tf_py_wrap_cc")
     14 load(
     15     "//tensorflow:tensorflow.bzl",
     16     "tf_cc_binary",
     17     "tf_cc_test",
     18     "py_test",
     19 )
     20 
     21 [gen_zip_test(
     22     name = "zip_test_%s" % test_name,
     23     size = "large",
     24     srcs = ["generated_examples_zip_test.cc"],
     25     args = args + select({
     26         "//tensorflow:android": [],
     27         "//conditions:default": [
     28             "--zip_file_path=$(location :zip_%s)" % test_name,
     29             # TODO(angerson) We may be able to add an external unzip binary instead
     30             # of relying on an existing one for OSS builds.
     31             "--unzip_binary_path=/usr/bin/unzip",
     32         ],
     33     }),
     34     conversion_mode = conversion_mode,
     35     data = [
     36         ":zip_%s" % test_name,
     37     ],
     38     shard_count = 20,
     39     tags = tags + [
     40         "gen_zip_test",
     41         "tflite_not_portable_intentional",
     42     ],
     43     test_name = test_name,
     44     deps = [
     45         ":parse_testdata_lib",
     46         ":tflite_driver",
     47         ":util",
     48         "@com_google_googletest//:gtest",
     49         "@com_googlesource_code_re2//:re2",
     50         "//tensorflow/lite:builtin_op_data",
     51         "//tensorflow/lite:framework",
     52         "//tensorflow/lite/kernels:builtin_ops",
     53     ] + select({
     54         "//conditions:default": [
     55             "//tensorflow/core:framework_internal",
     56             "//tensorflow/core:lib",
     57             "//tensorflow/core:test",
     58         ],
     59         "//tensorflow:android": [
     60             "//tensorflow/core:android_tensorflow_lib",
     61             "//tensorflow/core:android_tensorflow_test_lib",
     62         ],
     63     }),
     64 ) for conversion_mode, test_name, tags, args in generated_test_models_all()]
     65 
     66 test_suite(
     67     name = "generated_zip_tests",
     68     tags = [
     69         "gen_zip_test",
     70     ],
     71 )
     72 
     73 py_binary(
     74     name = "generate_examples",
     75     srcs = ["generate_examples.py"],
     76     data = [
     77         "//tensorflow/lite/toco",
     78     ],
     79     srcs_version = "PY2AND3",
     80     deps = [
     81         ":generate_examples_report",
     82         ":string_util_wrapper",
     83         "//tensorflow:tensorflow_py",
     84         "//tensorflow/python:graph_util",
     85         "//third_party/py/numpy",
     86         "@six_archive//:six",
     87     ],
     88 )
     89 
     90 py_library(
     91     name = "generate_examples_report",
     92     srcs = ["generate_examples_report.py"],
     93     srcs_version = "PY2AND3",
     94 )
     95 
     96 cc_library(
     97     name = "parse_testdata_lib",
     98     srcs = ["parse_testdata.cc"],
     99     hdrs = ["parse_testdata.h"],
    100     deps = [
    101         ":message",
    102         ":split",
    103         ":test_runner",
    104         "//tensorflow/lite:framework",
    105     ],
    106 )
    107 
    108 cc_library(
    109     name = "message",
    110     srcs = ["message.cc"],
    111     hdrs = ["message.h"],
    112     deps = [":tokenize"],
    113 )
    114 
    115 cc_test(
    116     name = "message_test",
    117     srcs = ["message_test.cc"],
    118     deps = [
    119         ":message",
    120         "@com_google_googletest//:gtest_main",
    121     ],
    122 )
    123 
    124 cc_library(
    125     name = "split",
    126     srcs = ["split.cc"],
    127     hdrs = ["split.h"],
    128     deps = [
    129         "//tensorflow/lite:string",
    130     ],
    131 )
    132 
    133 cc_test(
    134     name = "split_test",
    135     size = "small",
    136     srcs = ["split_test.cc"],
    137     deps = [
    138         ":split",
    139         "@com_google_googletest//:gtest_main",
    140     ],
    141 )
    142 
    143 cc_library(
    144     name = "join",
    145     hdrs = ["join.h"],
    146     deps = ["//tensorflow/lite:string"],
    147 )
    148 
    149 cc_test(
    150     name = "join_test",
    151     size = "small",
    152     srcs = ["join_test.cc"],
    153     deps = [
    154         ":join",
    155         "@com_google_googletest//:gtest_main",
    156     ],
    157 )
    158 
    159 cc_library(
    160     name = "tflite_driver",
    161     srcs = ["tflite_driver.cc"],
    162     hdrs = ["tflite_driver.h"],
    163     deps = [
    164         ":join",
    165         ":split",
    166         ":test_runner",
    167         "//tensorflow/lite:builtin_op_data",
    168         "//tensorflow/lite:framework",
    169         "//tensorflow/lite:string_util",
    170         "//tensorflow/lite/delegates/flex:delegate",
    171         "//tensorflow/lite/kernels:builtin_ops",
    172         "//tensorflow/lite/kernels:reference_ops",
    173         "@com_google_absl//absl/strings",
    174     ],
    175 )
    176 
    177 tf_cc_test(
    178     name = "tflite_driver_test",
    179     size = "small",
    180     srcs = ["tflite_driver_test.cc"],
    181     data = ["//tensorflow/lite:testdata/multi_add.bin"],
    182     tags = [
    183         "tflite_not_portable_android",
    184         "tflite_not_portable_ios",
    185     ],
    186     deps = [
    187         ":tflite_driver",
    188         "@com_google_googletest//:gtest_main",
    189     ],
    190 )
    191 
    192 cc_library(
    193     name = "tokenize",
    194     srcs = ["tokenize.cc"],
    195     hdrs = ["tokenize.h"],
    196     deps = [
    197         "//tensorflow/lite:string",
    198     ],
    199 )
    200 
    201 cc_test(
    202     name = "tokenize_test",
    203     srcs = ["tokenize_test.cc"],
    204     deps = [
    205         ":tokenize",
    206         "@com_google_googletest//:gtest_main",
    207     ],
    208 )
    209 
    210 cc_library(
    211     name = "test_runner",
    212     hdrs = ["test_runner.h"],
    213     deps = [
    214         "//tensorflow/lite:string",
    215     ],
    216 )
    217 
    218 cc_library(
    219     name = "util",
    220     hdrs = ["util.h"],
    221     deps = [
    222         "//tensorflow/lite:framework",
    223         "//tensorflow/lite:string",
    224         "//tensorflow/lite/core/api",
    225     ],
    226 )
    227 
    228 cc_test(
    229     name = "test_runner_test",
    230     srcs = ["test_runner_test.cc"],
    231     deps = [
    232         ":test_runner",
    233         "@com_google_googletest//:gtest_main",
    234     ],
    235 )
    236 
    237 tf_cc_binary(
    238     name = "nnapi_example",
    239     srcs = ["nnapi_example.cc"],
    240     deps = [
    241         ":parse_testdata_lib",
    242         ":tflite_driver",
    243         "//tensorflow/lite/nnapi:nnapi_implementation",
    244     ],
    245 )
    246 
    247 cc_library(
    248     name = "tf_driver",
    249     srcs = ["tf_driver.cc"],
    250     hdrs = ["tf_driver.h"],
    251     deps = [
    252         ":join",
    253         ":split",
    254         ":test_runner",
    255         "//tensorflow/core:core_cpu",
    256         "//tensorflow/core:framework",
    257         "//tensorflow/core:lib",
    258         "//tensorflow/core:tensorflow",
    259         "//tensorflow/lite:string_util",
    260         "@com_google_absl//absl/strings",
    261     ],
    262 )
    263 
    264 tf_cc_test(
    265     name = "tf_driver_test",
    266     size = "small",
    267     srcs = ["tf_driver_test.cc"],
    268     data = ["//tensorflow/lite:testdata/multi_add.pb"],
    269     tags = [
    270         "tflite_not_portable",
    271     ],
    272     deps = [
    273         ":tf_driver",
    274         "//tensorflow/lite:string_util",
    275         "@com_google_absl//absl/strings",
    276         "@com_google_googletest//:gtest_main",
    277     ],
    278 )
    279 
    280 cc_library(
    281     name = "generate_testspec",
    282     srcs = ["generate_testspec.cc"],
    283     hdrs = ["generate_testspec.h"],
    284     deps = [
    285         ":join",
    286         ":split",
    287         ":tf_driver",
    288         "//tensorflow/core:framework",
    289         "//tensorflow/lite:string",
    290     ],
    291 )
    292 
    293 tf_cc_test(
    294     name = "generate_testspec_test",
    295     size = "small",
    296     srcs = ["generate_testspec_test.cc"],
    297     tags = [
    298         "tflite_not_portable",
    299     ],
    300     deps = [
    301         ":generate_testspec",
    302         "@com_google_googletest//:gtest_main",
    303     ],
    304 )
    305 
    306 cc_library(
    307     name = "init_tensorflow",
    308     srcs = [
    309         "init_tensorflow.cc",
    310     ],
    311     hdrs = [
    312         "init_tensorflow.h",
    313     ],
    314     visibility = [
    315         "//tensorflow/lite/java/src/main/native:__subpackages__",
    316         "//tensorflow/lite/testing:__subpackages__",
    317         "//tensorflow/lite/tools/benchmark:__subpackages__",
    318     ],
    319     deps = select({
    320         "//conditions:default": [
    321             "//tensorflow/core:lib",
    322         ],
    323         "//tensorflow:android": [
    324             "//tensorflow/core:android_tensorflow_lib",
    325         ],
    326     }),
    327 )
    328 
    329 cc_library(
    330     name = "tflite_diff_util",
    331     srcs = ["tflite_diff_util.cc"],
    332     hdrs = ["tflite_diff_util.h"],
    333     deps = [
    334         ":generate_testspec",
    335         ":parse_testdata_lib",
    336         ":tflite_driver",
    337         "//tensorflow/lite:framework",
    338         "//tensorflow/lite:string",
    339     ],
    340 )
    341 
    342 cc_library(
    343     name = "tflite_diff_flags",
    344     hdrs = ["tflite_diff_flags.h"],
    345     deps = [
    346         ":split",
    347         ":tflite_diff_util",
    348     ] + select({
    349         "//conditions:default": [
    350             "//tensorflow/core:framework_internal",
    351             "//tensorflow/core:lib",
    352         ],
    353         "//tensorflow:android": [
    354             "//tensorflow/core:android_tensorflow_lib",
    355         ],
    356     }),
    357 )
    358 
    359 tf_cc_test(
    360     name = "tflite_diff_example_test",
    361     size = "medium",
    362     srcs = ["tflite_diff_example_test.cc"],
    363     args = [
    364         "--tensorflow_model=third_party/tensorflow/lite/testdata/multi_add.pb",
    365         "--tflite_model=third_party/tensorflow/lite/testdata/multi_add.bin",
    366         "--input_layer=a,b,c,d",
    367         "--input_layer_type=float,float,float,float",
    368         "--input_layer_shape=1,3,4,3:1,3,4,3:1,3,4,3:1,3,4,3",
    369         "--output_layer=x,y",
    370     ],
    371     data = [
    372         "//tensorflow/lite:testdata/multi_add.bin",
    373         "//tensorflow/lite:testdata/multi_add.pb",
    374     ],
    375     tags = [
    376         "no_cuda_on_cpu_tap",
    377         "no_oss",  # needs test data
    378         "tflite_not_portable",
    379     ],
    380     deps = [
    381         ":init_tensorflow",
    382         ":tflite_diff_flags",
    383         ":tflite_diff_util",
    384     ],
    385 )
    386 
    387 tf_cc_binary(
    388     name = "tflite_diff",
    389     srcs = ["tflite_diff_example_test.cc"],
    390     deps = [
    391         ":init_tensorflow",
    392         ":tflite_diff_flags",
    393         ":tflite_diff_util",
    394     ],
    395 )
    396 
    397 cc_library(
    398     name = "string_util_lib",
    399     srcs = ["string_util.cc"],
    400     hdrs = ["string_util.h"],
    401     deps = [
    402         "//tensorflow/lite:string_util",
    403         "//tensorflow/lite/python/interpreter_wrapper:numpy",
    404         "//tensorflow/lite/python/interpreter_wrapper:python_utils",
    405         "//third_party/py/numpy:headers",
    406         "//third_party/python_runtime:headers",
    407         "@com_google_absl//absl/strings",
    408     ],
    409 )
    410 
    411 tf_py_wrap_cc(
    412     name = "string_util_wrapper",
    413     srcs = [
    414         "string_util.i",
    415     ],
    416     deps = [
    417         ":string_util_lib",
    418         "//third_party/python_runtime:headers",
    419     ],
    420 )
    421 
    422 tflite_portable_test_suite()
    423