Merge "Convert cc_test targets with bp2build."
This commit is contained in:
@@ -139,6 +139,7 @@ var (
|
||||
"external/lzma/C": Bp2BuildDefaultTrueRecursively,
|
||||
"external/mdnsresponder": Bp2BuildDefaultTrueRecursively,
|
||||
"external/minijail": Bp2BuildDefaultTrueRecursively,
|
||||
"external/openscreen": Bp2BuildDefaultTrueRecursively,
|
||||
"external/pcre": Bp2BuildDefaultTrueRecursively,
|
||||
"external/protobuf": Bp2BuildDefaultTrueRecursively,
|
||||
"external/python/six": Bp2BuildDefaultTrueRecursively,
|
||||
@@ -225,6 +226,8 @@ var (
|
||||
"prebuilts/sdk/current/support": Bp2BuildDefaultTrue,
|
||||
"prebuilts/tools/common/m2": Bp2BuildDefaultTrue,
|
||||
|
||||
"platform_testing/tests/example": Bp2BuildDefaultTrueRecursively,
|
||||
|
||||
"system/apex": Bp2BuildDefaultFalse, // TODO(b/207466993): flaky failures
|
||||
"system/apex/apexer": Bp2BuildDefaultTrue,
|
||||
"system/apex/libs": Bp2BuildDefaultTrueRecursively,
|
||||
@@ -268,6 +271,7 @@ var (
|
||||
"system/memory/libion": Bp2BuildDefaultTrueRecursively,
|
||||
"system/memory/libmemunreachable": Bp2BuildDefaultTrueRecursively,
|
||||
"system/sepolicy/apex": Bp2BuildDefaultTrueRecursively,
|
||||
"system/testing/gtest_extras": Bp2BuildDefaultTrueRecursively,
|
||||
"system/timezone/apex": Bp2BuildDefaultTrueRecursively,
|
||||
"system/timezone/output_data": Bp2BuildDefaultTrueRecursively,
|
||||
"system/tools/sysprop": Bp2BuildDefaultTrue,
|
||||
@@ -432,6 +436,8 @@ var (
|
||||
|
||||
// needed for aidl_interface's ndk backend
|
||||
"libbinder_ndk",
|
||||
|
||||
"libusb",
|
||||
}
|
||||
|
||||
Bp2buildModuleTypeAlwaysConvertList = []string{
|
||||
@@ -446,7 +452,13 @@ var (
|
||||
"libactivitymanager_aidl", // TODO(b/207426160): Unsupported use of aidl sources (via Dactivity_manager_procstate_aidl) in a cc_library
|
||||
"gen-kotlin-build-file.py", // TODO(b/198619163) module has same name as source
|
||||
"libgtest_ndk_c++", "libgtest_main_ndk_c++", // TODO(b/201816222): Requires sdk_version support.
|
||||
"linkerconfig", "mdnsd", // TODO(b/202876379): has arch-variant static_executable
|
||||
|
||||
// TODO(b/202876379): has arch-variant static_executable
|
||||
"linkerconfig",
|
||||
"mdnsd",
|
||||
"libcutils_test_static",
|
||||
"KernelLibcutilsTest",
|
||||
|
||||
"linker", // TODO(b/228316882): cc_binary uses link_crt
|
||||
"libdebuggerd", // TODO(b/228314770): support product variable-specific header_libs
|
||||
"versioner", // TODO(b/228313961): depends on prebuilt shared library libclang-cpp_host as a shared library, which does not supply expected providers for a shared library
|
||||
@@ -516,7 +528,6 @@ var (
|
||||
"generated_android_icu4j_resources", // depends on unconverted modules: android_icu4j_srcgen_binary, soong_zip
|
||||
"generated_android_icu4j_test_resources", // depends on unconverted modules: android_icu4j_srcgen_binary, soong_zip
|
||||
"host-libprotobuf-java-nano", // b/220869005, depends on libprotobuf-java-nano
|
||||
"libadb_host", // depends on unconverted modules: AdbWinApi, libopenscreen-discovery, libopenscreen-platform-impl, libusb
|
||||
"libapexutil", // depends on unconverted modules: apex-info-list-tinyxml
|
||||
"libart", // depends on unconverted modules: apex-info-list-tinyxml, libtinyxml2, libnativeloader-headers, heapprofd_client_api, art_operator_srcs, libcpu_features, libodrstatslog, libelffile, art_cmdlineparser_headers, cpp-define-generator-definitions, libdexfile, libnativebridge, libnativeloader, libsigchain, libartbase, libprofile, cpp-define-generator-asm-support
|
||||
"libart-runtime-gtest", // depends on unconverted modules: libgtest_isolated, libart-compiler, libdexfile, libprofile, libartbase, libartbase-art-gtest
|
||||
@@ -551,23 +562,467 @@ var (
|
||||
// '//bionic/libc:libc_bp2build_cc_library_static' is duplicated in the 'deps' attribute of rule
|
||||
"toybox-static",
|
||||
|
||||
// Do not convert the following modules because of duplicate labels checking in Bazel.
|
||||
// See b/241283350. They should be removed from this list once the bug is fixed.
|
||||
"libartpalette",
|
||||
"libartbase",
|
||||
"libdexfile",
|
||||
"libartbased",
|
||||
"libdexfile_static",
|
||||
"libartbase-testing",
|
||||
"libartbased-testing",
|
||||
"libdexfile_support",
|
||||
"libunwindstack",
|
||||
"libunwindstack_local",
|
||||
"libfdtrack",
|
||||
"libc_malloc_debug",
|
||||
"libutilscallstack",
|
||||
"libunwindstack_utils",
|
||||
"unwind_for_offline",
|
||||
// cc_test related.
|
||||
// Failing host cc_tests
|
||||
"memunreachable_unit_test",
|
||||
"libprocinfo_test",
|
||||
"ziparchive-tests",
|
||||
"gtest_isolated_tests",
|
||||
"libunwindstack_unit_test",
|
||||
"task_profiles_test",
|
||||
"power_tests", // failing test on server, but not on host
|
||||
|
||||
// reflect: call of reflect.Value.NumField on interface Value
|
||||
// affects all cc_tests that depend on art_defaults
|
||||
"libnativebridge-tests",
|
||||
"libnativeloader_test",
|
||||
"art_libnativebridge_cts_tests",
|
||||
"art_standalone_libdexfile_external_tests",
|
||||
"art_standalone_libdexfile_support_tests",
|
||||
"libnativebridge-lazy-tests",
|
||||
"libnativebridge-test-case",
|
||||
"libnativebridge2-test-case",
|
||||
"libnativebridge3-test-case",
|
||||
"libnativebridge6-test-case",
|
||||
"libnativebridge6prezygotefork",
|
||||
|
||||
// cc_test with unconverted deps, or are device-only (and not verified to pass yet)
|
||||
"AMRWBEncTest",
|
||||
"AmrnbDecoderTest", // depends on unconverted modules: libaudioutils, libsndfile
|
||||
"AmrnbEncoderTest", // depends on unconverted modules: libaudioutils, libsndfile
|
||||
"AmrwbDecoderTest", // depends on unconverted modules: libsndfile, libaudioutils
|
||||
"AmrwbEncoderTest", // depends on unconverted modules: libaudioutils, libsndfile
|
||||
"CtsLiblogTestCases",
|
||||
"Mp3DecoderTest", // depends on unconverted modules: libsndfile, libaudioutils
|
||||
"Mpeg4H263DecoderTest", // depends on unconverted modules: libstagefright_foundation
|
||||
"Mpeg4H263EncoderTest",
|
||||
"adb_crypto_test",
|
||||
"adb_pairing_auth_test",
|
||||
"adb_pairing_connection_test",
|
||||
"adb_tls_connection_test",
|
||||
"adbd_test", // depends on unconverted modules: libusb
|
||||
"avcdec",
|
||||
"avcenc",
|
||||
"bionic-benchmarks-tests",
|
||||
"bionic-fortify-runtime-asan-test",
|
||||
"bionic-stress-tests",
|
||||
"bionic-unit-tests",
|
||||
"bionic-unit-tests-glibc",
|
||||
"bionic-unit-tests-static",
|
||||
"boringssl_crypto_test",
|
||||
"boringssl_ssl_test",
|
||||
"cfi_test_helper",
|
||||
"cfi_test_helper2",
|
||||
"cintltst32",
|
||||
"cintltst64",
|
||||
"compare",
|
||||
"cpuid",
|
||||
"debuggerd_test", // depends on unconverted modules: libdebuggerd
|
||||
"elftls_dlopen_ie_error_helper",
|
||||
"exec_linker_helper",
|
||||
"fastdeploy_test", // depends on unconverted modules: AdbWinApi, libadb_host, libandroidfw, libfastdeploy_host, libopenscreen-discovery, libopenscreen-platform-impl, libusb
|
||||
"fdtrack_test",
|
||||
"google-benchmark-test",
|
||||
"googletest-param-test-test_ndk", // depends on unconverted modules: libgtest_ndk_c++
|
||||
"gtest-typed-test_test",
|
||||
"gtest-typed-test_test_ndk", // depends on unconverted modules: libgtest_ndk_c++, libgtest_main_ndk_c++
|
||||
"gtest_ndk_tests", // depends on unconverted modules: libgtest_ndk_c++, libgtest_main_ndk_c++
|
||||
"gtest_ndk_tests_no_main", // depends on unconverted modules: libgtest_ndk_c++
|
||||
"gtest_prod_test_ndk", // depends on unconverted modules: libgtest_ndk_c++, libgtest_main_ndk_c++
|
||||
"gtest_tests",
|
||||
"gtest_tests_no_main",
|
||||
"gwp_asan_unittest",
|
||||
"half_test",
|
||||
"hashcombine_test",
|
||||
"hevcdec",
|
||||
"hevcenc",
|
||||
"hwbinderThroughputTest", // depends on unconverted modules: android.hardware.tests.libhwbinder@1.0-impl.test, android.hardware.tests.libhwbinder@1.0
|
||||
"i444tonv12_eg",
|
||||
"icu4c_sample_break",
|
||||
"intltest32",
|
||||
"intltest64",
|
||||
"ion-unit-tests",
|
||||
"jemalloc5_integrationtests",
|
||||
"jemalloc5_unittests",
|
||||
"ld_config_test_helper",
|
||||
"ld_preload_test_helper",
|
||||
"libBionicCtsGtestMain", // depends on unconverted modules: libgtest_isolated
|
||||
"libBionicLoaderTests", // depends on unconverted modules: libmeminfo
|
||||
"libapexutil_tests", // depends on unconverted modules: apex-info-list-tinyxml, libapexutil
|
||||
"libavservices_minijail_unittest",
|
||||
"libcutils_sockets_test",
|
||||
"libexpectedutils_test",
|
||||
"libhwbinder_latency",
|
||||
"liblog-host-test",
|
||||
"liblog-unit-tests",
|
||||
"libminijail_test",
|
||||
"libminijail_unittest_gtest",
|
||||
"libpackagelistparser_test",
|
||||
"libprotobuf_vendor_suffix_test",
|
||||
"libstagefright_amrnbdec_test", // depends on unconverted modules: libsndfile, libaudioutils
|
||||
"libstagefright_amrnbenc_test",
|
||||
"libstagefright_amrwbdec_test", // depends on unconverted modules: libsndfile, libaudioutils
|
||||
"libstagefright_m4vh263enc_test",
|
||||
"libstagefright_mp3dec_test", // depends on unconverted modules: libsndfile, libaudioutils
|
||||
"libstatssocket_test",
|
||||
"libvndksupport-tests",
|
||||
"libyuv_unittest",
|
||||
"linker-unit-tests",
|
||||
"malloc_debug_system_tests",
|
||||
"malloc_debug_unit_tests",
|
||||
"malloc_hooks_system_tests",
|
||||
"mat_test",
|
||||
"mathtest",
|
||||
"memunreachable_binder_test", // depends on unconverted modules: libbinder
|
||||
"memunreachable_test",
|
||||
"metadata_tests",
|
||||
"minijail0_cli_unittest_gtest",
|
||||
"mpeg2dec",
|
||||
"mvcdec",
|
||||
"ns_hidden_child_helper",
|
||||
"pngtest",
|
||||
"preinit_getauxval_test_helper",
|
||||
"preinit_syscall_test_helper",
|
||||
"psnr",
|
||||
"quat_test",
|
||||
"rappor-tests", // depends on unconverted modules: jsr305, guava
|
||||
"scudo_unit_tests",
|
||||
"stats-log-api-gen-test", // depends on unconverted modules: libstats_proto_host
|
||||
"syscall_filter_unittest_gtest",
|
||||
"sysprop_test", // depends on unconverted modules: libcom.android.sysprop.tests
|
||||
"thread_exit_cb_helper",
|
||||
"tls_properties_helper",
|
||||
"ulp",
|
||||
"vec_test",
|
||||
"yuvconstants",
|
||||
"yuvconvert",
|
||||
"zipalign_tests",
|
||||
// "zlib_tests",
|
||||
|
||||
// cc_test_library
|
||||
"clang_diagnostic_tests",
|
||||
"exec_linker_helper_lib",
|
||||
"fortify_disabled_for_tidy",
|
||||
"ld_config_test_helper_lib1",
|
||||
"ld_config_test_helper_lib2",
|
||||
"ld_config_test_helper_lib3",
|
||||
"ld_preload_test_helper_lib1",
|
||||
"ld_preload_test_helper_lib2",
|
||||
"libBionicElfTlsLoaderTests",
|
||||
"libBionicElfTlsTests",
|
||||
"libBionicElfTlsTests",
|
||||
"libBionicFramePointerTests",
|
||||
"libBionicFramePointerTests",
|
||||
"libBionicStandardTests",
|
||||
"libBionicStandardTests",
|
||||
"libBionicTests",
|
||||
"libart-broken",
|
||||
"libatest_simple_zip",
|
||||
"libcfi-test",
|
||||
"libcfi-test-bad",
|
||||
"libcrash_test",
|
||||
// "libcrypto_fuzz_unsafe",
|
||||
"libdl_preempt_test_1",
|
||||
"libdl_preempt_test_2",
|
||||
"libdl_test_df_1_global",
|
||||
"libdlext_test",
|
||||
"libdlext_test_different_soname",
|
||||
"libdlext_test_fd",
|
||||
"libdlext_test_norelro",
|
||||
"libdlext_test_recursive",
|
||||
"libdlext_test_zip",
|
||||
"libfortify1-new-tests-clang",
|
||||
"libfortify1-new-tests-clang",
|
||||
"libfortify1-tests-clang",
|
||||
"libfortify1-tests-clang",
|
||||
"libfortify2-new-tests-clang",
|
||||
"libfortify2-new-tests-clang",
|
||||
"libfortify2-tests-clang",
|
||||
"libfortify2-tests-clang",
|
||||
"libgnu-hash-table-library",
|
||||
"libicutest_static",
|
||||
"liblinker_reloc_bench_000",
|
||||
"liblinker_reloc_bench_001",
|
||||
"liblinker_reloc_bench_002",
|
||||
"liblinker_reloc_bench_003",
|
||||
"liblinker_reloc_bench_004",
|
||||
"liblinker_reloc_bench_005",
|
||||
"liblinker_reloc_bench_006",
|
||||
"liblinker_reloc_bench_007",
|
||||
"liblinker_reloc_bench_008",
|
||||
"liblinker_reloc_bench_009",
|
||||
"liblinker_reloc_bench_010",
|
||||
"liblinker_reloc_bench_011",
|
||||
"liblinker_reloc_bench_012",
|
||||
"liblinker_reloc_bench_013",
|
||||
"liblinker_reloc_bench_014",
|
||||
"liblinker_reloc_bench_015",
|
||||
"liblinker_reloc_bench_016",
|
||||
"liblinker_reloc_bench_017",
|
||||
"liblinker_reloc_bench_018",
|
||||
"liblinker_reloc_bench_019",
|
||||
"liblinker_reloc_bench_020",
|
||||
"liblinker_reloc_bench_021",
|
||||
"liblinker_reloc_bench_022",
|
||||
"liblinker_reloc_bench_023",
|
||||
"liblinker_reloc_bench_024",
|
||||
"liblinker_reloc_bench_025",
|
||||
"liblinker_reloc_bench_026",
|
||||
"liblinker_reloc_bench_027",
|
||||
"liblinker_reloc_bench_028",
|
||||
"liblinker_reloc_bench_029",
|
||||
"liblinker_reloc_bench_030",
|
||||
"liblinker_reloc_bench_031",
|
||||
"liblinker_reloc_bench_032",
|
||||
"liblinker_reloc_bench_033",
|
||||
"liblinker_reloc_bench_034",
|
||||
"liblinker_reloc_bench_035",
|
||||
"liblinker_reloc_bench_036",
|
||||
"liblinker_reloc_bench_037",
|
||||
"liblinker_reloc_bench_038",
|
||||
"liblinker_reloc_bench_039",
|
||||
"liblinker_reloc_bench_040",
|
||||
"liblinker_reloc_bench_041",
|
||||
"liblinker_reloc_bench_042",
|
||||
"liblinker_reloc_bench_043",
|
||||
"liblinker_reloc_bench_044",
|
||||
"liblinker_reloc_bench_045",
|
||||
"liblinker_reloc_bench_046",
|
||||
"liblinker_reloc_bench_047",
|
||||
"liblinker_reloc_bench_048",
|
||||
"liblinker_reloc_bench_049",
|
||||
"liblinker_reloc_bench_050",
|
||||
"liblinker_reloc_bench_051",
|
||||
"liblinker_reloc_bench_052",
|
||||
"liblinker_reloc_bench_053",
|
||||
"liblinker_reloc_bench_054",
|
||||
"liblinker_reloc_bench_055",
|
||||
"liblinker_reloc_bench_056",
|
||||
"liblinker_reloc_bench_057",
|
||||
"liblinker_reloc_bench_058",
|
||||
"liblinker_reloc_bench_059",
|
||||
"liblinker_reloc_bench_060",
|
||||
"liblinker_reloc_bench_061",
|
||||
"liblinker_reloc_bench_062",
|
||||
"liblinker_reloc_bench_063",
|
||||
"liblinker_reloc_bench_064",
|
||||
"liblinker_reloc_bench_065",
|
||||
"liblinker_reloc_bench_066",
|
||||
"liblinker_reloc_bench_067",
|
||||
"liblinker_reloc_bench_068",
|
||||
"liblinker_reloc_bench_069",
|
||||
"liblinker_reloc_bench_070",
|
||||
"liblinker_reloc_bench_071",
|
||||
"liblinker_reloc_bench_072",
|
||||
"liblinker_reloc_bench_073",
|
||||
"liblinker_reloc_bench_074",
|
||||
"liblinker_reloc_bench_075",
|
||||
"liblinker_reloc_bench_076",
|
||||
"liblinker_reloc_bench_077",
|
||||
"liblinker_reloc_bench_078",
|
||||
"liblinker_reloc_bench_079",
|
||||
"liblinker_reloc_bench_080",
|
||||
"liblinker_reloc_bench_081",
|
||||
"liblinker_reloc_bench_082",
|
||||
"liblinker_reloc_bench_083",
|
||||
"liblinker_reloc_bench_084",
|
||||
"liblinker_reloc_bench_085",
|
||||
"liblinker_reloc_bench_086",
|
||||
"liblinker_reloc_bench_087",
|
||||
"liblinker_reloc_bench_088",
|
||||
"liblinker_reloc_bench_089",
|
||||
"liblinker_reloc_bench_090",
|
||||
"liblinker_reloc_bench_091",
|
||||
"liblinker_reloc_bench_092",
|
||||
"liblinker_reloc_bench_093",
|
||||
"liblinker_reloc_bench_094",
|
||||
"liblinker_reloc_bench_095",
|
||||
"liblinker_reloc_bench_096",
|
||||
"liblinker_reloc_bench_097",
|
||||
"liblinker_reloc_bench_098",
|
||||
"liblinker_reloc_bench_099",
|
||||
"liblinker_reloc_bench_100",
|
||||
"liblinker_reloc_bench_101",
|
||||
"liblinker_reloc_bench_102",
|
||||
"liblinker_reloc_bench_103",
|
||||
"liblinker_reloc_bench_104",
|
||||
"liblinker_reloc_bench_105",
|
||||
"liblinker_reloc_bench_106",
|
||||
"liblinker_reloc_bench_107",
|
||||
"liblinker_reloc_bench_108",
|
||||
"liblinker_reloc_bench_109",
|
||||
"liblinker_reloc_bench_110",
|
||||
"liblinker_reloc_bench_111",
|
||||
"liblinker_reloc_bench_112",
|
||||
"liblinker_reloc_bench_113",
|
||||
"liblinker_reloc_bench_114",
|
||||
"liblinker_reloc_bench_115",
|
||||
"liblinker_reloc_bench_116",
|
||||
"liblinker_reloc_bench_117",
|
||||
"liblinker_reloc_bench_118",
|
||||
"liblinker_reloc_bench_119",
|
||||
"liblinker_reloc_bench_120",
|
||||
"liblinker_reloc_bench_121",
|
||||
"liblinker_reloc_bench_122",
|
||||
"liblinker_reloc_bench_123",
|
||||
"liblinker_reloc_bench_124",
|
||||
"liblinker_reloc_bench_125",
|
||||
"liblinker_reloc_bench_126",
|
||||
"liblinker_reloc_bench_127",
|
||||
"liblinker_reloc_bench_128",
|
||||
"liblinker_reloc_bench_129",
|
||||
"liblinker_reloc_bench_130",
|
||||
"liblinker_reloc_bench_131",
|
||||
"liblinker_reloc_bench_132",
|
||||
"liblinker_reloc_bench_133",
|
||||
"liblinker_reloc_bench_134",
|
||||
"liblinker_reloc_bench_135",
|
||||
"liblinker_reloc_bench_136",
|
||||
"liblinker_reloc_bench_137",
|
||||
"liblinker_reloc_bench_138",
|
||||
"liblinker_reloc_bench_139",
|
||||
"liblinker_reloc_bench_140",
|
||||
"liblinker_reloc_bench_141",
|
||||
"liblinker_reloc_bench_142",
|
||||
"liblinker_reloc_bench_143",
|
||||
"liblinker_reloc_bench_144",
|
||||
"liblinker_reloc_bench_145",
|
||||
"liblinker_reloc_bench_146",
|
||||
"liblinker_reloc_bench_147",
|
||||
"liblinker_reloc_bench_148",
|
||||
"liblinker_reloc_bench_149",
|
||||
"liblinker_reloc_bench_150",
|
||||
"liblinker_reloc_bench_151",
|
||||
"liblinker_reloc_bench_152",
|
||||
"liblinker_reloc_bench_153",
|
||||
"liblinker_reloc_bench_154",
|
||||
"liblinker_reloc_bench_155",
|
||||
"liblinker_reloc_bench_156",
|
||||
"liblinker_reloc_bench_157",
|
||||
"liblinker_reloc_bench_158",
|
||||
"liblinker_reloc_bench_159",
|
||||
"liblinker_reloc_bench_160",
|
||||
"liblinker_reloc_bench_161",
|
||||
"liblinker_reloc_bench_162",
|
||||
"liblinker_reloc_bench_163",
|
||||
"liblinker_reloc_bench_164",
|
||||
"liblinker_reloc_bench_165",
|
||||
"liblinker_reloc_bench_166",
|
||||
"liblinker_reloc_bench_167",
|
||||
"liblinker_reloc_bench_168",
|
||||
"libns_hidden_child_app",
|
||||
"libns_hidden_child_global",
|
||||
"libns_hidden_child_internal",
|
||||
"libns_hidden_child_public",
|
||||
"libnstest_dlopened",
|
||||
"libnstest_ns_a_public1",
|
||||
"libnstest_ns_a_public1_internal",
|
||||
"libnstest_ns_b_public2",
|
||||
"libnstest_ns_b_public3",
|
||||
"libnstest_private",
|
||||
"libnstest_private_external",
|
||||
"libnstest_public",
|
||||
"libnstest_public_internal",
|
||||
"libnstest_root",
|
||||
"libnstest_root_not_isolated",
|
||||
"librelocations-ANDROID_REL",
|
||||
"librelocations-ANDROID_RELR",
|
||||
"librelocations-RELR",
|
||||
"librelocations-fat",
|
||||
"libsegment_gap_inner",
|
||||
"libsegment_gap_outer",
|
||||
// "libssl_fuzz_unsafe",
|
||||
"libstatssocket_private",
|
||||
"libsysv-hash-table-library",
|
||||
"libtest_atexit",
|
||||
"libtest_check_order_dlsym",
|
||||
"libtest_check_order_dlsym_1_left",
|
||||
"libtest_check_order_dlsym_2_right",
|
||||
"libtest_check_order_dlsym_3_c",
|
||||
"libtest_check_order_dlsym_a",
|
||||
"libtest_check_order_dlsym_b",
|
||||
"libtest_check_order_dlsym_d",
|
||||
"libtest_check_order_reloc_root",
|
||||
"libtest_check_order_reloc_root_1",
|
||||
"libtest_check_order_reloc_root_2",
|
||||
"libtest_check_order_reloc_siblings",
|
||||
"libtest_check_order_reloc_siblings_1",
|
||||
"libtest_check_order_reloc_siblings_2",
|
||||
"libtest_check_order_reloc_siblings_3",
|
||||
"libtest_check_order_reloc_siblings_a",
|
||||
"libtest_check_order_reloc_siblings_b",
|
||||
"libtest_check_order_reloc_siblings_c",
|
||||
"libtest_check_order_reloc_siblings_c_1",
|
||||
"libtest_check_order_reloc_siblings_c_2",
|
||||
"libtest_check_order_reloc_siblings_d",
|
||||
"libtest_check_order_reloc_siblings_e",
|
||||
"libtest_check_order_reloc_siblings_f",
|
||||
"libtest_check_rtld_next_from_library",
|
||||
"libtest_dlopen_df_1_global",
|
||||
"libtest_dlopen_from_ctor",
|
||||
"libtest_dlopen_from_ctor_main",
|
||||
"libtest_dlopen_weak_undefined_func",
|
||||
"libtest_dlsym_df_1_global",
|
||||
"libtest_dlsym_from_this",
|
||||
"libtest_dlsym_from_this_child",
|
||||
"libtest_dlsym_from_this_grandchild",
|
||||
"libtest_dlsym_weak_func",
|
||||
"libtest_dt_runpath_a",
|
||||
"libtest_dt_runpath_b",
|
||||
"libtest_dt_runpath_c",
|
||||
"libtest_dt_runpath_d",
|
||||
"libtest_dt_runpath_d_zip",
|
||||
"libtest_dt_runpath_x",
|
||||
"libtest_dt_runpath_y",
|
||||
"libtest_elftls_dynamic",
|
||||
"libtest_elftls_dynamic_filler_1",
|
||||
"libtest_elftls_dynamic_filler_2",
|
||||
"libtest_elftls_dynamic_filler_3",
|
||||
"libtest_elftls_shared_var",
|
||||
"libtest_elftls_shared_var_ie",
|
||||
"libtest_elftls_tprel",
|
||||
"libtest_empty",
|
||||
"libtest_ifunc",
|
||||
"libtest_ifunc_variable",
|
||||
"libtest_ifunc_variable_impl",
|
||||
"libtest_indirect_thread_local_dtor",
|
||||
"libtest_init_fini_order_child",
|
||||
"libtest_init_fini_order_grand_child",
|
||||
"libtest_init_fini_order_root",
|
||||
"libtest_init_fini_order_root2",
|
||||
"libtest_missing_symbol",
|
||||
"libtest_missing_symbol_child_private",
|
||||
"libtest_missing_symbol_child_public",
|
||||
"libtest_missing_symbol_root",
|
||||
"libtest_nodelete_1",
|
||||
"libtest_nodelete_2",
|
||||
"libtest_nodelete_dt_flags_1",
|
||||
"libtest_pthread_atfork",
|
||||
"libtest_relo_check_dt_needed_order",
|
||||
"libtest_relo_check_dt_needed_order_1",
|
||||
"libtest_relo_check_dt_needed_order_2",
|
||||
"libtest_simple",
|
||||
"libtest_thread_local_dtor",
|
||||
"libtest_thread_local_dtor2",
|
||||
"libtest_two_parents_child",
|
||||
"libtest_two_parents_parent1",
|
||||
"libtest_two_parents_parent2",
|
||||
"libtest_versioned_lib",
|
||||
"libtest_versioned_libv1",
|
||||
"libtest_versioned_libv2",
|
||||
"libtest_versioned_otherlib",
|
||||
"libtest_versioned_otherlib_empty",
|
||||
"libtest_versioned_uselibv1",
|
||||
"libtest_versioned_uselibv2",
|
||||
"libtest_versioned_uselibv2_other",
|
||||
"libtest_versioned_uselibv3_other",
|
||||
"libtest_with_dependency",
|
||||
"libtest_with_dependency_loop",
|
||||
"libtest_with_dependency_loop_a",
|
||||
"libtest_with_dependency_loop_b",
|
||||
"libtest_with_dependency_loop_b_tmp",
|
||||
"libtest_with_dependency_loop_c",
|
||||
"libtestshared",
|
||||
}
|
||||
|
||||
Bp2buildCcLibraryStaticOnlyList = []string{}
|
||||
|
@@ -51,6 +51,7 @@ bootstrap_go_package {
|
||||
"cc_prebuilt_library_conversion_test.go",
|
||||
"cc_prebuilt_library_shared_test.go",
|
||||
"cc_prebuilt_library_static_test.go",
|
||||
"cc_test_conversion_test.go",
|
||||
"cc_yasm_conversion_test.go",
|
||||
"conversion_test.go",
|
||||
"filegroup_conversion_test.go",
|
||||
|
150
bp2build/cc_test_conversion_test.go
Normal file
150
bp2build/cc_test_conversion_test.go
Normal file
@@ -0,0 +1,150 @@
|
||||
// Copyright 2022 Google Inc. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package bp2build
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/cc"
|
||||
"android/soong/genrule"
|
||||
)
|
||||
|
||||
type ccTestBp2buildTestCase struct {
|
||||
description string
|
||||
blueprint string
|
||||
targets []testBazelTarget
|
||||
}
|
||||
|
||||
func registerCcTestModuleTypes(ctx android.RegistrationContext) {
|
||||
cc.RegisterCCBuildComponents(ctx)
|
||||
ctx.RegisterModuleType("cc_binary", cc.BinaryFactory)
|
||||
ctx.RegisterModuleType("cc_library_static", cc.LibraryStaticFactory)
|
||||
ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
|
||||
ctx.RegisterModuleType("cc_test_library", cc.TestLibraryFactory)
|
||||
ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
|
||||
}
|
||||
|
||||
func runCcTestTestCase(t *testing.T, testCase ccTestBp2buildTestCase) {
|
||||
t.Helper()
|
||||
moduleTypeUnderTest := "cc_test"
|
||||
|
||||
description := fmt.Sprintf("%s %s", moduleTypeUnderTest, testCase.description)
|
||||
t.Run(description, func(t *testing.T) {
|
||||
t.Helper()
|
||||
RunBp2BuildTestCase(t, registerCcTestModuleTypes, Bp2buildTestCase{
|
||||
ExpectedBazelTargets: generateBazelTargetsForTest(testCase.targets, android.HostAndDeviceSupported),
|
||||
ModuleTypeUnderTest: moduleTypeUnderTest,
|
||||
ModuleTypeUnderTestFactory: cc.TestFactory,
|
||||
Description: description,
|
||||
Blueprint: testCase.blueprint,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestBasicCcTest(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "basic cc_test with commonly used attributes",
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
host_supported: true,
|
||||
srcs: ["test.cpp"],
|
||||
target: {
|
||||
android: {
|
||||
srcs: ["android.cpp"],
|
||||
shared_libs: ["foolib"],
|
||||
},
|
||||
linux: {
|
||||
srcs: ["linux.cpp"],
|
||||
},
|
||||
host: {
|
||||
static_libs: ["hostlib"],
|
||||
},
|
||||
},
|
||||
data: [":data_mod", "file.txt"],
|
||||
data_bins: [":cc_bin"],
|
||||
data_libs: [":cc_lib"],
|
||||
cflags: ["-Wall"],
|
||||
}
|
||||
` + simpleModuleDoNotConvertBp2build("cc_library", "foolib") +
|
||||
simpleModuleDoNotConvertBp2build("cc_library_static", "hostlib") +
|
||||
simpleModuleDoNotConvertBp2build("genrule", "data_mod") +
|
||||
simpleModuleDoNotConvertBp2build("cc_binary", "cc_bin") +
|
||||
simpleModuleDoNotConvertBp2build("cc_test_library", "cc_lib"),
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"copts": `["-Wall"]`,
|
||||
"data": `[
|
||||
":data_mod",
|
||||
"file.txt",
|
||||
":cc_bin",
|
||||
":cc_lib",
|
||||
]`,
|
||||
"deps": `select({
|
||||
"//build/bazel/platforms/os:darwin": [":hostlib"],
|
||||
"//build/bazel/platforms/os:linux": [":hostlib"],
|
||||
"//build/bazel/platforms/os:linux_bionic": [":hostlib"],
|
||||
"//build/bazel/platforms/os:linux_musl": [":hostlib"],
|
||||
"//build/bazel/platforms/os:windows": [":hostlib"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
"gtest": "True",
|
||||
"isolated": "True",
|
||||
"local_includes": `["."]`,
|
||||
"dynamic_deps": `select({
|
||||
"//build/bazel/platforms/os:android": [":foolib"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
"srcs": `["test.cpp"] + select({
|
||||
"//build/bazel/platforms/os:android": [
|
||||
"linux.cpp",
|
||||
"android.cpp",
|
||||
],
|
||||
"//build/bazel/platforms/os:linux": ["linux.cpp"],
|
||||
"//build/bazel/platforms/os:linux_bionic": ["linux.cpp"],
|
||||
"//build/bazel/platforms/os:linux_musl": ["linux.cpp"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestBasicCcTestGtestIsolatedDisabled(t *testing.T) {
|
||||
runCcTestTestCase(t, ccTestBp2buildTestCase{
|
||||
description: "cc test with disabled gtest and isolated props",
|
||||
blueprint: `
|
||||
cc_test {
|
||||
name: "mytest",
|
||||
host_supported: true,
|
||||
srcs: ["test.cpp"],
|
||||
gtest: false,
|
||||
isolated: false,
|
||||
}
|
||||
`,
|
||||
targets: []testBazelTarget{
|
||||
{"cc_test", "mytest", AttrNameToString{
|
||||
"gtest": "False",
|
||||
"isolated": "False",
|
||||
"local_includes": `["."]`,
|
||||
"srcs": `["test.cpp"]`,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
14
cc/binary.go
14
cc/binary.go
@@ -18,6 +18,7 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"android/soong/bazel/cquery"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
@@ -591,7 +592,7 @@ func (handler *ccBinaryBazelHandler) ProcessBazelQueryResponse(ctx android.Modul
|
||||
handler.module.linker.(*binaryDecorator).unstrippedOutputFile = outputFilePath
|
||||
}
|
||||
|
||||
func binaryBp2build(ctx android.TopDownMutatorContext, m *Module, typ string) {
|
||||
func binaryBp2buildAttrs(ctx android.TopDownMutatorContext, m *Module) binaryAttributes {
|
||||
baseAttrs := bp2BuildParseBaseProps(ctx, m)
|
||||
binaryLinkerAttrs := bp2buildBinaryLinkerProps(ctx, m)
|
||||
|
||||
@@ -601,7 +602,7 @@ func binaryBp2build(ctx android.TopDownMutatorContext, m *Module, typ string) {
|
||||
baseAttrs.implementationDeps.Add(baseAttrs.protoDependency)
|
||||
}
|
||||
|
||||
attrs := &binaryAttributes{
|
||||
attrs := binaryAttributes{
|
||||
binaryLinkerAttrs: binaryLinkerAttrs,
|
||||
|
||||
Srcs: baseAttrs.srcs,
|
||||
@@ -644,12 +645,19 @@ func binaryBp2build(ctx android.TopDownMutatorContext, m *Module, typ string) {
|
||||
sdkAttributes: bp2BuildParseSdkAttributes(m),
|
||||
}
|
||||
|
||||
return attrs
|
||||
}
|
||||
|
||||
func binaryBp2build(ctx android.TopDownMutatorContext, m *Module) {
|
||||
// shared with cc_test
|
||||
binaryAttrs := binaryBp2buildAttrs(ctx, m)
|
||||
|
||||
ctx.CreateBazelTargetModule(bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "cc_binary",
|
||||
Bzl_load_location: "//build/bazel/rules/cc:cc_binary.bzl",
|
||||
},
|
||||
android.CommonAttributes{Name: m.Name()},
|
||||
attrs)
|
||||
&binaryAttrs)
|
||||
}
|
||||
|
||||
// binaryAttributes contains Bazel attributes corresponding to a cc binary
|
||||
|
29
cc/cc.go
29
cc/cc.go
@@ -3376,6 +3376,15 @@ func (c *Module) testBinary() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (c *Module) testLibrary() bool {
|
||||
if test, ok := c.linker.(interface {
|
||||
testLibrary() bool
|
||||
}); ok {
|
||||
return test.testLibrary()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (c *Module) benchmarkBinary() bool {
|
||||
if b, ok := c.linker.(interface {
|
||||
benchmarkBinary() bool
|
||||
@@ -3654,13 +3663,25 @@ const (
|
||||
staticLibrary
|
||||
sharedLibrary
|
||||
headerLibrary
|
||||
testBin // testBinary already declared
|
||||
)
|
||||
|
||||
func (c *Module) typ() moduleType {
|
||||
if c.Binary() {
|
||||
if c.testBinary() {
|
||||
// testBinary is also a binary, so this comes before the c.Binary()
|
||||
// conditional. A testBinary has additional implicit dependencies and
|
||||
// other test-only semantics.
|
||||
return testBin
|
||||
} else if c.Binary() {
|
||||
return binary
|
||||
} else if c.Object() {
|
||||
return object
|
||||
} else if c.testLibrary() {
|
||||
// TODO(b/244431896) properly convert cc_test_library to its own macro. This
|
||||
// will let them add implicit compile deps on gtest, for example.
|
||||
//
|
||||
// For now, treat them as regular shared libraries.
|
||||
return sharedLibrary
|
||||
} else if c.CcLibrary() {
|
||||
static := false
|
||||
shared := false
|
||||
@@ -3689,7 +3710,11 @@ func (c *Module) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
||||
switch c.typ() {
|
||||
case binary:
|
||||
if !prebuilt {
|
||||
binaryBp2build(ctx, c, ctx.ModuleType())
|
||||
binaryBp2build(ctx, c)
|
||||
}
|
||||
case testBin:
|
||||
if !prebuilt {
|
||||
testBinaryBp2build(ctx, c)
|
||||
}
|
||||
case object:
|
||||
if !prebuilt {
|
||||
|
79
cc/test.go
79
cc/test.go
@@ -22,6 +22,7 @@ import (
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/bazel"
|
||||
"android/soong/tradefed"
|
||||
)
|
||||
|
||||
@@ -133,7 +134,7 @@ func init() {
|
||||
// specific functionality on a device. The executable binary gets an implicit
|
||||
// static_libs dependency on libgtests unless the gtest flag is set to false.
|
||||
func TestFactory() android.Module {
|
||||
module := NewTest(android.HostAndDeviceSupported)
|
||||
module := NewTest(android.HostAndDeviceSupported, true)
|
||||
return module.Init()
|
||||
}
|
||||
|
||||
@@ -156,7 +157,7 @@ func BenchmarkFactory() android.Module {
|
||||
|
||||
// cc_test_host compiles a test host binary.
|
||||
func TestHostFactory() android.Module {
|
||||
module := NewTest(android.HostSupported)
|
||||
module := NewTest(android.HostSupported, true)
|
||||
return module.Init()
|
||||
}
|
||||
|
||||
@@ -204,6 +205,10 @@ func (test *testBinary) unsetSrc() {
|
||||
test.binaryDecorator.Properties.Stem = StringPtr("")
|
||||
}
|
||||
|
||||
func (test *testBinary) testBinary() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
var _ testPerSrc = (*testBinary)(nil)
|
||||
|
||||
func TestPerSrcMutator(mctx android.BottomUpMutatorContext) {
|
||||
@@ -257,16 +262,10 @@ func (test *testDecorator) gtest() bool {
|
||||
}
|
||||
|
||||
func (test *testDecorator) isolated(ctx BaseModuleContext) bool {
|
||||
if !ctx.Windows() {
|
||||
return BoolDefault(test.LinkerProperties.Isolated, false)
|
||||
}
|
||||
return BoolDefault(test.LinkerProperties.Isolated, false)
|
||||
}
|
||||
|
||||
func (test *testDecorator) testBinary() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// NOTE: Keep this in sync with cc/cc_test.bzl#gtest_copts
|
||||
func (test *testDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
if !test.gtest() {
|
||||
return flags
|
||||
@@ -480,8 +479,8 @@ func (test *testBinary) install(ctx ModuleContext, file android.Path) {
|
||||
test.binaryDecorator.baseInstaller.install(ctx, file)
|
||||
}
|
||||
|
||||
func NewTest(hod android.HostOrDeviceSupported) *Module {
|
||||
module, binary := newBinary(hod, false)
|
||||
func NewTest(hod android.HostOrDeviceSupported, bazelable bool) *Module {
|
||||
module, binary := newBinary(hod, bazelable)
|
||||
module.multilib = android.MultilibBoth
|
||||
binary.baseInstaller = NewTestInstaller()
|
||||
|
||||
@@ -504,6 +503,10 @@ type testLibrary struct {
|
||||
*libraryDecorator
|
||||
}
|
||||
|
||||
func (test *testLibrary) testLibrary() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (test *testLibrary) linkerProps() []interface{} {
|
||||
var props []interface{}
|
||||
props = append(props, test.testDecorator.linkerProps()...)
|
||||
@@ -543,6 +546,7 @@ func NewTestLibrary(hod android.HostOrDeviceSupported) *Module {
|
||||
}
|
||||
module.linker = test
|
||||
module.installer = test
|
||||
module.bazelable = true
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -632,3 +636,56 @@ func NewBenchmark(hod android.HostOrDeviceSupported) *Module {
|
||||
module.installer = benchmark
|
||||
return module
|
||||
}
|
||||
|
||||
// binaryAttributes contains Bazel attributes corresponding to a cc test
|
||||
type testBinaryAttributes struct {
|
||||
binaryAttributes
|
||||
|
||||
Gtest bool
|
||||
Isolated bool
|
||||
Data bazel.LabelListAttribute
|
||||
}
|
||||
|
||||
// testBinaryBp2build is the bp2build converter for cc_test modules. A cc_test's
|
||||
// dependency graph and compilation/linking steps are functionally similar to a
|
||||
// cc_binary, but has additional dependencies on test deps like gtest, and
|
||||
// produces additional runfiles like XML plans for Tradefed orchestration
|
||||
//
|
||||
// TODO(b/244432609): handle `isolated` property.
|
||||
// TODO(b/244432134): handle custom runpaths for tests that assume runfile layouts not
|
||||
// default to bazel. (see linkerInit function)
|
||||
// TODO(b/244432500): handle test.testConfig generation (see install function)
|
||||
func testBinaryBp2build(ctx android.TopDownMutatorContext, m *Module) {
|
||||
var testBinaryAttrs testBinaryAttributes
|
||||
testBinaryAttrs.binaryAttributes = binaryBp2buildAttrs(ctx, m)
|
||||
|
||||
testBinaryProps := m.GetArchVariantProperties(ctx, &TestBinaryProperties{})
|
||||
for axis, configToProps := range testBinaryProps {
|
||||
for config, props := range configToProps {
|
||||
if p, ok := props.(*TestBinaryProperties); ok {
|
||||
// Combine data, data_bins and data_libs into a single 'data' attribute.
|
||||
var combinedData bazel.LabelList
|
||||
combinedData.Append(android.BazelLabelForModuleSrc(ctx, p.Data))
|
||||
combinedData.Append(android.BazelLabelForModuleDeps(ctx, p.Data_bins))
|
||||
combinedData.Append(android.BazelLabelForModuleDeps(ctx, p.Data_libs))
|
||||
testBinaryAttrs.Data.SetSelectValue(axis, config, combinedData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, propIntf := range m.GetProperties() {
|
||||
if testLinkerProps, ok := propIntf.(*TestLinkerProperties); ok {
|
||||
testBinaryAttrs.Gtest = proptools.BoolDefault(testLinkerProps.Gtest, true)
|
||||
testBinaryAttrs.Isolated = proptools.BoolDefault(testLinkerProps.Isolated, true)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
ctx.CreateBazelTargetModule(
|
||||
bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "cc_test",
|
||||
Bzl_load_location: "//build/bazel/rules/cc:cc_test.bzl",
|
||||
},
|
||||
android.CommonAttributes{Name: m.Name()},
|
||||
&testBinaryAttrs)
|
||||
}
|
||||
|
Reference in New Issue
Block a user