Modified tests to account for different directories being used based on

different first API levels

Fixes: 80028983
Test: Ran tests on P17 and P18
Change-Id: I2752c5b8e15dc5e3ee386b0079a75b482a21543f
This commit is contained in:
joshmccloskey
2018-05-25 16:43:58 -07:00
committed by Joshua Mccloskey
parent de0e5293bd
commit 7897d0f573

View File

@@ -19,6 +19,7 @@
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h>
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprintClientCallback.h>
#include <hidl/HidlSupport.h>
@@ -28,6 +29,7 @@
#include <future>
#include <utility>
using android::base::GetUintProperty;
using android::Condition;
using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback;
@@ -44,7 +46,7 @@ namespace {
static const uint32_t kTimeout = 3;
static const std::chrono::seconds kTimeoutInSeconds = std::chrono::seconds(kTimeout);
static const uint32_t kGroupId = 99;
static const std::string kTmpDir = "/data/system/users/0/fpdata/";
static std::string kTmpDir = "";
static const uint32_t kIterations = 1000;
// Wait for a callback to occur (signaled by the given future) up to the
@@ -199,9 +201,25 @@ class FingerprintHidlTest : public ::testing::VtsHalHidlTargetTestBase {
FingerprintHidlEnvironment::Instance()->getServiceName<IBiometricsFingerprint>());
ASSERT_FALSE(mService == nullptr);
// Create an active group
// FP service can only write to /data/system/users/*/fpdata/ due to
// SELinux Policy and Linux Dir Permissions
/*
* Devices shipped from now on will instead store
* fingerprint data under /data/vendor_de/<user-id>/fpdata.
* Support for /data/vendor_de and /data/vendor_ce has been added to vold.
*/
uint64_t api_level = GetUintProperty<uint64_t>("ro.product.first_api_level", 0);
if (api_level == 0) {
api_level = GetUintProperty<uint64_t>("ro.build.version.sdk", 0);
}
ASSERT_TRUE(api_level != 0);
// 27 is the API number for O-MR1
if (api_level <= 27) {
kTmpDir = "/data/system/users/0/fpdata/";
} else {
kTmpDir = "/data/vendor_de/0/fpdata/";
}
Return<RequestStatus> res = mService->setActiveGroup(kGroupId, kTmpDir);
ASSERT_EQ(RequestStatus::SYS_OK, static_cast<RequestStatus>(res));
}