From bbc4ea32bc5dcf1192d0cf00f074fd03c97c583c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Tue, 6 Jul 2021 02:35:39 -0700 Subject: [PATCH] add test for /system/etc/bpf/{netd,clatd}.o using correct struct sizes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Change-Id: Ibaedb8fcb28591ffba1506514f2305d55712a26b --- tests/cts/net/native/{qtaguid => }/Android.bp | 9 +++- .../net/native/{qtaguid => }/AndroidTest.xml | 0 tests/cts/net/native/src/BpfCompatTest.cpp | 43 +++++++++++++++++++ .../{qtaguid => }/src/NativeQtaguidTest.cpp | 0 4 files changed, 50 insertions(+), 2 deletions(-) rename tests/cts/net/native/{qtaguid => }/Android.bp (90%) rename tests/cts/net/native/{qtaguid => }/AndroidTest.xml (100%) create mode 100644 tests/cts/net/native/src/BpfCompatTest.cpp rename tests/cts/net/native/{qtaguid => }/src/NativeQtaguidTest.cpp (100%) diff --git a/tests/cts/net/native/qtaguid/Android.bp b/tests/cts/net/native/Android.bp similarity index 90% rename from tests/cts/net/native/qtaguid/Android.bp rename to 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 similarity index 100% rename from tests/cts/net/native/qtaguid/AndroidTest.xml rename to 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 + +#include + +#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 similarity index 100% rename from tests/cts/net/native/qtaguid/src/NativeQtaguidTest.cpp rename to tests/cts/net/native/src/NativeQtaguidTest.cpp