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  )