github.phpd.cn/thought-machine/please@v12.2.0+incompatible/test/cc_rules/clang/BUILD (about) 1 # Identical set of tests to the main cc ones, but using Clang and Gold instead. 2 # (Note that this only controls the tools we invoke directly, not what they 3 # might use underneath - ie. we are not passing -fuse-ld or similar). 4 5 package( 6 cpp_coverage = '', # Not all Clang versions support -fprofile-dir 7 cpp_tool = 'clang++', 8 ld_tool = 'gold', 9 ) 10 11 cc_embed_binary( 12 name = 'embedded_file_1', 13 src = 'embedded_file_1.txt', 14 ) 15 16 genrule( 17 name = 'embedded_file_3_gen', 18 outs = ['embedded_file_3.txt'], 19 cmd = 'echo "testing message 3" > $OUT', 20 ) 21 22 cc_embed_binary( 23 name = 'embedded_file_3', 24 src = ':embedded_file_3_gen', 25 deps = [':embedded_file_3_gen'], 26 ) 27 28 cc_test( 29 name = 'embed_file_test', 30 srcs = ['embed_file_test.cc'], 31 labels = [ 32 'clang', 33 'gold', 34 ], 35 deps = [ 36 ':embedded_file_1', 37 ':embedded_file_3', 38 ], 39 ) 40 41 # This is a little chain of tests to exercise the cc_shared_object rule. 42 cc_library( 43 name = 'embedded_files', 44 srcs = ['embedded_files.cc'], 45 hdrs = ['embedded_files.h'], 46 deps = [ 47 ':embedded_file_1', 48 ':embedded_file_3', 49 ], 50 ) 51 52 cc_shared_object( 53 name = 'so_test', 54 srcs = ['so_test.cc'], 55 pkg_config_libs = ['python3'], 56 deps = [ 57 ':embedded_files', 58 ], 59 ) 60 61 python_test( 62 name = 'shared_object_test', 63 srcs = ['shared_object_test.py'], 64 labels = [ 65 'cc', 66 'clang', 67 'gold', 68 ], 69 zip_safe = False, 70 deps = [ 71 ':so_test', 72 ], 73 ) 74 75 # Make sure we have at least one working cc_binary rule. 76 cc_binary( 77 name = 'test_binary', 78 srcs = ['test_binary.cc'], 79 deps = [ 80 ':embedded_files', 81 ], 82 ) 83 84 gentest( 85 name = 'cc_binary_test', 86 data = [':test_binary'], 87 labels = [ 88 'cc', 89 'clang', 90 'gold', 91 ], 92 no_test_output = True, 93 test_cmd = '$(exe :test_binary)', 94 )