diff options
author | Devin Moore <devinmoore@google.com> | 2021-03-11 18:50:52 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-03-11 18:50:52 +0000 |
commit | 1d41fb29cb0cb5695575d942e79cf7b248d58b29 (patch) | |
tree | c15c4de9c77ad30e7f6778e3c7551bd0e25bf051 | |
parent | b43b1bb846870211b7f487320956005351ca5070 (diff) | |
parent | 472a5a63a17bce25cc79e5caa6682b3bca7860dd (diff) | |
download | libbootloader-1d41fb29cb0cb5695575d942e79cf7b248d58b29.tar.gz |
Add vts test for androidboot in /proc/cmdline am: 6882cab75f am: 1457dba08e am: 472a5a63a1
Original change: https://android-review.googlesource.com/c/platform/bootable/libbootloader/+/1624875
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I14239854b338222f1676274737aea8a14675ccfd
-rw-r--r-- | vts/Android.bp | 30 | ||||
-rw-r--r-- | vts/PREUPLOAD.cfg | 6 | ||||
-rw-r--r-- | vts/TEST_MAPPING | 7 | ||||
-rw-r--r-- | vts/VtsBootconfigTest.cpp | 41 |
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; +} |