From cba9f66098cebd22b5efef128e4b4c46580a9ed7 Mon Sep 17 00:00:00 2001 From: Treehugger Robot Date: Tue, 6 Jul 2021 21:12:19 +0000 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 Original-Change: https://android-review.googlesource.com/1756440 Merged-In: Ibaedb8fcb28591ffba1506514f2305d55712a26b 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