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