Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7897d0f5 authored by joshmccloskey's avatar joshmccloskey Committed by Joshua Mccloskey
Browse files

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
parent de0e5293
Loading
Loading
Loading
Loading
+22 −4
Original line number Diff line number Diff line
@@ -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));
  }