From 957857f19de2a99062b949501b30b48a77e2ac5e Mon Sep 17 00:00:00 2001 From: Connor O'Brien Date: Tue, 21 Apr 2020 18:09:02 -0700 Subject: [PATCH] power: fix TryDifferentGovernors test Switch to std::string and libbase to simplify the test and avoid string manipulation bugs Bug: 154070740 Bug: 149044096 Test: atest VtsHalPowerV1_0TargetTest Change-Id: Ic80ca462cfeb650edcdc6420bf1b3190aa14dbe4 Signed-off-by: Connor O'Brien --- .../functional/VtsHalPowerV1_0TargetTest.cpp | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/power/1.0/vts/functional/VtsHalPowerV1_0TargetTest.cpp b/power/1.0/vts/functional/VtsHalPowerV1_0TargetTest.cpp index ba08ee733f..7e0ae9c37f 100644 --- a/power/1.0/vts/functional/VtsHalPowerV1_0TargetTest.cpp +++ b/power/1.0/vts/functional/VtsHalPowerV1_0TargetTest.cpp @@ -19,6 +19,8 @@ #include +#include +#include #include #include #include @@ -73,26 +75,16 @@ TEST_P(PowerHidlTest, SetInteractive) { TEST_P(PowerHidlTest, TryDifferentGovernors) { Return ret; - unique_fd fd1(open(CPU_GOVERNOR_PATH, O_RDWR)); - unique_fd fd2(open(AVAILABLE_GOVERNORS_PATH, O_RDONLY)); - if (fd1 < 0 || fd2 < 0) { + std::string old_governor, governors; + if (!android::base::ReadFileToString(CPU_GOVERNOR_PATH, &old_governor) || + !android::base::ReadFileToString(AVAILABLE_GOVERNORS_PATH, &governors)) { // Files don't exist, so skip the rest of the test case SUCCEED(); return; } - - char old_governor[80]; - ASSERT_LE(0, read(fd1, old_governor, 80)); - - char governors[1024]; - unsigned len = read(fd2, governors, 1024); - ASSERT_LE(0u, len); - governors[len] = '\0'; - - char *saveptr; - char *name = strtok_r(governors, " \n", &saveptr); - while (name) { - ASSERT_LE(0, write(fd1, name, strlen(name))); + auto all_governors = android::base::Split(governors, " \n"); + for (const auto &governor : all_governors) { + ASSERT_TRUE(android::base::WriteStringToFile(governor, CPU_GOVERNOR_PATH)); ret = power->setInteractive(true); ASSERT_TRUE(ret.isOk()); @@ -104,11 +96,9 @@ TEST_P(PowerHidlTest, TryDifferentGovernors) { power->powerHint(PowerHint::LAUNCH, 1); power->powerHint(PowerHint::LAUNCH, 0); - - name = strtok_r(NULL, " \n", &saveptr); } - ASSERT_LE(0, write(fd1, old_governor, strlen(old_governor))); + ASSERT_TRUE(android::base::WriteStringToFile(old_governor, CPU_GOVERNOR_PATH)); } // Sanity check Power::powerHint on good and bad inputs.