summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2021-07-06 02:35:39 -0700
committerMaciej Żenczykowski <maze@google.com>2021-07-06 02:50:47 -0700
commitbbc4ea32bc5dcf1192d0cf00f074fd03c97c583c (patch)
tree6c8103b6c848415aa5ca6fbc59be4ed7a43385ed
parentb028fc7cf11adc4bc4f8703cb8029cd85e0984b7 (diff)
add test for /system/etc/bpf/{netd,clatd}.o using correct struct sizes
This test is required to ensure that the system is compatible with future updates of the tethering mainline module, which updates BPF .o files on device. This test must already be passing on OEM devices because otherwise the offload.o program in the Tethering mainline module would bootloop the device. Bug: 190519702 Test: atest CtsNativeNetTestCases, TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ibaedb8fcb28591ffba1506514f2305d55712a26b
-rw-r--r--tests/cts/net/native/Android.bp (renamed from tests/cts/net/native/qtaguid/Android.bp)9
-rw-r--r--tests/cts/net/native/AndroidTest.xml (renamed from tests/cts/net/native/qtaguid/AndroidTest.xml)0
-rw-r--r--tests/cts/net/native/src/BpfCompatTest.cpp43
-rw-r--r--tests/cts/net/native/src/NativeQtaguidTest.cpp (renamed from tests/cts/net/native/qtaguid/src/NativeQtaguidTest.cpp)0
4 files changed, 50 insertions, 2 deletions
diff --git a/tests/cts/net/native/qtaguid/Android.bp b/tests/cts/net/native/Android.bp
index 68bb14da87..fa32e44986 100644
--- a/tests/cts/net/native/qtaguid/Android.bp
+++ b/tests/cts/net/native/Android.bp
@@ -31,14 +31,19 @@ cc_test {
},
},
- srcs: ["src/NativeQtaguidTest.cpp"],
+ srcs: [
+ "src/BpfCompatTest.cpp",
+ "src/NativeQtaguidTest.cpp",
+ ],
shared_libs: [
- "libutils",
+ "libbase",
"liblog",
+ "libutils",
],
static_libs: [
+ "libbpf_android",
"libgtest",
"libqtaguid",
],
diff --git a/tests/cts/net/native/qtaguid/AndroidTest.xml b/tests/cts/net/native/AndroidTest.xml
index fa4b2cf577..fa4b2cf577 100644
--- a/tests/cts/net/native/qtaguid/AndroidTest.xml
+++ b/tests/cts/net/native/AndroidTest.xml
diff --git a/tests/cts/net/native/src/BpfCompatTest.cpp b/tests/cts/net/native/src/BpfCompatTest.cpp
new file mode 100644
index 0000000000..09d7e62c32
--- /dev/null
+++ b/tests/cts/net/native/src/BpfCompatTest.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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 requied 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.
+ *
+ */
+
+#define LOG_TAG "BpfCompatTest"
+
+#include <fstream>
+
+#include <gtest/gtest.h>
+
+#include "libbpf_android.h"
+
+using namespace android::bpf;
+
+namespace android {
+
+void doBpfStructSizeTest(const char *elfPath) {
+ std::ifstream elfFile(elfPath, std::ios::in | std::ios::binary);
+ ASSERT_TRUE(elfFile.is_open());
+
+ EXPECT_EQ(48, readSectionUint("size_of_bpf_map_def", elfFile, 0));
+ EXPECT_EQ(28, readSectionUint("size_of_bpf_prog_def", elfFile, 0));
+}
+
+TEST(BpfTest, bpfStructSizeTest) {
+ doBpfStructSizeTest("/system/etc/bpf/netd.o");
+ doBpfStructSizeTest("/system/etc/bpf/clatd.o");
+}
+
+} // namespace android
diff --git a/tests/cts/net/native/qtaguid/src/NativeQtaguidTest.cpp b/tests/cts/net/native/src/NativeQtaguidTest.cpp
index 7dc6240667..7dc6240667 100644
--- a/tests/cts/net/native/qtaguid/src/NativeQtaguidTest.cpp
+++ b/tests/cts/net/native/src/NativeQtaguidTest.cpp