aboutsummaryrefslogtreecommitdiff
path: root/scripts/release-tests.sh
blob: 155e9ac2d6dc77a8438b5a6ef3253004c9e6bea9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
set -e

source build/envsetup.sh

function integration_tests() {
    m -j citadel_integration_tests || return 1
    adb shell stop || return 1
    adb sync || return 1
    adb shell start || return 1
    adb shell \
        /vendor/bin/hw/citadel_integration_tests --release-tests || return 1
}

# TODO: add AVB / Weaver / Keymaster VTS / CTS tests with filters here.

function oem_lock_vts_tests() {
    atest VtsHalOemLockV1_0TargetTest || return 1
}

function keymaster_cts_tests() {
    return 0
}

function keymaster_vts_tests() {
    m -j VtsHalKeymasterV4_0TargetTest || return 1
    adb sync data || return 1
    # TODO(b/109771020): remove test filter below.
    adb shell \
        /data/nativetest64/VtsHalKeymasterV4_0TargetTest/VtsHalKeymasterV4_0TargetTest \
        --verbose \
        --hal_service_instance=android.hardware.keymaster@4.0::IKeymasterDevice/strongbox \
        --gtest_filter=-EncryptionOperationsTest.RsaNoPaddingShortMessage || return 1
}

function weaver_cts_tests() {
  # These CTS tests make a lot of use of Weaver by enrolling and changing
  # credentials. Add omre if you come across them.
  atest com.android.cts.devicepolicy.ManagedProfileTest\#testLockNowWithKeyEviction || return 1
  atest com.android.cts.devicepolicy.DeviceAdminHostSideTestApi24 || return 1
}

function weaver_vts_tests() {
    atest VtsHalWeaverV1_0TargetTest || return 1
}

function auth_secret_vts_tests() {
    atest VtsHalAuthSecretV1_0TargetTest || return 1
}

function pay_cts_tests() {
    runtest --path \
            cts/tests/tests/keystore/src/android/keystore/cts/ImportWrappedKeyTest.java || return 1
}

# TODO: add any other tests

if [ -z "${TARGET_PRODUCT:-}" ]; then
  echo "You need to run the Android setup stuff first"
  exit 1
fi

adb root && adb remount

# keymaster tests need to run before integration tests, which mess
# with factory reset, and break keymaster on-boot info.
for t in \
             keymaster_vts_tests \
             keymaster_cts_tests \
             pay_cts_tests \
             integration_tests \
             oem_lock_vts_tests \
             weaver_cts_tests \
             weaver_vts_tests \
             auth_secret_vts_tests; do
    if eval "${t}"; then
        echo "PASS: ${t}"
    else
        echo "FAIL: ${t}"
        exit 1
    fi
done

# TODO: factory reset the device to original state.