| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Weijia He <hwj@google.com> |
| Date: Thu, 26 Oct 2023 23:42:35 +0000 |
| Subject: ANDROID: tools: Miscellaneous |
| |
| 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 | 88 +++++++++++++++++++ |
| .../kunit/configs/android/kunit_clk_defconfig | 3 + |
| .../kunit/configs/android/kunit_defconfig | 37 ++++++++ |
| .../testing/selftests/android/config_arm.xml | 82 +++++++++++++++++ |
| .../selftests/android/config_arm64.xml | 82 +++++++++++++++++ |
| .../testing/selftests/android/config_x86.xml | 88 +++++++++++++++++++ |
| .../selftests/android/config_x86_64.xml | 88 +++++++++++++++++++ |
| .../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/net/psock_tpacket.c | 2 + |
| tools/testing/selftests/rtc/rtctest.c | 2 + |
| 15 files changed, 552 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 |
| create mode 100644 tools/testing/kunit/configs/android/kunit_clk_defconfig |
| create mode 100644 tools/testing/kunit/configs/android/kunit_defconfig |
| create mode 100644 tools/testing/selftests/android/config_arm.xml |
| create mode 100644 tools/testing/selftests/android/config_arm64.xml |
| create mode 100644 tools/testing/selftests/android/config_x86.xml |
| create mode 100644 tools/testing/selftests/android/config_x86_64.xml |
| |
| diff --git a/tools/testing/android/OWNERS b/tools/testing/android/OWNERS |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/android/OWNERS |
| @@ -0,0 +1,4 @@ |
| +bettyzhou@google.com |
| +edliaw@google.com |
| +hwj@google.com |
| +joefradley@google.com |
| diff --git a/tools/testing/android/bin/acloudb.sh b/tools/testing/android/bin/acloudb.sh |
| new file mode 100755 |
| --- /dev/null |
| +++ b/tools/testing/android/bin/acloudb.sh |
| @@ -0,0 +1,43 @@ |
| +#!/usr/bin/env bash |
| +# SPDX-License-Identifier: GPL-2.0 |
| + |
| +# acloudb .sh is a handy tool dedicated to kernel users to create remote AVDs without having the |
| +# whole AOSP source tree. |
| + |
| +# Constants |
| +DEFAULT_ASUITE_HOME="prebuilts/asuite" |
| +DEFAULT_ACLOUD_HOME="$DEFAULT_ASUITE_HOME/acloud/linux-x86" |
| +ACLOUD_BIN="$DEFAULT_ACLOUD_HOME/acloud" |
| +OPT_SKIP_PRERUNCHECK='--skip-pre-run-check' |
| +OPT_DEFAULT_BRANCH=" --branch aosp-main" |
| +# Color constants |
| +BOLD="$(tput bold)" |
| +END="$(tput sgr0)" |
| +GREEN="$(tput setaf 2)" |
| +RED="$(tput setaf 198)" |
| + |
| +function adb_checker() { |
| + [[ "$(uname)" != "Linux" ]] && return |
| + if ! which adb &> /dev/null; then |
| + echo -e "\n${RED}Adb not found!${END}" |
| + fi |
| +} |
| + |
| +function main() { |
| + adb_checker |
| + EXTRA_OPTIONS=() |
| + if [[ "$1" == "create" ]]; then |
| + EXTRA_OPTIONS+=$OPT_SKIP_PRERUNCHECK |
| + # Add in branch if not specified |
| + ADD_BRANCH=true |
| + for i in "$@"; do |
| + [[ $i == "--branch" ]] && ADD_BRANCH=false |
| + done |
| + if $ADD_BRANCH; then |
| + EXTRA_OPTIONS+=$OPT_DEFAULT_BRANCH |
| + fi |
| + fi |
| + eval "$ACLOUD_BIN" "$@" "${EXTRA_OPTIONS[@]}" |
| +} |
| + |
| +main "$@" |
| diff --git a/tools/testing/android/bin/kselftest.sh b/tools/testing/android/bin/kselftest.sh |
| new file mode 100755 |
| --- /dev/null |
| +++ b/tools/testing/android/bin/kselftest.sh |
| @@ -0,0 +1,88 @@ |
| +#!/usr/bin/env bash |
| +# SPDX-License-Identifier: GPL-2.0 |
| + |
| +BAZEL=tools/bazel |
| +BIN_DIR=common/tools/testing/android/bin |
| +ACLOUD=$BIN_DIR/acloudb.sh |
| +TRADEFED=prebuilts/tradefed/filegroups/tradefed/tradefed.sh |
| +TESTSDIR=bazel-bin/common/testcases |
| + |
| +print_help() { |
| + echo "Usage: $0 [OPTIONS]" |
| + echo "" |
| + echo "This script builds kernel, launches cvd and runs selftests on it." |
| + echo "Available options:" |
| + echo " --skip-kernel-build Skip the kernel building step" |
| + echo " --skip-cvd-launch Skip the CVD launch step" |
| + echo " --skip-cvd-kill Do not kill CVD launched by running this script" |
| + echo " --dist-dir The kernel dist dir (default is /tmp/kernel_dist)" |
| + echo " --help Display this help message and exit" |
| + echo "" |
| + exit 0 |
| +} |
| + |
| +BUILD_KERNEL=true |
| +LAUNCH_CVD=true |
| +KILL_CVD=true |
| +DIST_DIR=/tmp/kernel_dist |
| + |
| +for arg in "$@"; do |
| + case $arg in |
| + --skip-kernel-build) |
| + BUILD_KERNEL=false |
| + shift |
| + ;; |
| + --skip-cvd-launch) |
| + LAUNCH_CVD=false |
| + shift |
| + ;; |
| + --skip-cvd-kill) |
| + KILL_CVD=false |
| + shift |
| + ;; |
| + --dist-dir) |
| + DIST_DIR="${arg#*=}" |
| + shift |
| + ;; |
| + --help) |
| + print_help |
| + ;; |
| + *) |
| + ;; |
| + esac |
| +done |
| + |
| +if $BUILD_KERNEL; then |
| + echo "Building kernel..." |
| + $BAZEL run //common-modules/virtual-device:virtual_device_x86_64_dist -- --dist_dir=$DIST_DIR |
| +fi |
| + |
| +if $LAUNCH_CVD; then |
| + echo "Launching cvd..." |
| + CVD_OUT=$($ACLOUD create --local-kernel-image $DIST_DIR) |
| + echo $CVD_OUT |
| + INSTANCE_NAME=$(echo $CVD_OUT|grep -o "ins-[^\[]*") |
| +fi |
| + |
| +echo "Building selftests..." |
| +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 |
| + |
| +if $LAUNCH_CVD && $KILL_CVD; then |
| + echo "Test finished. Deleting cvd..." |
| + $ACLOUD delete --instance-names $INSTANCE_NAME |
| +fi |
| diff --git a/tools/testing/kunit/configs/android/kunit_clk_defconfig b/tools/testing/kunit/configs/android/kunit_clk_defconfig |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/kunit/configs/android/kunit_clk_defconfig |
| @@ -0,0 +1,3 @@ |
| +# Only for architectures that set CONFIG_COMMON_CLK |
| +CONFIG_CLK_KUNIT_TEST=m |
| +CONFIG_CLK_GATE_KUNIT_TEST=m |
| diff --git a/tools/testing/kunit/configs/android/kunit_defconfig b/tools/testing/kunit/configs/android/kunit_defconfig |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/kunit/configs/android/kunit_defconfig |
| @@ -0,0 +1,37 @@ |
| +# Defconfig fragment for Android Kunit targets |
| +# |
| +# Instead of setting CONFIG_KUNIT_ALL_TESTS=m, we enable individual tests |
| +# because: |
| +# - The defconfig fragment is applied after make defconfig |
| +# - If additional tests are added to CONFIG_KUNIT_ALL_TESTS in the future, |
| +# //common:kunit_* module_outs needs to be updated. |
| + |
| +# CONFIG_MODULE_SIG_ALL is not set |
| + |
| +# Corresponds to BUILD.bazel, _KUNIT_COMMON_MODULES |
| +CONFIG_TIME_KUNIT_TEST=m |
| +CONFIG_NETDEV_ADDR_LIST_TEST=m |
| +CONFIG_REGMAP_KUNIT=m |
| +CONFIG_INPUT_KUNIT_TEST=m |
| +CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m |
| +CONFIG_SND_SOC_UTILS_KUNIT_TEST=m |
| +CONFIG_HID_KUNIT_TEST=m |
| +CONFIG_RTC_LIB_KUNIT_TEST=m |
| +CONFIG_IIO_FORMAT_KUNIT_TEST=m |
| +CONFIG_EXT4_KUNIT_TESTS=m |
| +CONFIG_FAT_KUNIT_TEST=m |
| +CONFIG_KFENCE_KUNIT_TEST=m |
| +CONFIG_KUNIT_TEST=m |
| +CONFIG_KUNIT_EXAMPLE_TEST=m |
| + |
| +# CONFIG_NET_HANDSHAKE is not enabled in gki_defconfig. |
| +# CONFIG_NET_HANDSHAKE_KUNIT_TEST=m |
| + |
| +# TODO(b/296116800): Enable these tests |
| +# CONFIG_DRM_KUNIT_TEST=m |
| +# CONFIG_KASAN_KUNIT_TEST=m |
| + |
| +# TODO(b/296116800): These are booleans, not tristates. |
| +# CONFIG_BINFMT_ELF_KUNIT_TEST=y |
| +# CONFIG_PM_QOS_KUNIT_TEST=y |
| +# CONFIG_DRIVER_PE_KUNIT_TEST=y |
| diff --git a/tools/testing/selftests/android/config_arm.xml b/tools/testing/selftests/android/config_arm.xml |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/selftests/android/config_arm.xml |
| @@ -0,0 +1,82 @@ |
| +<?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/arm"> |
| +]> |
| +<configuration description="kselftest"> |
| + <option name="test-suite-tag" value="kernel-test" /> |
| + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> |
| + <target_preparer class="com.android.tradefed.targetprep.StopServicesSetup" /> |
| + |
| + <object type="module_controller" class="com.android.tradefed.testtype.suite.module.KernelTestModuleController" > |
| + <option name="arch" value="arm"/> |
| + </object> |
| + |
| + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> |
| + <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"' /> |
| + </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="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_capabilities_test_execve" value="cd &ktest_dir;; ./kselftest_capabilities_test_execve" /> |
| + <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_net_socket" value="cd &ktest_dir;; ./kselftest_net_socket" /> |
| + <!--option name="test-command-line" key="kselftest_net_psock_tpacket" value="cd &ktest_dir;; ./kselftest_net_psock_tpacket" /--> |
| + <option name="test-command-line" key="kselftest_net_reuseaddr_conflict" value="cd &ktest_dir;; ./kselftest_net_reuseaddr_conflict" /> |
| + <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_seccomp_seccomp_bpf" value="cd &ktest_dir;; ./kselftest_seccomp_seccomp_bpf" /--> |
| + <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_inconsistency_check" value="cd &ktest_dir;; ./inconsistency-check" /> |
| + <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./nanosleep" /> |
| + <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./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_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> |
| + <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./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_arm64.xml b/tools/testing/selftests/android/config_arm64.xml |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/selftests/android/config_arm64.xml |
| @@ -0,0 +1,82 @@ |
| +<?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" /> |
| + <target_preparer class="com.android.tradefed.targetprep.StopServicesSetup" /> |
| + |
| + <object type="module_controller" class="com.android.tradefed.testtype.suite.module.KernelTestModuleController" > |
| + <option name="arch" value="arm64"/> |
| + </object> |
| + |
| + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> |
| + <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"' /> |
| + </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="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_capabilities_test_execve" value="cd &ktest_dir;; ./kselftest_capabilities_test_execve" /> |
| + <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_net_socket" value="cd &ktest_dir;; ./kselftest_net_socket" /> |
| + <option name="test-command-line" key="kselftest_net_psock_tpacket" value="cd &ktest_dir;; ./kselftest_net_psock_tpacket" /> |
| + <option name="test-command-line" key="kselftest_net_reuseaddr_conflict" value="cd &ktest_dir;; ./kselftest_net_reuseaddr_conflict" /> |
| + <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_seccomp_seccomp_bpf" value="cd &ktest_dir;; ./kselftest_seccomp_seccomp_bpf" /> |
| + <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_inconsistency_check" value="cd &ktest_dir;; ./inconsistency-check" /> |
| + <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./nanosleep" /> |
| + <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./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_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> |
| + <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./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.xml b/tools/testing/selftests/android/config_x86.xml |
| new file mode 100644 |
| --- /dev/null |
| +++ b/tools/testing/selftests/android/config_x86.xml |
| @@ -0,0 +1,88 @@ |
| +<?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"> |
| +]> |
| +<configuration description="kselftest"> |
| + <option name="test-suite-tag" value="kernel-test" /> |
| + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> |
| + <target_preparer class="com.android.tradefed.targetprep.StopServicesSetup" /> |
| + |
| + <object type="module_controller" class="com.android.tradefed.testtype.suite.module.KernelTestModuleController" > |
| + <option name="arch" value="x86"/> |
| + </object> |
| + |
| + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> |
| + <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"' /> |
| + </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="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_capabilities_test_execve" value="cd &ktest_dir;; ./kselftest_capabilities_test_execve" /> |
| + <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_net_socket" value="cd &ktest_dir;; ./kselftest_net_socket" /> |
| + <option name="test-command-line" key="kselftest_net_psock_tpacket" value="cd &ktest_dir;; ./kselftest_net_psock_tpacket" /> |
| + <option name="test-command-line" key="kselftest_net_reuseaddr_conflict" value="cd &ktest_dir;; ./kselftest_net_reuseaddr_conflict" /> |
| + <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_seccomp_seccomp_bpf" value="cd &ktest_dir;; ./kselftest_seccomp_seccomp_bpf" /> |
| + <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_inconsistency_check" value="cd &ktest_dir;; ./inconsistency-check" /> |
| + <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./nanosleep" /> |
| + <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./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_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> |
| + <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./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" /> |
| + <option name="test-command-line" key="kselftest_x86_check_initial_reg_state" value="cd &ktest_dir;; ./kselftest_x86_check_initial_reg_state" /> |
| + <option name="test-command-line" key="kselftest_x86_ldt_gdt" value="cd &ktest_dir;; ./kselftest_x86_ldt_gdt" /> |
| + <option name="test-command-line" key="kselftest_x86_ptrace_syscall" value="cd &ktest_dir;; ./kselftest_x86_ptrace_syscall" /> |
| + <option name="test-command-line" key="kselftest_x86_single_step_syscall" value="cd &ktest_dir;; ./kselftest_x86_single_step_syscall" /> |
| + <option name="test-command-line" key="kselftest_x86_syscall_nt" value="cd &ktest_dir;; ./kselftest_x86_syscall_nt" /> |
| + <option name="test-command-line" key="kselftest_x86_test_mremap_vdso" value="cd &ktest_dir;; ./kselftest_x86_test_mremap_vdso" /> |
| + </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,88 @@ |
| +<?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" /> |
| + <target_preparer class="com.android.tradefed.targetprep.StopServicesSetup" /> |
| + |
| + <object type="module_controller" class="com.android.tradefed.testtype.suite.module.KernelTestModuleController" > |
| + <option name="arch" value="x86_64"/> |
| + </object> |
| + |
| + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> |
| + <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"' /> |
| + </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="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_capabilities_test_execve" value="cd &ktest_dir;; ./kselftest_capabilities_test_execve" /> |
| + <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_net_socket" value="cd &ktest_dir;; ./kselftest_net_socket" /> |
| + <option name="test-command-line" key="kselftest_net_psock_tpacket" value="cd &ktest_dir;; ./kselftest_net_psock_tpacket" /> |
| + <option name="test-command-line" key="kselftest_net_reuseaddr_conflict" value="cd &ktest_dir;; ./kselftest_net_reuseaddr_conflict" /> |
| + <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_seccomp_seccomp_bpf" value="cd &ktest_dir;; ./kselftest_seccomp_seccomp_bpf" /> |
| + <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_inconsistency_check" value="cd &ktest_dir;; ./inconsistency-check" /> |
| + <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./nanosleep" /> |
| + <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./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_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> |
| + <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./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" /> |
| + <option name="test-command-line" key="kselftest_x86_check_initial_reg_state" value="cd &ktest_dir;; ./kselftest_x86_check_initial_reg_state" /> |
| + <option name="test-command-line" key="kselftest_x86_ldt_gdt" value="cd &ktest_dir;; ./kselftest_x86_ldt_gdt" /> |
| + <option name="test-command-line" key="kselftest_x86_ptrace_syscall" value="cd &ktest_dir;; ./kselftest_x86_ptrace_syscall" /> |
| + <option name="test-command-line" key="kselftest_x86_single_step_syscall" value="cd &ktest_dir;; ./kselftest_x86_single_step_syscall" /> |
| + <option name="test-command-line" key="kselftest_x86_syscall_nt" value="cd &ktest_dir;; ./kselftest_x86_syscall_nt" /> |
| + <option name="test-command-line" key="kselftest_x86_test_mremap_vdso" value="cd &ktest_dir;; ./kselftest_x86_test_mremap_vdso" /> |
| + </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/net/psock_tpacket.c b/tools/testing/selftests/net/psock_tpacket.c |
| --- a/tools/testing/selftests/net/psock_tpacket.c |
| +++ b/tools/testing/selftests/net/psock_tpacket.c |
| @@ -33,7 +33,9 @@ |
| #include <ctype.h> |
| #include <fcntl.h> |
| #include <unistd.h> |
| +#ifndef __ANDROID__ |
| #include <bits/wordsize.h> |
| +#endif |
| #include <net/ethernet.h> |
| #include <netinet/ip.h> |
| #include <arpa/inet.h> |
| 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) |