summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Moore <devinmoore@google.com>2021-03-11 19:26:19 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-03-11 19:26:19 +0000
commit26cdddf2d1b7c5b5a9a9c5aec675c53f9b54d6c0 (patch)
treec15c4de9c77ad30e7f6778e3c7551bd0e25bf051
parent10fda6f0cf6a3fb3774c5f411b0f5d0435868250 (diff)
parent1d41fb29cb0cb5695575d942e79cf7b248d58b29 (diff)
downloadlibbootloader-26cdddf2d1b7c5b5a9a9c5aec675c53f9b54d6c0.tar.gz
Add vts test for androidboot in /proc/cmdline am: 6882cab75f am: 1457dba08e am: 472a5a63a1 am: 1d41fb29cb
Original change: https://android-review.googlesource.com/c/platform/bootable/libbootloader/+/1624875 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ic215f258da0678368183f7589c33ef706b936792
-rw-r--r--vts/Android.bp30
-rw-r--r--vts/PREUPLOAD.cfg6
-rw-r--r--vts/TEST_MAPPING7
-rw-r--r--vts/VtsBootconfigTest.cpp41
4 files changed, 84 insertions, 0 deletions
diff --git a/vts/Android.bp b/vts/Android.bp
new file mode 100644
index 0000000..06fb911
--- /dev/null
+++ b/vts/Android.bp
@@ -0,0 +1,30 @@
+//
+// 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 required 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.
+
+cc_test {
+ name: "VtsBootconfigTest",
+ srcs: [
+ "VtsBootconfigTest.cpp",
+ ],
+ shared_libs: [
+ "libbase",
+ "libbpf_android",
+ ],
+ test_suites: [
+ "general-tests",
+ "vts",
+ ],
+ require_root: true,
+}
diff --git a/vts/PREUPLOAD.cfg b/vts/PREUPLOAD.cfg
new file mode 100644
index 0000000..b18ce2b
--- /dev/null
+++ b/vts/PREUPLOAD.cfg
@@ -0,0 +1,6 @@
+[Builtin Hooks]
+bpfmt = true
+clang_format = true
+
+[Builtin Hooks Options]
+clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc
diff --git a/vts/TEST_MAPPING b/vts/TEST_MAPPING
new file mode 100644
index 0000000..7b10593
--- /dev/null
+++ b/vts/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+ "presubmit": [
+ {
+ "name": "VtsBootconfigTest"
+ }
+ ]
+}
diff --git a/vts/VtsBootconfigTest.cpp b/vts/VtsBootconfigTest.cpp
new file mode 100644
index 0000000..285c180
--- /dev/null
+++ b/vts/VtsBootconfigTest.cpp
@@ -0,0 +1,41 @@
+/**
+ * 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 required 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.
+ */
+
+#include "gtest/gtest.h"
+#include <android-base/file.h>
+#include <android-base/properties.h>
+#include "bpf/BpfUtils.h"
+
+class VtsBootconfigTest : public testing::Test {};
+
+TEST_F(VtsBootconfigTest, ProcCmdlineAndroidbootTest) {
+ // This test only applies to devices launching with S(or greater) AND with
+ // kernel version 5.10(or greater)
+ bool kernel_support = android::bpf::isAtLeastKernelVersion(5, 10, 0);
+ if (std::stoi(android::base::GetProperty("ro.product.first_api_level", "0"))
+ < __ANDROID_API_S__ || !kernel_support) {
+ GTEST_SKIP() << "Bootconfig requirements do not apply";
+ }
+
+ std::string cmdline;
+ ASSERT_TRUE(android::base::ReadFileToString("/proc/cmdline", &cmdline));
+ EXPECT_TRUE(cmdline.size() > 0);
+ EXPECT_EQ(cmdline.find("androidboot"), cmdline.npos)
+ << "\"androidboot\" parameters are not allowed in the kernel cmdline for "
+ << "devices using kernel version 5.10 or greater with Android S and beyond. "
+ << "These parameters are to be placed in bootconfig."
+ << "\n/proc/cmdline contents:\n" << cmdline;
+}