summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2023-05-04 11:16:26 +0000
committerMaciej Żenczykowski <maze@google.com>2023-05-23 01:14:26 +0000
commitaca7a3605df5d171f69c4bbe8ef5642ae3abf9fb (patch)
tree0adeb81b3d01fb33badc5301056cfd06e992697a
parentfd7faec0bb5c1c047ffaa2b5c3396bef5acf63b0 (diff)
downloadnetd-aca7a3605df5d171f69c4bbe8ef5642ae3abf9fb.tar.gz
netd_integration_test: add a test for 64-bit kernel CONFIG_BPF_JIT_ALWAYS_ON
See also: https://googleplex-android-review.git.corp.google.com/c/platform/test/vts-testcase/kernel/+/22930654 isa: Add a test to ensure that a device is using a 64-bit kernel Devices launching with Android 14 and later versions of Android must use a 64-bit kernel, so add a test to enforce this. Test: TreeHugger, atest netd_integration_test:KernelTest Signed-off-by: Maciej Żenczykowski <maze@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:099e1961906d1b3994b3a0b8c4b679601c9c33b6) Merged-In: Iafcc9f88f0c761a288e3307792ec5c625edc4ba0 Change-Id: Iafcc9f88f0c761a288e3307792ec5c625edc4ba0 Bug: 283523051
-rw-r--r--tests/kernel_test.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/kernel_test.cpp b/tests/kernel_test.cpp
index b9e1875e..517b165c 100644
--- a/tests/kernel_test.cpp
+++ b/tests/kernel_test.cpp
@@ -21,6 +21,8 @@
#include <fstream>
#include <string>
+#include "bpf/KernelUtils.h"
+
namespace android {
namespace net {
@@ -72,5 +74,22 @@ TEST(KernelTest, TestRateLimitingSupport) {
ASSERT_TRUE(configVerifier.hasOption("CONFIG_BPF_JIT"));
}
+TEST(KernelTest, TestBpfJitAlwaysOn) {
+ // 32-bit arm & x86 kernels aren't capable of JIT-ing all of our BPF code,
+ if (bpf::isKernel32Bit()) GTEST_SKIP() << "Exempt on 32-bit kernel.";
+ KernelConfigVerifier configVerifier;
+ ASSERT_TRUE(configVerifier.hasOption("CONFIG_BPF_JIT_ALWAYS_ON"));
+}
+
+/* Android 14/U should only launch on 64-bit kernels
+ * T launches on 5.10/5.15
+ * U launches on 5.15/6.1
+ * So >=5.16 implies isKernel64Bit()
+ */
+TEST(KernelTest, TestKernel64Bit) {
+ if (!bpf::isAtLeastKernelVersion(5, 16, 0)) GTEST_SKIP() << "Exempt on < 5.16 kernel.";
+ ASSERT_TRUE(bpf::isKernel64Bit());
+}
+
} // namespace net
} // namespace android