diff options
Diffstat (limited to 'android-mainline/ANDROID-tools-Miscellaneous.patch')
-rw-r--r-- | android-mainline/ANDROID-tools-Miscellaneous.patch | 353 |
1 files changed, 274 insertions, 79 deletions
diff --git a/android-mainline/ANDROID-tools-Miscellaneous.patch b/android-mainline/ANDROID-tools-Miscellaneous.patch index a6fca29f..218ee094 100644 --- a/android-mainline/ANDROID-tools-Miscellaneous.patch +++ b/android-mainline/ANDROID-tools-Miscellaneous.patch @@ -7,11 +7,16 @@ Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: Ic155709fbf07ec0575fa2fa954ee199e63051a97 --- tools/testing/android/OWNERS | 4 + - tools/testing/android/bin/acloudb.sh | 43 +++++++++++ - tools/testing/android/bin/kselftest.sh | 76 +++++++++++++++++++ - .../selftests/android/config_arm64.xml | 55 ++++++++++++++ - .../selftests/android/config_x86_64.xml | 55 ++++++++++++++ - 5 files changed, 233 insertions(+) + tools/testing/android/bin/acloudb.sh | 43 +++++++++ + tools/testing/android/bin/kselftest.sh | 88 +++++++++++++++++++ + .../selftests/android/config_arm64.xml | 84 ++++++++++++++++++ + .../selftests/android/config_x86_64.xml | 84 ++++++++++++++++++ + .../filesystems/binderfs/binderfs_test.c | 10 +++ + .../selftests/futex/functional/futex_wait.c | 6 ++ + .../futex/functional/futex_wait_timeout.c | 11 ++- + .../futex/functional/futex_wait_wouldblock.c | 13 ++- + tools/testing/selftests/rtc/rtctest.c | 2 + + 10 files changed, 338 insertions(+), 7 deletions(-) create mode 100644 tools/testing/android/OWNERS create mode 100755 tools/testing/android/bin/acloudb.sh create mode 100755 tools/testing/android/bin/kselftest.sh @@ -79,7 +84,7 @@ diff --git a/tools/testing/android/bin/kselftest.sh b/tools/testing/android/bin/ new file mode 100755 --- /dev/null +++ b/tools/testing/android/bin/kselftest.sh -@@ -0,0 +1,76 @@ +@@ -0,0 +1,88 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-2.0 + @@ -147,7 +152,19 @@ new file mode 100755 +fi + +echo "Building selftests..." -+$BAZEL build //common:kselftest_tests_x86_64 ++ABI=$(adb shell getprop ro.product.cpu.abi) ++case $ABI in ++ arm64*) ++ $BAZEL build //common:kselftest_tests_arm64 ++ ;; ++ x86_64*) ++ $BAZEL build //common:kselftest_tests_x86_64 ++ ;; ++ *) ++ echo "$ABI not supported" ++ exit 1 ++ ;; ++esac + +$TRADEFED run commandAndExit template/local_min --template:map test=suite/test_mapping_suite \ +--include-filter selftests --tests-dir=$TESTSDIR --primary-abi-only @@ -160,11 +177,14 @@ diff --git a/tools/testing/selftests/android/config_arm64.xml b/tools/testing/se new file mode 100644 --- /dev/null +++ b/tools/testing/selftests/android/config_arm64.xml -@@ -0,0 +1,55 @@ +@@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2023 The Android Open Source Project +SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +--> ++<!DOCTYPE configuration [ ++<!ENTITY ktest_dir "/data/selftests/arm64"> ++]> +<configuration description="kselftest"> + <option name="test-suite-tag" value="kernel-test" /> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> @@ -174,57 +194,86 @@ new file mode 100644 + <option name="cleanup" value="true" /> + <option name="push-file" key="selftests" value="/data/selftests" /> + <option name="skip-abi-filtering" value="true" /> -+ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests; -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> ++ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> + </target_preparer> + + <test class="com.android.tradefed.testtype.binary.KernelTargetTest" > + <option name="exit-code-skip" value="4" /> + <option name="skip-binary-check" value="true" /> -+ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="/data/selftests/arm64/kselftest_binderfs_binderfs_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="/data/selftests/arm64/kselftest_breakpoints_breakpoint_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_step_after_suspend_test" value="/data/selftests/arm64/kselftest_breakpoints_step_after_suspend_test" /> -+ <option name="test-command-line" key="kselftest_futex_run" value="cd /data/selftests/arm64/;USE_COLOR=0 ./kselftest_futex_run" /> -+ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="/data/selftests/arm64/kselftest_kcmp_kcmp_test" /> -+ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="/data/selftests/arm64/kselftest_ptrace_peeksiginfo" /> -+ <option name="test-command-line" key="kselftest_rtc_rtctest" value="/data/selftests/arm64/kselftest_rtc_rtctest" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="/data/selftests/arm64/kselftest_vdso_vdso_test_abi" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="/data/selftests/arm64/kselftest_vdso_vdso_test_clock_getres" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="/data/selftests/arm64/kselftest_vdso_vdso_test_getcpu" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="/data/selftests/arm64/kselftest_vdso_vdso_test_gettimeofday" /> -+ <option name="test-command-line" key="kselftest_size_test_get_size" value="/data/selftests/arm64/kselftest_size_test_get_size" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="/data/selftests/arm64/kselftest_mm_mremap_dontunmap" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_test" value="/data/selftests/arm64/kselftest_mm_mremap_test" /> -+ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="/data/selftests/arm64/kselftest_mm_uffd_unit_tests" /> -+ <option name="test-command-line" key="kselftest_timers_adjtick" value="/data/selftests/arm64/kselftest_timers_adjtick" /> -+ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="/data/selftests/arm64/kselftest_timers_alarmtimer_suspend" /> -+ <option name="test-command-line" key="kselftest_timers_change_skew" value="/data/selftests/arm64/kselftest_timers_change_skew" /> -+ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="/data/selftests/arm64/kselftest_timers_clocksource_switch" /> -+ <option name="test-command-line" key="kselftest_timers_freq_step" value="/data/selftests/arm64/kselftest_timers_freq_step" /> -+ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="/data/selftests/arm64/kselftest_timers_inconsistency_check" /> -+ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="/data/selftests/arm64/kselftest_timers_leap_a_day" /> -+ <option name="test-command-line" key="kselftest_timers_leapcrash" value="/data/selftests/arm64/kselftest_timers_leapcrash" /> -+ <option name="test-command-line" key="kselftest_timers_nanosleep" value="/data/selftests/arm64/kselftest_timers_nanosleep" /> -+ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="/data/selftests/arm64/kselftest_timers_nsleep_lat" /> -+ <option name="test-command-line" key="kselftest_timers_posix_timers" value="/data/selftests/arm64/kselftest_timers_posix_timers" /> -+ <option name="test-command-line" key="kselftest_timers_set_2038" value="/data/selftests/arm64/kselftest_timers_set_2038" /> -+ <option name="test-command-line" key="kselftest_timers_set_tai" value="/data/selftests/arm64/kselftest_timers_set_tai" /> -+ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="/data/selftests/arm64/kselftest_timers_set_timer_lat" /> -+ <option name="test-command-line" key="kselftest_timers_set_tz" value="/data/selftests/arm64/kselftest_timers_set_tz" /> -+ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="/data/selftests/arm64/kselftest_timers_skew_consistency" /> -+ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="/data/selftests/arm64/kselftest_timers_tests_raw_skew" /> -+ <option name="test-command-line" key="kselftest_timers_threadtest" value="/data/selftests/arm64/kselftest_timers_threadtest" /> -+ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="/data/selftests/arm64/kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="cd &ktest_dir;; ./kselftest_binderfs_binderfs_test" /> ++ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="cd &ktest_dir;; ./kselftest_breakpoints_breakpoint_test" /> ++ <option name="test-command-line" key="kselftest_futex_requeue" value="cd &ktest_dir;; ./futex_requeue" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi" value="cd &ktest_dir;; ./futex_requeue_pi" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b" value="cd &ktest_dir;; ./futex_requeue_pi -b" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl" value="cd &ktest_dir;; ./futex_requeue_pi -b -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo" value="cd &ktest_dir;; ./futex_requeue_pi -b -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l" value="cd &ktest_dir;; ./futex_requeue_pi -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o" value="cd &ktest_dir;; ./futex_requeue_pi -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_5k" value="cd &ktest_dir;; ./futex_requeue_pi -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_5k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_5k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_500k" value="cd &ktest_dir;; ./futex_requeue_pi -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_500k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_500k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_2G" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_2G" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_mismatched_ops" value="cd &ktest_dir;; ./futex_requeue_pi_mismatched_ops" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_signal_restart" value="cd &ktest_dir;; ./futex_requeue_pi_signal_restart" /> ++ <option name="test-command-line" key="kselftest_futex_wait" value="cd &ktest_dir;; ./futex_wait" /> ++ <option name="test-command-line" key="kselftest_futex_wait_private_mapped_file" value="cd &ktest_dir;; ./futex_wait_private_mapped_file" /> ++ <option name="test-command-line" key="kselftest_futex_wait_timeout" value="cd &ktest_dir;; ./futex_wait_timeout" /> ++ <option name="test-command-line" key="kselftest_futex_wait_uninitialized_heap" value="cd &ktest_dir;; ./futex_wait_uninitialized_heap" /> ++ <option name="test-command-line" key="kselftest_futex_wait_wouldblock" value="cd &ktest_dir;; ./futex_wait_wouldblock" /> ++ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="cd &ktest_dir;; ./kselftest_kcmp_kcmp_test" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="cd &ktest_dir;; ./kselftest_mm_mremap_dontunmap" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_test" value="cd &ktest_dir;; ./kselftest_mm_mremap_test" /> ++ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="cd &ktest_dir;; ./kselftest_mm_uffd_unit_tests" /> ++ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="cd &ktest_dir;; ./kselftest_ptrace_peeksiginfo" /> ++ <option name="test-command-line" key="kselftest_rtc_rtctest" value="cd &ktest_dir;; ./kselftest_rtc_rtctest" /> ++ <option name="test-command-line" key="kselftest_size_test_get_size" value="cd &ktest_dir;; ./kselftest_size_test_get_size" /> ++ <option name="test-command-line" key="kselftest_timers_adjtick" value="cd &ktest_dir;; ./kselftest_timers_adjtick" /> ++ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="cd &ktest_dir;; ./kselftest_timers_alarmtimer_suspend" /> ++ <option name="test-command-line" key="kselftest_timers_change_skew" value="cd &ktest_dir;; ./kselftest_timers_change_skew" /> ++ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="cd &ktest_dir;; ./kselftest_timers_clocksource_switch" /> ++ <option name="test-command-line" key="kselftest_timers_freq_step" value="cd &ktest_dir;; ./kselftest_timers_freq_step" /> ++ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="cd &ktest_dir;; ./kselftest_timers_inconsistency_check" /> ++ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="cd &ktest_dir;; ./kselftest_timers_leap_a_day" /> ++ <option name="test-command-line" key="kselftest_timers_leapcrash" value="cd &ktest_dir;; ./kselftest_timers_leapcrash" /> ++ <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./kselftest_timers_nanosleep" /> ++ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./kselftest_timers_nsleep_lat" /> ++ <option name="test-command-line" key="kselftest_timers_posix_timers" value="cd &ktest_dir;; ./kselftest_timers_posix_timers" /> ++ <option name="test-command-line" key="kselftest_timers_set_2038" value="cd &ktest_dir;; ./kselftest_timers_set_2038" /> ++ <option name="test-command-line" key="kselftest_timers_set_tai" value="cd &ktest_dir;; ./kselftest_timers_set_tai" /> ++ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> ++ <option name="test-command-line" key="kselftest_timers_set_tz" value="cd &ktest_dir;; ./kselftest_timers_set_tz" /> ++ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="cd &ktest_dir;; ./kselftest_timers_skew_consistency" /> ++ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./kselftest_timers_tests_raw_skew" /> ++ <option name="test-command-line" key="kselftest_timers_threadtest" value="cd &ktest_dir;; ./kselftest_timers_threadtest" /> ++ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="cd &ktest_dir;; ./kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_abi" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_clock_getres" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_getcpu" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_gettimeofday" /> + </test> +</configuration> diff --git a/tools/testing/selftests/android/config_x86_64.xml b/tools/testing/selftests/android/config_x86_64.xml new file mode 100644 --- /dev/null +++ b/tools/testing/selftests/android/config_x86_64.xml -@@ -0,0 +1,55 @@ +@@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2023 The Android Open Source Project +SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +--> ++<!DOCTYPE configuration [ ++<!ENTITY ktest_dir "/data/selftests/x86_64"> ++]> +<configuration description="kselftest"> + <option name="test-suite-tag" value="kernel-test" /> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> @@ -234,45 +283,191 @@ new file mode 100644 + <option name="cleanup" value="true" /> + <option name="push-file" key="selftests" value="/data/selftests" /> + <option name="skip-abi-filtering" value="true" /> -+ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests; -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> ++ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> + </target_preparer> + + <test class="com.android.tradefed.testtype.binary.KernelTargetTest" > + <option name="exit-code-skip" value="4" /> + <option name="skip-binary-check" value="true" /> -+ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="/data/selftests/x86_64/kselftest_binderfs_binderfs_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="/data/selftests/x86_64/kselftest_breakpoints_breakpoint_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_step_after_suspend_test" value="/data/selftests/x86_64/kselftest_breakpoints_step_after_suspend_test" /> -+ <option name="test-command-line" key="kselftest_futex_run" value="cd /data/selftests/x86_64/;USE_COLOR=0 ./kselftest_futex_run" /> -+ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="/data/selftests/x86_64/kselftest_kcmp_kcmp_test" /> -+ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="/data/selftests/x86_64/kselftest_ptrace_peeksiginfo" /> -+ <option name="test-command-line" key="kselftest_rtc_rtctest" value="/data/selftests/x86_64/kselftest_rtc_rtctest" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_abi" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_clock_getres" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_getcpu" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_gettimeofday" /> -+ <option name="test-command-line" key="kselftest_size_test_get_size" value="/data/selftests/x86_64/kselftest_size_test_get_size" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="/data/selftests/x86_64/kselftest_mm_mremap_dontunmap" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_test" value="/data/selftests/x86_64/kselftest_mm_mremap_test" /> -+ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="/data/selftests/x86_64/kselftest_mm_uffd_unit_tests" /> -+ <option name="test-command-line" key="kselftest_timers_adjtick" value="/data/selftests/x86_64/kselftest_timers_adjtick" /> -+ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="/data/selftests/x86_64/kselftest_timers_alarmtimer_suspend" /> -+ <option name="test-command-line" key="kselftest_timers_change_skew" value="/data/selftests/x86_64/kselftest_timers_change_skew" /> -+ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="/data/selftests/x86_64/kselftest_timers_clocksource_switch" /> -+ <option name="test-command-line" key="kselftest_timers_freq_step" value="/data/selftests/x86_64/kselftest_timers_freq_step" /> -+ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="/data/selftests/x86_64/kselftest_timers_inconsistency_check" /> -+ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="/data/selftests/x86_64/kselftest_timers_leap_a_day" /> -+ <option name="test-command-line" key="kselftest_timers_leapcrash" value="/data/selftests/x86_64/kselftest_timers_leapcrash" /> -+ <option name="test-command-line" key="kselftest_timers_nanosleep" value="/data/selftests/x86_64/kselftest_timers_nanosleep" /> -+ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="/data/selftests/x86_64/kselftest_timers_nsleep_lat" /> -+ <option name="test-command-line" key="kselftest_timers_posix_timers" value="/data/selftests/x86_64/kselftest_timers_posix_timers" /> -+ <option name="test-command-line" key="kselftest_timers_set_2038" value="/data/selftests/x86_64/kselftest_timers_set_2038" /> -+ <option name="test-command-line" key="kselftest_timers_set_tai" value="/data/selftests/x86_64/kselftest_timers_set_tai" /> -+ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="/data/selftests/x86_64/kselftest_timers_set_timer_lat" /> -+ <option name="test-command-line" key="kselftest_timers_set_tz" value="/data/selftests/x86_64/kselftest_timers_set_tz" /> -+ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="/data/selftests/x86_64/kselftest_timers_skew_consistency" /> -+ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="/data/selftests/x86_64/kselftest_timers_tests_raw_skew" /> -+ <option name="test-command-line" key="kselftest_timers_threadtest" value="/data/selftests/x86_64/kselftest_timers_threadtest" /> -+ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="/data/selftests/x86_64/kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="cd &ktest_dir;; ./kselftest_binderfs_binderfs_test" /> ++ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="cd &ktest_dir;; ./kselftest_breakpoints_breakpoint_test" /> ++ <option name="test-command-line" key="kselftest_futex_requeue" value="cd &ktest_dir;; ./futex_requeue" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi" value="cd &ktest_dir;; ./futex_requeue_pi" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b" value="cd &ktest_dir;; ./futex_requeue_pi -b" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl" value="cd &ktest_dir;; ./futex_requeue_pi -b -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo" value="cd &ktest_dir;; ./futex_requeue_pi -b -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l" value="cd &ktest_dir;; ./futex_requeue_pi -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o" value="cd &ktest_dir;; ./futex_requeue_pi -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_5k" value="cd &ktest_dir;; ./futex_requeue_pi -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_5k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_5k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_500k" value="cd &ktest_dir;; ./futex_requeue_pi -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_500k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_500k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_2G" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_2G" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_mismatched_ops" value="cd &ktest_dir;; ./futex_requeue_pi_mismatched_ops" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_signal_restart" value="cd &ktest_dir;; ./futex_requeue_pi_signal_restart" /> ++ <option name="test-command-line" key="kselftest_futex_wait" value="cd &ktest_dir;; ./futex_wait" /> ++ <option name="test-command-line" key="kselftest_futex_wait_private_mapped_file" value="cd &ktest_dir;; ./futex_wait_private_mapped_file" /> ++ <option name="test-command-line" key="kselftest_futex_wait_timeout" value="cd &ktest_dir;; ./futex_wait_timeout" /> ++ <option name="test-command-line" key="kselftest_futex_wait_uninitialized_heap" value="cd &ktest_dir;; ./futex_wait_uninitialized_heap" /> ++ <option name="test-command-line" key="kselftest_futex_wait_wouldblock" value="cd &ktest_dir;; ./futex_wait_wouldblock" /> ++ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="cd &ktest_dir;; ./kselftest_kcmp_kcmp_test" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="cd &ktest_dir;; ./kselftest_mm_mremap_dontunmap" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_test" value="cd &ktest_dir;; ./kselftest_mm_mremap_test" /> ++ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="cd &ktest_dir;; ./kselftest_mm_uffd_unit_tests" /> ++ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="cd &ktest_dir;; ./kselftest_ptrace_peeksiginfo" /> ++ <option name="test-command-line" key="kselftest_rtc_rtctest" value="cd &ktest_dir;; ./kselftest_rtc_rtctest" /> ++ <option name="test-command-line" key="kselftest_size_test_get_size" value="cd &ktest_dir;; ./kselftest_size_test_get_size" /> ++ <option name="test-command-line" key="kselftest_timers_adjtick" value="cd &ktest_dir;; ./kselftest_timers_adjtick" /> ++ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="cd &ktest_dir;; ./kselftest_timers_alarmtimer_suspend" /> ++ <option name="test-command-line" key="kselftest_timers_change_skew" value="cd &ktest_dir;; ./kselftest_timers_change_skew" /> ++ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="cd &ktest_dir;; ./kselftest_timers_clocksource_switch" /> ++ <option name="test-command-line" key="kselftest_timers_freq_step" value="cd &ktest_dir;; ./kselftest_timers_freq_step" /> ++ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="cd &ktest_dir;; ./kselftest_timers_inconsistency_check" /> ++ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="cd &ktest_dir;; ./kselftest_timers_leap_a_day" /> ++ <option name="test-command-line" key="kselftest_timers_leapcrash" value="cd &ktest_dir;; ./kselftest_timers_leapcrash" /> ++ <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./kselftest_timers_nanosleep" /> ++ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./kselftest_timers_nsleep_lat" /> ++ <option name="test-command-line" key="kselftest_timers_posix_timers" value="cd &ktest_dir;; ./kselftest_timers_posix_timers" /> ++ <option name="test-command-line" key="kselftest_timers_set_2038" value="cd &ktest_dir;; ./kselftest_timers_set_2038" /> ++ <option name="test-command-line" key="kselftest_timers_set_tai" value="cd &ktest_dir;; ./kselftest_timers_set_tai" /> ++ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> ++ <option name="test-command-line" key="kselftest_timers_set_tz" value="cd &ktest_dir;; ./kselftest_timers_set_tz" /> ++ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="cd &ktest_dir;; ./kselftest_timers_skew_consistency" /> ++ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./kselftest_timers_tests_raw_skew" /> ++ <option name="test-command-line" key="kselftest_timers_threadtest" value="cd &ktest_dir;; ./kselftest_timers_threadtest" /> ++ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="cd &ktest_dir;; ./kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_abi" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_clock_getres" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_getcpu" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_gettimeofday" /> + </test> +</configuration> +diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +--- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c ++++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +@@ -291,6 +291,11 @@ static int write_id_mapping(enum idmap_type type, pid_t pid, const char *buf, + return 0; + } + ++static bool has_userns(void) ++{ ++ return (access("/proc/self/ns/user", F_OK) == 0); ++} ++ + static void change_userns(struct __test_metadata *_metadata, int syncfds[2]) + { + int ret; +@@ -378,6 +383,9 @@ static void *binder_version_thread(void *data) + */ + TEST(binderfs_stress) + { ++ if (!has_userns()) ++ SKIP(return, "%s: user namespace not supported\n", __func__); ++ + int fds[1000]; + int syncfds[2]; + pid_t pid; +@@ -502,6 +510,8 @@ TEST(binderfs_test_privileged) + + TEST(binderfs_test_unprivileged) + { ++ if (!has_userns()) ++ SKIP(return, "%s: user namespace not supported\n", __func__); + int ret; + int syncfds[2]; + pid_t pid; +diff --git a/tools/testing/selftests/futex/functional/futex_wait.c b/tools/testing/selftests/futex/functional/futex_wait.c +--- a/tools/testing/selftests/futex/functional/futex_wait.c ++++ b/tools/testing/selftests/futex/functional/futex_wait.c +@@ -96,6 +96,11 @@ int main(int argc, char *argv[]) + /* Testing an anon page shared memory */ + shm_id = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0666); + if (shm_id < 0) { ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("shmget returned: %d %s\n", ++ errno, strerror(errno)); ++ goto skip_anon_page_shared_memory_test; ++ } + perror("shmget"); + exit(1); + } +@@ -121,6 +126,7 @@ int main(int argc, char *argv[]) + ksft_test_result_pass("futex_wake shared (page anon) succeeds\n"); + } + ++skip_anon_page_shared_memory_test: + + /* Testing a file backed shared memory */ + fd = open(SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); +diff --git a/tools/testing/selftests/futex/functional/futex_wait_timeout.c b/tools/testing/selftests/futex/functional/futex_wait_timeout.c +--- a/tools/testing/selftests/futex/functional/futex_wait_timeout.c ++++ b/tools/testing/selftests/futex/functional/futex_wait_timeout.c +@@ -64,9 +64,14 @@ void *get_pi_lock(void *arg) + static void test_timeout(int res, int *ret, char *test_name, int err) + { + if (!res || errno != err) { +- ksft_test_result_fail("%s returned %d\n", test_name, +- res < 0 ? errno : res); +- *ret = RET_FAIL; ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("%s returned %d\n", test_name, ++ errno); ++ } else { ++ ksft_test_result_fail("%s returned %d\n", test_name, ++ res < 0 ? errno : res); ++ *ret = RET_FAIL; ++ } + } else { + ksft_test_result_pass("%s succeeds\n", test_name); + } +diff --git a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +--- a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c ++++ b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +@@ -98,10 +98,15 @@ int main(int argc, char *argv[]) + info("Calling futex_waitv on f1: %u @ %p with val=%u\n", f1, &f1, f1+1); + res = futex_waitv(&waitv, 1, 0, &to, CLOCK_MONOTONIC); + if (!res || errno != EWOULDBLOCK) { +- ksft_test_result_pass("futex_waitv returned: %d %s\n", +- res ? errno : res, +- res ? strerror(errno) : ""); +- ret = RET_FAIL; ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("futex_waitv returned %d\n", ++ errno); ++ } else { ++ ksft_test_result_fail("futex_waitv returned: %d %s\n", ++ res ? errno : res, ++ res ? strerror(errno) : ""); ++ ret = RET_FAIL; ++ } + } else { + ksft_test_result_pass("futex_waitv\n"); + } +diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c +--- a/tools/testing/selftests/rtc/rtctest.c ++++ b/tools/testing/selftests/rtc/rtctest.c +@@ -122,6 +122,7 @@ TEST_F_TIMEOUT(rtc, date_read_loop, READ_LOOP_DURATION_SEC + 2) { + TH_LOG("Performed %ld RTC time reads.", iter_count); + } + ++#ifndef __ANDROID__ // b/31578457 + TEST_F_TIMEOUT(rtc, uie_read, NUM_UIE + 2) { + int i, rc, irq = 0; + unsigned long data; +@@ -409,6 +410,7 @@ TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) { + new = timegm((struct tm *)&tm); + ASSERT_EQ(new, secs); + } ++#endif + + static void __attribute__((constructor)) + __constructor_order_last(void) |