|
1 | 1 | load("@fbsource//tools/build_defs:fb_xplat_cxx_test.bzl", "fb_xplat_cxx_test") |
2 | 2 | load("@fbsource//tools/build_defs:platform_defs.bzl", "ANDROID", "CXX", "FBCODE") |
3 | 3 | load("@fbsource//tools/build_defs/dirsync:fb_dirsync_cpp_unittest.bzl", "fb_dirsync_cpp_unittest") |
| 4 | +load("@fbsource//tools/target_determinator/macros:ci.bzl", "ci") |
4 | 5 | load("@fbsource//xplat/pfh/triage_InfrastructureSupermoduleOptou:DEFS.bzl", "triage_InfrastructureSupermoduleOptou") |
5 | 6 |
|
| 7 | +# Android API level gate for ashmem tests. ASharedMemory_create() requires |
| 8 | +# API 26+. FOLLY_TEST_HAS_ASHMEM is passed as a compiler flag so the C++ |
| 9 | +# source does not duplicate the threshold. |
| 10 | +_ASHMEM_FLAG = ["-DFOLLY_TEST_HAS_ASHMEM=1"] |
| 11 | + |
| 12 | +_ASHMEM_TOOLCHAIN = ["fbsource//third-party/toolchains:android"] |
| 13 | + |
| 14 | +_ASHMEM_COMPILER_FLAGS = select({ |
| 15 | + "DEFAULT": [], |
| 16 | + "ovr_config//os/version/android:api-level-26": _ASHMEM_FLAG, |
| 17 | + "ovr_config//os/version/android:api-level-27": _ASHMEM_FLAG, |
| 18 | + "ovr_config//os/version/android:api-level-28": _ASHMEM_FLAG, |
| 19 | + "ovr_config//os/version/android:api-level-29": _ASHMEM_FLAG, |
| 20 | + "ovr_config//os/version/android:api-level-30": _ASHMEM_FLAG, |
| 21 | + "ovr_config//os/version/android:api-level-31": _ASHMEM_FLAG, |
| 22 | + "ovr_config//os/version/android:api-level-32": _ASHMEM_FLAG, |
| 23 | + "ovr_config//os/version/android:api-level-33": _ASHMEM_FLAG, |
| 24 | + "ovr_config//os/version/android:api-level-34": _ASHMEM_FLAG, |
| 25 | + "ovr_config//os/version/android:api-level-35": _ASHMEM_FLAG, |
| 26 | + "ovr_config//os/version/android:api-level-36": _ASHMEM_FLAG, |
| 27 | +}) |
| 28 | + |
| 29 | +_ASHMEM_DEPS = select({ |
| 30 | + "DEFAULT": [], |
| 31 | + "ovr_config//os/version/android:api-level-26": _ASHMEM_TOOLCHAIN, |
| 32 | + "ovr_config//os/version/android:api-level-27": _ASHMEM_TOOLCHAIN, |
| 33 | + "ovr_config//os/version/android:api-level-28": _ASHMEM_TOOLCHAIN, |
| 34 | + "ovr_config//os/version/android:api-level-29": _ASHMEM_TOOLCHAIN, |
| 35 | + "ovr_config//os/version/android:api-level-30": _ASHMEM_TOOLCHAIN, |
| 36 | + "ovr_config//os/version/android:api-level-31": _ASHMEM_TOOLCHAIN, |
| 37 | + "ovr_config//os/version/android:api-level-32": _ASHMEM_TOOLCHAIN, |
| 38 | + "ovr_config//os/version/android:api-level-33": _ASHMEM_TOOLCHAIN, |
| 39 | + "ovr_config//os/version/android:api-level-34": _ASHMEM_TOOLCHAIN, |
| 40 | + "ovr_config//os/version/android:api-level-35": _ASHMEM_TOOLCHAIN, |
| 41 | + "ovr_config//os/version/android:api-level-36": _ASHMEM_TOOLCHAIN, |
| 42 | +}) |
| 43 | + |
6 | 44 | oncall("fbcode_entropy_wardens_folly") |
7 | 45 |
|
8 | 46 | fb_dirsync_cpp_unittest( |
@@ -61,20 +99,26 @@ fb_dirsync_cpp_unittest( |
61 | 99 | fb_dirsync_cpp_unittest( |
62 | 100 | name = "memory_mapping_test", |
63 | 101 | srcs = ["MemoryMappingTest.cpp"], |
| 102 | + compiler_flags = _ASHMEM_COMPILER_FLAGS, |
64 | 103 | feature = triage_InfrastructureSupermoduleOptou, |
65 | 104 | platforms = (ANDROID, CXX, FBCODE), |
66 | 105 | use_instrumentation_test = True, |
67 | 106 | # TODO(T263893609): Drop this explicit override once folly_xplat_cxx_test |
68 | 107 | # forwards Android test attrs correctly for xplat/folly tests. |
69 | 108 | xplat_impl = fb_xplat_cxx_test, |
| 109 | + # Run with arvr Android API 34 mode so the ashmem test (gated on |
| 110 | + # __ANDROID_API__ >= _ASHMEM_MIN_API) compiles and executes in CI. |
| 111 | + xplat_labels = ci.labels( |
| 112 | + ci.linux(ci.mode("fbsource//arvr/mode/android/apk/linux/dev")), |
| 113 | + ), |
70 | 114 | deps = [ |
71 | 115 | "fbsource//third-party/glog:glog", |
72 | 116 | "//folly:file_util", |
73 | 117 | "//folly:random", |
74 | 118 | "//folly/portability:gtest", |
75 | 119 | "//folly/portability:sys_mman", |
76 | 120 | "//folly/system:memory_mapping", |
77 | | - ], |
| 121 | + ] + _ASHMEM_DEPS, |
78 | 122 | ) |
79 | 123 |
|
80 | 124 | fb_dirsync_cpp_unittest( |
|
0 commit comments