diff options
| author | Maciej Żenczykowski <maze@google.com> | 2021-07-06 02:35:39 -0700 |
|---|---|---|
| committer | Maciej Żenczykowski <maze@google.com> | 2021-07-06 02:50:47 -0700 |
| commit | bbc4ea32bc5dcf1192d0cf00f074fd03c97c583c (patch) | |
| tree | 6c8103b6c848415aa5ca6fbc59be4ed7a43385ed | |
| parent | b028fc7cf11adc4bc4f8703cb8029cd85e0984b7 (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.cpp | 43 | ||||
| -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 |
