libbpf_load_test: use "data" instead of "required" for test progs
atest appears not to know how to push dependencies listed with the
"required" property, but it will push "data" modules to the same
folder as the test itself. Update Android.bp to use data instead, and
change BpfLoadTest.cpp to reflect the new location of the test
programs.
Test: atest libbpf_load_test
Bug: 203823368
Signed-off-by: Connor O'Brien <connoro@google.com>
Change-Id: Iabec3662e2c03f4ab19e5cdce859e4238767519d
diff --git a/libbpf_android/BpfLoadTest.cpp b/libbpf_android/BpfLoadTest.cpp
index 635d877..d14c7fc 100644
--- a/libbpf_android/BpfLoadTest.cpp
+++ b/libbpf_android/BpfLoadTest.cpp
@@ -24,7 +24,7 @@
#include "bpf/BpfUtils.h"
#include "include/libbpf_android.h"
-using ::testing::TestWithParam;;
+using ::testing::TestWithParam;
namespace android {
namespace bpf {
@@ -38,19 +38,18 @@
std::string mTpMapPath;;
void SetUp() {
- auto progName = android::base::Basename(GetParam());
- progName = progName.substr(0, progName.find_last_of('.'));
- mTpProgPath = "/sys/fs/bpf/prog_" + progName + "_tracepoint_sched_sched_switch";
+ mTpProgPath = "/sys/fs/bpf/prog_" + GetParam() + "_tracepoint_sched_sched_switch";
unlink(mTpProgPath.c_str());
- mTpNeverLoadProgPath = "/sys/fs/bpf/prog_" + progName + "_tracepoint_sched_sched_wakeup";
+ mTpNeverLoadProgPath = "/sys/fs/bpf/prog_" + GetParam() + "_tracepoint_sched_sched_wakeup";
unlink(mTpNeverLoadProgPath.c_str());
- mTpMapPath = "/sys/fs/bpf/map_" + progName + "_cpu_pid_map";
+ mTpMapPath = "/sys/fs/bpf/map_" + GetParam() + "_cpu_pid_map";
unlink(mTpMapPath.c_str());
+ auto progPath = android::base::GetExecutableDirectory() + "/" + GetParam() + ".o";
bool critical = true;
- EXPECT_EQ(android::bpf::loadProg(GetParam().c_str(), &critical), 0);
+ EXPECT_EQ(android::bpf::loadProg(progPath.c_str(), &critical), 0);
EXPECT_EQ(false, critical);
mProgFd = bpf_obj_get(mTpProgPath.c_str());
@@ -108,8 +107,8 @@
};
INSTANTIATE_TEST_SUITE_P(BpfLoadTests, BpfLoadTest,
- ::testing::Values("/system/etc/bpf/bpf_load_tp_prog.o",
- "/system/etc/bpf/bpf_load_tp_prog_btf.o"));
+ ::testing::Values("bpf_load_tp_prog",
+ "bpf_load_tp_prog_btf"));
TEST_P(BpfLoadTest, bpfCheckMap) {
checkMapNonZero();