1load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite_combined") 2load("//tensorflow:tensorflow.bzl", "get_compatible_with_portable") 3 4package( 5 default_visibility = ["//visibility:public"], 6 licenses = ["notice"], # Apache 2.0 7) 8 9EMSCRIPTEN_LINKOPTS = [ 10 "-s ASSERTIONS=2", 11 "-s ERROR_ON_UNDEFINED_SYMBOLS=1", 12 "-s DEMANGLE_SUPPORT=1", 13 "-s EXIT_RUNTIME=1", 14 "-s ALLOW_MEMORY_GROWTH=1", 15 "-s TOTAL_MEMORY=134217728", 16] 17 18exports_files([ 19 "xnnpack_delegate.h", 20]) 21 22cc_library( 23 name = "xnnpack_delegate", 24 srcs = ["xnnpack_delegate.cc"], 25 hdrs = ["xnnpack_delegate.h"], 26 linkstatic = True, 27 deps = [ 28 "//tensorflow/lite:kernel_api", 29 "//tensorflow/lite:minimal_logging", 30 "//tensorflow/lite:util", 31 "//tensorflow/lite/c:common", 32 "//tensorflow/lite/schema:schema_fbs", 33 "//tensorflow/lite/tools/optimize/sparsity:format_converter", 34 "@FP16", 35 "@XNNPACK//:xnnpack_f32", 36 ], 37) 38 39cc_library( 40 name = "xnnpack_delegate_hdrs_only", 41 hdrs = ["xnnpack_delegate.h"], 42 compatible_with = get_compatible_with_portable(), 43 visibility = ["//tensorflow/lite:__subpackages__"], 44 deps = [ 45 "//tensorflow/lite/c:common", 46 ], 47) 48 49cc_library( 50 name = "xnnpack_delegate_test_mode", 51 srcs = ["xnnpack_delegate.cc"], 52 hdrs = ["xnnpack_delegate.h"], 53 copts = ["-DXNNPACK_DELEGATE_TEST_MODE=1"], 54 linkstatic = True, 55 deps = [ 56 "//tensorflow/lite:kernel_api", 57 "//tensorflow/lite:minimal_logging", 58 "//tensorflow/lite:util", 59 "//tensorflow/lite/c:common", 60 "//tensorflow/lite/schema:schema_fbs", 61 "//tensorflow/lite/tools/optimize/sparsity:format_converter", 62 "@FP16", 63 "@XNNPACK", 64 ], 65) 66 67################################ Tester classes ################################ 68 69cc_library( 70 name = "binary_elementwise_tester", 71 testonly = 1, 72 srcs = ["binary_elementwise_tester.cc"], 73 hdrs = ["binary_elementwise_tester.h"], 74 deps = [ 75 "//tensorflow/lite:framework", 76 "//tensorflow/lite:schema_fbs_version", 77 "//tensorflow/lite/c:common", 78 "//tensorflow/lite/kernels:builtin_ops", 79 "//tensorflow/lite/schema:schema_conversion_utils", 80 "//tensorflow/lite/schema:schema_fbs", 81 "@FP16", 82 "@com_google_googletest//:gtest", 83 "@flatbuffers", 84 ], 85) 86 87cc_library( 88 name = "conv_2d_tester", 89 testonly = 1, 90 srcs = ["conv_2d_tester.cc"], 91 hdrs = ["conv_2d_tester.h"], 92 deps = [ 93 "//tensorflow/lite:framework", 94 "//tensorflow/lite:schema_fbs_version", 95 "//tensorflow/lite/c:common", 96 "//tensorflow/lite/kernels:builtin_ops", 97 "//tensorflow/lite/schema:schema_conversion_utils", 98 "//tensorflow/lite/schema:schema_fbs", 99 "@FP16", 100 "@com_google_googletest//:gtest", 101 "@flatbuffers", 102 ], 103) 104 105cc_library( 106 name = "depth_to_space_tester", 107 testonly = 1, 108 srcs = ["depth_to_space_tester.cc"], 109 hdrs = ["depth_to_space_tester.h"], 110 deps = [ 111 "//tensorflow/lite:framework", 112 "//tensorflow/lite:schema_fbs_version", 113 "//tensorflow/lite/c:common", 114 "//tensorflow/lite/kernels:builtin_ops", 115 "//tensorflow/lite/schema:schema_conversion_utils", 116 "//tensorflow/lite/schema:schema_fbs", 117 "@com_google_googletest//:gtest", 118 "@flatbuffers", 119 ], 120) 121 122cc_library( 123 name = "depthwise_conv_2d_tester", 124 testonly = 1, 125 srcs = ["depthwise_conv_2d_tester.cc"], 126 hdrs = ["depthwise_conv_2d_tester.h"], 127 deps = [ 128 "//tensorflow/lite:framework", 129 "//tensorflow/lite:schema_fbs_version", 130 "//tensorflow/lite/c:common", 131 "//tensorflow/lite/kernels:builtin_ops", 132 "//tensorflow/lite/schema:schema_conversion_utils", 133 "//tensorflow/lite/schema:schema_fbs", 134 "@FP16", 135 "@com_google_googletest//:gtest", 136 "@flatbuffers", 137 ], 138) 139 140cc_library( 141 name = "fully_connected_tester", 142 testonly = 1, 143 srcs = ["fully_connected_tester.cc"], 144 hdrs = ["fully_connected_tester.h"], 145 deps = [ 146 "//tensorflow/lite:framework", 147 "//tensorflow/lite:schema_fbs_version", 148 "//tensorflow/lite/c:common", 149 "//tensorflow/lite/kernels:builtin_ops", 150 "//tensorflow/lite/schema:schema_conversion_utils", 151 "//tensorflow/lite/schema:schema_fbs", 152 "@FP16", 153 "@com_google_googletest//:gtest", 154 "@flatbuffers", 155 ], 156) 157 158cc_library( 159 name = "leaky_relu_tester", 160 testonly = 1, 161 srcs = ["leaky_relu_tester.cc"], 162 hdrs = ["leaky_relu_tester.h"], 163 deps = [ 164 "//tensorflow/lite:framework", 165 "//tensorflow/lite:schema_fbs_version", 166 "//tensorflow/lite/c:common", 167 "//tensorflow/lite/kernels:builtin_ops", 168 "//tensorflow/lite/schema:schema_conversion_utils", 169 "//tensorflow/lite/schema:schema_fbs", 170 "@com_google_googletest//:gtest", 171 "@flatbuffers", 172 ], 173) 174 175cc_library( 176 name = "pad_tester", 177 testonly = 1, 178 srcs = ["pad_tester.cc"], 179 hdrs = ["pad_tester.h"], 180 deps = [ 181 "//tensorflow/lite:framework", 182 "//tensorflow/lite:schema_fbs_version", 183 "//tensorflow/lite/c:common", 184 "//tensorflow/lite/kernels:builtin_ops", 185 "//tensorflow/lite/schema:schema_conversion_utils", 186 "//tensorflow/lite/schema:schema_fbs", 187 "@com_google_googletest//:gtest", 188 "@flatbuffers", 189 ], 190) 191 192cc_library( 193 name = "pool_2d_tester", 194 testonly = 1, 195 srcs = ["pool_2d_tester.cc"], 196 hdrs = ["pool_2d_tester.h"], 197 deps = [ 198 "//tensorflow/lite:framework", 199 "//tensorflow/lite:schema_fbs_version", 200 "//tensorflow/lite/c:common", 201 "//tensorflow/lite/kernels:builtin_ops", 202 "//tensorflow/lite/schema:schema_conversion_utils", 203 "//tensorflow/lite/schema:schema_fbs", 204 "@com_google_googletest//:gtest", 205 "@flatbuffers", 206 ], 207) 208 209cc_library( 210 name = "prelu_tester", 211 testonly = 1, 212 srcs = ["prelu_tester.cc"], 213 hdrs = ["prelu_tester.h"], 214 deps = [ 215 "//tensorflow/lite:framework", 216 "//tensorflow/lite:schema_fbs_version", 217 "//tensorflow/lite/c:common", 218 "//tensorflow/lite/kernels:builtin_ops", 219 "//tensorflow/lite/schema:schema_conversion_utils", 220 "//tensorflow/lite/schema:schema_fbs", 221 "@FP16", 222 "@com_google_googletest//:gtest", 223 "@flatbuffers", 224 ], 225) 226 227cc_library( 228 name = "reduce_tester", 229 testonly = 1, 230 srcs = ["reduce_tester.cc"], 231 hdrs = ["reduce_tester.h"], 232 deps = [ 233 "//tensorflow/lite:framework", 234 "//tensorflow/lite:schema_fbs_version", 235 "//tensorflow/lite/c:common", 236 "//tensorflow/lite/kernels:builtin_ops", 237 "//tensorflow/lite/schema:schema_conversion_utils", 238 "//tensorflow/lite/schema:schema_fbs", 239 "@com_google_googletest//:gtest", 240 "@flatbuffers", 241 ], 242) 243 244cc_library( 245 name = "reshape_tester", 246 testonly = 1, 247 srcs = ["reshape_tester.cc"], 248 hdrs = ["reshape_tester.h"], 249 deps = [ 250 "//tensorflow/lite:framework", 251 "//tensorflow/lite:schema_fbs_version", 252 "//tensorflow/lite/c:common", 253 "//tensorflow/lite/kernels:builtin_ops", 254 "//tensorflow/lite/schema:schema_conversion_utils", 255 "//tensorflow/lite/schema:schema_fbs", 256 "@com_google_googletest//:gtest", 257 "@flatbuffers", 258 ], 259) 260 261cc_library( 262 name = "resize_bilinear_tester", 263 testonly = 1, 264 srcs = ["resize_bilinear_tester.cc"], 265 hdrs = ["resize_bilinear_tester.h"], 266 deps = [ 267 "//tensorflow/lite:framework", 268 "//tensorflow/lite:schema_fbs_version", 269 "//tensorflow/lite/c:common", 270 "//tensorflow/lite/kernels:builtin_ops", 271 "//tensorflow/lite/schema:schema_conversion_utils", 272 "//tensorflow/lite/schema:schema_fbs", 273 "@com_google_googletest//:gtest", 274 "@flatbuffers", 275 ], 276) 277 278cc_library( 279 name = "softmax_tester", 280 testonly = 1, 281 srcs = ["softmax_tester.cc"], 282 hdrs = ["softmax_tester.h"], 283 deps = [ 284 "//tensorflow/lite:framework", 285 "//tensorflow/lite:schema_fbs_version", 286 "//tensorflow/lite/c:common", 287 "//tensorflow/lite/kernels:builtin_ops", 288 "//tensorflow/lite/schema:schema_conversion_utils", 289 "//tensorflow/lite/schema:schema_fbs", 290 "@com_google_googletest//:gtest", 291 "@flatbuffers", 292 ], 293) 294 295cc_library( 296 name = "unary_elementwise_tester", 297 testonly = 1, 298 srcs = ["unary_elementwise_tester.cc"], 299 hdrs = ["unary_elementwise_tester.h"], 300 deps = [ 301 "//tensorflow/lite:framework", 302 "//tensorflow/lite:schema_fbs_version", 303 "//tensorflow/lite/c:common", 304 "//tensorflow/lite/kernels:builtin_ops", 305 "//tensorflow/lite/schema:schema_conversion_utils", 306 "//tensorflow/lite/schema:schema_fbs", 307 "@com_google_googletest//:gtest", 308 "@flatbuffers", 309 ], 310) 311 312############################## Integration tests ############################### 313 314cc_library( 315 name = "test_main", 316 testonly = 1, 317 linkopts = select({ 318 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 319 "//conditions:default": [], 320 }), 321 deps = [ 322 "@com_google_googletest//:gtest_main", 323 ], 324) 325 326cc_test( 327 name = "abs_test", 328 srcs = ["abs_test.cc"], 329 linkopts = select({ 330 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 331 "//conditions:default": [], 332 }), 333 deps = [ 334 ":test_main", 335 ":unary_elementwise_tester", 336 ":xnnpack_delegate_test_mode", 337 "@com_google_googletest//:gtest", 338 ], 339) 340 341cc_test( 342 name = "add_test", 343 srcs = ["add_test.cc"], 344 linkopts = select({ 345 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 346 "//conditions:default": [], 347 }), 348 deps = [ 349 ":binary_elementwise_tester", 350 ":test_main", 351 ":xnnpack_delegate_test_mode", 352 "@com_google_googletest//:gtest", 353 ], 354) 355 356cc_test( 357 name = "average_pool_2d_test", 358 srcs = ["average_pool_2d_test.cc"], 359 linkopts = select({ 360 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 361 "//conditions:default": [], 362 }), 363 deps = [ 364 ":pool_2d_tester", 365 ":test_main", 366 ":xnnpack_delegate_test_mode", 367 "@com_google_googletest//:gtest", 368 ], 369) 370 371cc_test( 372 name = "ceil_test", 373 srcs = ["ceil_test.cc"], 374 linkopts = select({ 375 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 376 "//conditions:default": [], 377 }), 378 deps = [ 379 ":test_main", 380 ":unary_elementwise_tester", 381 ":xnnpack_delegate_test_mode", 382 "@com_google_googletest//:gtest", 383 ], 384) 385 386cc_test( 387 name = "conv_2d_test", 388 srcs = ["conv_2d_test.cc"], 389 linkopts = select({ 390 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 391 "//conditions:default": [], 392 }), 393 deps = [ 394 ":conv_2d_tester", 395 ":test_main", 396 ":xnnpack_delegate_test_mode", 397 "@com_google_googletest//:gtest", 398 ], 399) 400 401cc_test( 402 name = "depth_to_space_test", 403 srcs = ["depth_to_space_test.cc"], 404 linkopts = select({ 405 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 406 "//conditions:default": [], 407 }), 408 deps = [ 409 ":depth_to_space_tester", 410 ":test_main", 411 ":xnnpack_delegate_test_mode", 412 "@com_google_googletest//:gtest", 413 ], 414) 415 416cc_test( 417 name = "depthwise_conv_2d_test", 418 srcs = ["depthwise_conv_2d_test.cc"], 419 linkopts = select({ 420 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 421 "//conditions:default": [], 422 }), 423 deps = [ 424 ":depthwise_conv_2d_tester", 425 ":test_main", 426 ":xnnpack_delegate_test_mode", 427 "@com_google_googletest//:gtest", 428 ], 429) 430 431cc_test( 432 name = "div_test", 433 srcs = ["div_test.cc"], 434 linkopts = select({ 435 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 436 "//conditions:default": [], 437 }), 438 deps = [ 439 ":binary_elementwise_tester", 440 ":test_main", 441 ":xnnpack_delegate_test_mode", 442 "@com_google_googletest//:gtest", 443 ], 444) 445 446cc_test( 447 name = "elu_test", 448 srcs = ["elu_test.cc"], 449 linkopts = select({ 450 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 451 "//conditions:default": [], 452 }), 453 deps = [ 454 ":test_main", 455 ":unary_elementwise_tester", 456 ":xnnpack_delegate_test_mode", 457 "@com_google_googletest//:gtest", 458 ], 459) 460 461cc_test( 462 name = "fully_connected_test", 463 srcs = ["fully_connected_test.cc"], 464 linkopts = select({ 465 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 466 "//conditions:default": [], 467 }), 468 deps = [ 469 ":fully_connected_tester", 470 ":test_main", 471 ":xnnpack_delegate_test_mode", 472 "@com_google_googletest//:gtest", 473 ], 474) 475 476cc_test( 477 name = "floor_test", 478 srcs = ["floor_test.cc"], 479 linkopts = select({ 480 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 481 "//conditions:default": [], 482 }), 483 deps = [ 484 ":test_main", 485 ":unary_elementwise_tester", 486 ":xnnpack_delegate_test_mode", 487 "@com_google_googletest//:gtest", 488 ], 489) 490 491cc_test( 492 name = "hard_swish_test", 493 srcs = ["hard_swish_test.cc"], 494 linkopts = select({ 495 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 496 "//conditions:default": [], 497 }), 498 deps = [ 499 ":test_main", 500 ":unary_elementwise_tester", 501 ":xnnpack_delegate_test_mode", 502 "@com_google_googletest//:gtest", 503 ], 504) 505 506cc_test( 507 name = "leaky_relu_test", 508 srcs = ["leaky_relu_test.cc"], 509 linkopts = select({ 510 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 511 "//conditions:default": [], 512 }), 513 deps = [ 514 ":leaky_relu_tester", 515 ":test_main", 516 ":xnnpack_delegate_test_mode", 517 "@com_google_googletest//:gtest", 518 ], 519) 520 521cc_test( 522 name = "logistic_test", 523 srcs = ["logistic_test.cc"], 524 linkopts = select({ 525 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 526 "//conditions:default": [], 527 }), 528 deps = [ 529 ":test_main", 530 ":unary_elementwise_tester", 531 ":xnnpack_delegate_test_mode", 532 "@com_google_googletest//:gtest", 533 ], 534) 535 536cc_test( 537 name = "max_pool_2d_test", 538 srcs = ["max_pool_2d_test.cc"], 539 linkopts = select({ 540 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 541 "//conditions:default": [], 542 }), 543 deps = [ 544 ":pool_2d_tester", 545 ":test_main", 546 ":xnnpack_delegate_test_mode", 547 "@com_google_googletest//:gtest", 548 ], 549) 550 551cc_test( 552 name = "maximum_test", 553 srcs = ["maximum_test.cc"], 554 linkopts = select({ 555 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 556 "//conditions:default": [], 557 }), 558 deps = [ 559 ":binary_elementwise_tester", 560 ":test_main", 561 ":xnnpack_delegate_test_mode", 562 "@com_google_googletest//:gtest", 563 ], 564) 565 566cc_test( 567 name = "mean_test", 568 srcs = ["mean_test.cc"], 569 linkopts = select({ 570 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 571 "//conditions:default": [], 572 }), 573 deps = [ 574 ":reduce_tester", 575 ":test_main", 576 ":xnnpack_delegate_test_mode", 577 "@com_google_googletest//:gtest", 578 ], 579) 580 581cc_test( 582 name = "minimum_test", 583 srcs = ["minimum_test.cc"], 584 linkopts = select({ 585 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 586 "//conditions:default": [], 587 }), 588 deps = [ 589 ":binary_elementwise_tester", 590 ":test_main", 591 ":xnnpack_delegate_test_mode", 592 "@com_google_googletest//:gtest", 593 ], 594) 595 596cc_test( 597 name = "mul_test", 598 srcs = ["mul_test.cc"], 599 linkopts = select({ 600 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 601 "//conditions:default": [], 602 }), 603 deps = [ 604 ":binary_elementwise_tester", 605 ":test_main", 606 ":xnnpack_delegate_test_mode", 607 "@com_google_googletest//:gtest", 608 ], 609) 610 611cc_test( 612 name = "neg_test", 613 srcs = ["neg_test.cc"], 614 linkopts = select({ 615 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 616 "//conditions:default": [], 617 }), 618 deps = [ 619 ":test_main", 620 ":unary_elementwise_tester", 621 ":xnnpack_delegate_test_mode", 622 "@com_google_googletest//:gtest", 623 ], 624) 625 626cc_test( 627 name = "pad_test", 628 srcs = ["pad_test.cc"], 629 linkopts = select({ 630 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 631 "//conditions:default": [], 632 }), 633 deps = [ 634 ":pad_tester", 635 ":test_main", 636 ":xnnpack_delegate_test_mode", 637 "@com_google_googletest//:gtest", 638 ], 639) 640 641cc_test( 642 name = "prelu_test", 643 srcs = ["prelu_test.cc"], 644 linkopts = select({ 645 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 646 "//conditions:default": [], 647 }), 648 deps = [ 649 ":prelu_tester", 650 ":test_main", 651 ":xnnpack_delegate_test_mode", 652 "@com_google_googletest//:gtest", 653 ], 654) 655 656cc_test( 657 name = "relu_test", 658 srcs = ["relu_test.cc"], 659 linkopts = select({ 660 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 661 "//conditions:default": [], 662 }), 663 deps = [ 664 ":test_main", 665 ":unary_elementwise_tester", 666 ":xnnpack_delegate_test_mode", 667 "@com_google_googletest//:gtest", 668 ], 669) 670 671cc_test( 672 name = "relu6_test", 673 srcs = ["relu6_test.cc"], 674 linkopts = select({ 675 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 676 "//conditions:default": [], 677 }), 678 deps = [ 679 ":test_main", 680 ":unary_elementwise_tester", 681 ":xnnpack_delegate_test_mode", 682 "@com_google_googletest//:gtest", 683 ], 684) 685 686cc_test( 687 name = "relu_n1_to_1_test", 688 srcs = ["relu_n1_to_1_test.cc"], 689 linkopts = select({ 690 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 691 "//conditions:default": [], 692 }), 693 deps = [ 694 ":test_main", 695 ":unary_elementwise_tester", 696 ":xnnpack_delegate_test_mode", 697 "@com_google_googletest//:gtest", 698 ], 699) 700 701cc_test( 702 name = "reshape_test", 703 srcs = ["reshape_test.cc"], 704 linkopts = select({ 705 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 706 "//conditions:default": [], 707 }), 708 deps = [ 709 ":reshape_tester", 710 ":test_main", 711 ":xnnpack_delegate_test_mode", 712 "@com_google_googletest//:gtest", 713 ], 714) 715 716cc_test( 717 name = "resize_bilinear_test", 718 srcs = ["resize_bilinear_test.cc"], 719 linkopts = select({ 720 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 721 "//conditions:default": [], 722 }), 723 deps = [ 724 ":resize_bilinear_tester", 725 ":test_main", 726 ":xnnpack_delegate_test_mode", 727 "@com_google_googletest//:gtest", 728 ], 729) 730 731cc_test( 732 name = "round_test", 733 srcs = ["round_test.cc"], 734 linkopts = select({ 735 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 736 "//conditions:default": [], 737 }), 738 deps = [ 739 ":test_main", 740 ":unary_elementwise_tester", 741 ":xnnpack_delegate_test_mode", 742 "@com_google_googletest//:gtest", 743 ], 744) 745 746cc_test( 747 name = "softmax_test", 748 srcs = ["softmax_test.cc"], 749 linkopts = select({ 750 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 751 "//conditions:default": [], 752 }), 753 deps = [ 754 ":softmax_tester", 755 ":test_main", 756 ":xnnpack_delegate_test_mode", 757 "@com_google_googletest//:gtest", 758 ], 759) 760 761cc_test( 762 name = "sqrt_test", 763 srcs = ["sqrt_test.cc"], 764 linkopts = select({ 765 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 766 "//conditions:default": [], 767 }), 768 deps = [ 769 ":test_main", 770 ":unary_elementwise_tester", 771 ":xnnpack_delegate_test_mode", 772 "@com_google_googletest//:gtest", 773 ], 774) 775 776cc_test( 777 name = "square_test", 778 srcs = ["square_test.cc"], 779 linkopts = select({ 780 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 781 "//conditions:default": [], 782 }), 783 deps = [ 784 ":test_main", 785 ":unary_elementwise_tester", 786 ":xnnpack_delegate_test_mode", 787 "@com_google_googletest//:gtest", 788 ], 789) 790 791cc_test( 792 name = "squared_difference_test", 793 srcs = ["squared_difference_test.cc"], 794 linkopts = select({ 795 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 796 "//conditions:default": [], 797 }), 798 deps = [ 799 ":binary_elementwise_tester", 800 ":test_main", 801 ":xnnpack_delegate_test_mode", 802 "@com_google_googletest//:gtest", 803 ], 804) 805 806cc_test( 807 name = "sub_test", 808 srcs = ["sub_test.cc"], 809 linkopts = select({ 810 "//tensorflow:emscripten": EMSCRIPTEN_LINKOPTS, 811 "//conditions:default": [], 812 }), 813 deps = [ 814 ":binary_elementwise_tester", 815 ":test_main", 816 ":xnnpack_delegate_test_mode", 817 "@com_google_googletest//:gtest", 818 ], 819) 820 821tflite_portable_test_suite_combined(combine_conditions = {"deps": [":test_main"]}) 822