summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJooyung Han <jooyung@google.com>2022-12-28 01:49:14 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-12-28 01:49:14 +0000
commit250b4c2b0a69afc4df9d23f65f42f9e6173febea (patch)
tree38ce63b56ba343e48575857fa0f159040e963926
parent78512d07d8dd6814befd6f3bcbf0ee7a125c5689 (diff)
parent426b958be8683146957c75b446ff3bac6aaef063 (diff)
downloadlibhardware_legacy-250b4c2b0a69afc4df9d23f65f42f9e6173febea.tar.gz
Merge "Remove libbinder from libpower"main-16k-with-phones
-rw-r--r--Android.bp9
-rw-r--r--power_test.cpp27
2 files changed, 19 insertions, 17 deletions
diff --git a/Android.bp b/Android.bp
index 7be18c7..409db5d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -29,6 +29,9 @@ cc_library_headers {
cc_defaults {
name: "libpower_defaults",
defaults: ["system_suspend_defaults"],
+ // system_suspend_defaults adds libbinder, but libbpower doesn't need it
+ // because libpower now uses libbinder_ndk.
+ exclude_shared_libs: ["libbinder"],
cflags: [
"-Wexit-time-destructors",
"-fno-c++-static-destructors",
@@ -56,9 +59,9 @@ cc_test {
name: "libpower_test",
defaults: ["libpower_defaults"],
srcs: ["power_test.cpp"],
- static_libs: ["libpower"],
- shared_libs: [
- "android.system.suspend.control.internal-cpp",
+ static_libs: [
+ "libpower",
+ "android.system.suspend.control.internal-ndk",
"android.system.suspend-V1-ndk",
],
test_suites: ["device-tests"],
diff --git a/power_test.cpp b/power_test.cpp
index 9a68651..7e0b68e 100644
--- a/power_test.cpp
+++ b/power_test.cpp
@@ -14,21 +14,21 @@
* limitations under the License.
*/
-#include <android/system/suspend/internal/ISuspendControlServiceInternal.h>
-#include <binder/IServiceManager.h>
+#include <aidl/android/system/suspend/internal/ISuspendControlServiceInternal.h>
+#include <android/binder_manager.h>
#include <gtest/gtest.h>
#include <hardware_legacy/power.h>
#include <wakelock/wakelock.h>
#include <csignal>
#include <cstdlib>
+#include <memory>
#include <string>
#include <thread>
#include <vector>
-using android::sp;
-using android::system::suspend::internal::ISuspendControlServiceInternal;
-using android::system::suspend::internal::WakeLockInfo;
+using aidl::android::system::suspend::internal::ISuspendControlServiceInternal;
+using aidl::android::system::suspend::internal::WakeLockInfo;
using namespace std::chrono_literals;
namespace android {
@@ -93,17 +93,16 @@ TEST(LibpowerTest, WakeLockStressTest) {
class WakeLockTest : public ::testing::Test {
public:
virtual void SetUp() override {
- sp<IBinder> control =
- android::defaultServiceManager()->getService(android::String16("suspend_control_internal"));
- ASSERT_NE(control, nullptr) << "failed to get the internal suspend control service";
- controlService = interface_cast<ISuspendControlServiceInternal>(control);
+ ndk::SpAIBinder binder(AServiceManager_waitForService("suspend_control_internal"));
+ controlService = ISuspendControlServiceInternal::fromBinder(binder);
+ ASSERT_NE(controlService, nullptr) << "failed to get the internal suspend control service";
}
// Returns true iff found.
- bool findWakeLockInfoByName(const sp<ISuspendControlServiceInternal>& service, const std::string& name,
+ bool findWakeLockInfoByName(const std::string& name,
WakeLockInfo* info) {
std::vector<WakeLockInfo> wlStats;
- service->getWakeLockStats(&wlStats);
+ controlService->getWakeLockStats(&wlStats);
auto it = std::find_if(wlStats.begin(), wlStats.end(),
[&name](const auto& x) { return x.name == name; });
if (it != wlStats.end()) {
@@ -114,7 +113,7 @@ class WakeLockTest : public ::testing::Test {
}
// All userspace wake locks are registered with system suspend.
- sp<ISuspendControlServiceInternal> controlService;
+ std::shared_ptr<ISuspendControlServiceInternal> controlService;
};
// Test RAII properties of WakeLock destructor.
@@ -127,7 +126,7 @@ TEST_F(WakeLockTest, WakeLockDestructor) {
}
WakeLockInfo info;
- auto success = findWakeLockInfoByName(controlService, name, &info);
+ auto success = findWakeLockInfoByName(name, &info);
ASSERT_TRUE(success);
ASSERT_EQ(info.name, name);
ASSERT_EQ(info.pid, getpid());
@@ -138,7 +137,7 @@ TEST_F(WakeLockTest, WakeLockDestructor) {
// come on binder thread. Sleep to make sure that stats are reported *after* wake lock release.
std::this_thread::sleep_for(1ms);
WakeLockInfo info;
- auto success = findWakeLockInfoByName(controlService, name, &info);
+ auto success = findWakeLockInfoByName(name, &info);
ASSERT_TRUE(success);
ASSERT_EQ(info.name, name);
ASSERT_EQ(info.pid, getpid());