blob: 0b9166c56315b4118c85e81d2ba65af09a1fc458 [file] [log] [blame]
//
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_applicable_licenses: ["external_linux-kselftest_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
name: "external_linux-kselftest_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD-2-Clause",
"SPDX-license-identifier-BSD-3-Clause",
"SPDX-license-identifier-CC0-1.0",
"SPDX-license-identifier-GPL",
"SPDX-license-identifier-GPL-2.0",
"SPDX-license-identifier-GPL-3.0",
"SPDX-license-identifier-LGPL",
"SPDX-license-identifier-LGPL-2.1",
"SPDX-license-identifier-MIT",
"SPDX-license-identifier-Unlicense",
],
license_text: [
"COPYING",
"NOTICE",
],
}
cc_defaults {
name: "kselftest_defaults",
cflags: [
// Hacks for bionic compatibility
"-include bionic-compat.h",
"-Wall",
// Silence noisy warnings
"-Wno-deprecated",
"-Wno-format",
"-Wno-gnu-designator",
"-Wno-macro-redefined",
"-Wno-missing-field-initializers",
"-Wno-parentheses-equality",
"-Wno-pointer-arith",
"-Wno-sign-compare",
"-Wno-unused-parameter",
"-Wno-shift-negative-value",
"-Wno-switch",
"-Wno-absolute-value",
"-Wno-non-literal-null-conversion",
"-Wno-unused-value",
"-Wno-unused-variable",
"-Wno-unused-parameter",
"-Wno-empty-body",
"-Wno-literal-conversion",
"-Werror",
],
local_include_dirs: ["android/include"],
gtest: false,
no_named_install_directory: true,
test_per_src: true,
}
// binderfs test
cc_test {
name: "kselftest_binderfs_tests",
relative_install_path: "linux-kselftest/filesystems/binderfs",
srcs: ["tools/testing/selftests/filesystems/binderfs/binderfs_test.c"],
defaults: ["kselftest_defaults"],
}
// breakpoints test
cc_test {
name: "kselftest_breakpoints_tests",
relative_install_path: "linux-kselftest/breakpoints",
srcs: [
"tools/testing/selftests/breakpoints/step_after_suspend_test.c",
],
defaults: ["kselftest_defaults"],
arch: {
arm: {
enabled: false,
},
arm64: {
srcs: [
"tools/testing/selftests/breakpoints/breakpoint_test_arm64.c",
],
},
x86: {
srcs: [
"tools/testing/selftests/breakpoints/breakpoint_test.c",
],
},
},
}
// capabilities test
cc_test {
name: "kselftest_capabilities_test",
relative_install_path: "linux-kselftest/capabilities",
srcs: [
"tools/testing/selftests/capabilities/test_execve.c",
"tools/testing/selftests/capabilities/validate_cap.c",
],
defaults: ["kselftest_defaults"],
static_libs: ["libcap-ng"],
}
// Cpu-hotplug test
sh_test {
name: "kselftest_cpu-hotplug_cpu-on-off-test",
sub_dir: "linux-kselftest/cpu-hotplug",
src: "tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Efivarfs test
cc_test {
name: "kselftest_efivarfs_tests",
relative_install_path: "linux-kselftest/efivarfs",
srcs: [
"tools/testing/selftests/efivarfs/open-unlink.c",
"tools/testing/selftests/efivarfs/create-read.c",
],
defaults: ["kselftest_defaults"],
}
sh_test {
name: "kselftest_efivarfs_efivarfs",
sub_dir: "linux-kselftest/efivarfs",
src: "tools/testing/selftests/efivarfs/efivarfs.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Exec test
cc_test {
name: "kselftest_exec_test",
relative_install_path: "linux-kselftest/exec",
srcs: [
"tools/testing/selftests/exec/execveat.c",
],
defaults: ["kselftest_defaults"],
}
sh_test {
name: "kselftest_exec_execveat.sh",
sub_dir: "linux-kselftest/exec",
src: "tools/testing/selftests/exec/execveat.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Firmware test
sh_test {
name: "kselftest_firmware_fw_fallback",
sub_dir: "linux-kselftest/firmware",
src: "tools/testing/selftests/firmware/fw_fallback.sh",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_firmware_fw_filesystem",
sub_dir: "linux-kselftest/firmware",
src: "tools/testing/selftests/firmware/fw_filesystem.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Ftrace test
sh_test {
name: "kselftest_ftrace_ftracetest",
sub_dir: "linux-kselftest/ftrace",
src: "tools/testing/selftests/ftrace/ftracetest",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_functions",
sub_dir: "linux-kselftest/ftrace/test.d",
src: "tools/testing/selftests/ftrace/test.d/functions",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_00basic_basic2",
sub_dir: "linux-kselftest/ftrace/test.d/00basic",
src: "tools/testing/selftests/ftrace/test.d/00basic/basic2.tc",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_00basic_basic4",
sub_dir: "linux-kselftest/ftrace/test.d/00basic",
src: "tools/testing/selftests/ftrace/test.d/00basic/basic4.tc",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_00basic_basic1",
sub_dir: "linux-kselftest/ftrace/test.d/00basic",
src: "tools/testing/selftests/ftrace/test.d/00basic/basic1.tc",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_00basic_basic3",
sub_dir: "linux-kselftest/ftrace/test.d/00basic",
src: "tools/testing/selftests/ftrace/test.d/00basic/basic3.tc",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_template",
sub_dir: "linux-kselftest/ftrace/test.d",
src: "tools/testing/selftests/ftrace/test.d/template",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_instances_instance",
sub_dir: "linux-kselftest/ftrace/test.d/instances",
src: "tools/testing/selftests/ftrace/test.d/instances/instance.tc",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_ftrace_test.d_instances_instance-event",
sub_dir: "linux-kselftest/ftrace/test.d/instances",
src: "tools/testing/selftests/ftrace/test.d/instances/instance-event.tc",
filename_from_src: true,
compile_multilib: "both",
}
// Futex test
cc_test {
name: "kselftest_futex_tests",
relative_install_path: "linux-kselftest/futex/functional",
srcs: [
"tools/testing/selftests/futex/functional/futex_requeue_pi.c",
"tools/testing/selftests/futex/functional/futex_requeue_pi_mismatched_ops.c",
"tools/testing/selftests/futex/functional/futex_requeue_pi_signal_restart.c",
"tools/testing/selftests/futex/functional/futex_wait_private_mapped_file.c",
"tools/testing/selftests/futex/functional/futex_wait_timeout.c",
"tools/testing/selftests/futex/functional/futex_wait_uninitialized_heap.c",
"tools/testing/selftests/futex/functional/futex_wait_wouldblock.c",
],
local_include_dirs: [
"tools/testing/selftests/futex/include",
"tools/testing/selftests",
],
cflags: [
"-D_GNU_SOURCE",
"-pthread",
],
defaults: ["kselftest_defaults"],
}
sh_test {
name: "kselftest_futex_functional_run.sh",
sub_dir: "linux-kselftest/futex/functional",
src: "tools/testing/selftests/futex/functional/run.sh",
filename_from_src: true,
compile_multilib: "both",
}
// intel_pstate test
cc_test {
name: "kselftest_intel_pstate_tests",
relative_install_path: "linux-kselftest/intel_pstate",
srcs: [
"tools/testing/selftests/intel_pstate/aperf.c",
"tools/testing/selftests/intel_pstate/msr.c",
],
cflags: [
"-D_GNU_SOURCE",
],
defaults: ["kselftest_defaults"],
// TODO: test_data: intel_pstate/run.sh
}
sh_test {
name: "kselftest_intel_pstate_run.sh",
sub_dir: "linux-kselftest/intel_pstate",
src: "tools/testing/selftests/intel_pstate/run.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Kcmp test
cc_test {
name: "kselftest_kcmp_tests",
relative_install_path: "linux-kselftest/kcmp",
srcs: ["tools/testing/selftests/kcmp/kcmp_test.c"],
defaults: ["kselftest_defaults"],
}
// Lib test
sh_test {
name: "kselftest_lib_printf",
sub_dir: "linux-kselftest/lib",
src: "tools/testing/selftests/lib/printf.sh",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_lib_bitmap",
sub_dir: "linux-kselftest/lib",
src: "tools/testing/selftests/lib/bitmap.sh",
filename_from_src: true,
compile_multilib: "both",
}
// media_tests test
cc_test {
name: "kselftest_media_tests",
relative_install_path: "linux-kselftest/media_tests",
srcs: [
"tools/testing/selftests/media_tests/media_device_test.c",
"tools/testing/selftests/media_tests/media_device_open.c",
"tools/testing/selftests/media_tests/video_device_test.c",
],
defaults: ["kselftest_defaults"],
}
// Membarrier test
cc_test {
name: "kselftest_membarrier_tests",
relative_install_path: "linux-kselftest/membarrier",
srcs: [
"tools/testing/selftests/membarrier/membarrier_test_multi_thread.c",
"tools/testing/selftests/membarrier/membarrier_test_single_thread.c",
],
defaults: ["kselftest_defaults"],
}
// Memory-hotplug test
sh_test {
name: "kselftest_memory-hotplug_mem-on-off-test",
sub_dir: "linux-kselftest/memory-hotplug",
src: "tools/testing/selftests/memory-hotplug/mem-on-off-test.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Mount test
cc_test {
name: "kselftest_mount_tests",
relative_install_path: "linux-kselftest/mount",
srcs: ["tools/testing/selftests/mount/unprivileged-remount-test.c"],
defaults: ["kselftest_defaults"],
}
// Net test
cc_test {
name: "kselftest_net_tests",
relative_install_path: "linux-kselftest/net",
srcs: [
"tools/testing/selftests/net/socket.c",
"tools/testing/selftests/net/psock_fanout.c",
"tools/testing/selftests/net/psock_tpacket.c",
"tools/testing/selftests/net/reuseport_dualstack.c",
"tools/testing/selftests/net/reuseaddr_conflict.c",
],
defaults: ["kselftest_defaults"],
// TODO: test_data: net/test_bpf.sh
}
sh_test {
name: "kselftest_net_test_bpf",
sub_dir: "linux-kselftest/net",
src: "tools/testing/selftests/net/test_bpf.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Pstore test
sh_test {
name: "kselftest_pstore_pstore_tests",
sub_dir: "linux-kselftest/pstore",
src: "tools/testing/selftests/pstore/pstore_tests",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_pstore_pstore_post_reboot_tests",
sub_dir: "linux-kselftest/pstore",
src: "tools/testing/selftests/pstore/pstore_post_reboot_tests",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_pstore_common_tests",
sub_dir: "linux-kselftest/pstore",
src: "tools/testing/selftests/pstore/common_tests",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_pstore_pstore_crash_test",
sub_dir: "linux-kselftest/pstore",
src: "tools/testing/selftests/pstore/pstore_crash_test",
filename_from_src: true,
compile_multilib: "both",
}
// Ptrace test
cc_test {
name: "kselftest_ptrace_tests",
relative_install_path: "linux-kselftest/ptrace",
srcs: ["tools/testing/selftests/ptrace/peeksiginfo.c"],
defaults: ["kselftest_defaults"],
}
// rtc test
cc_test {
name: "kselftest_rtc_tests",
relative_install_path: "linux-kselftest/rtc",
srcs: ["tools/testing/selftests/rtc/rtctest.c"],
defaults: ["kselftest_defaults"],
}
// seccomp test
cc_test {
name: "kselftest_seccomp_tests",
relative_install_path: "linux-kselftest/seccomp",
srcs: ["tools/testing/selftests/seccomp/seccomp_bpf.c"],
defaults: ["kselftest_defaults"],
}
// size test
cc_test {
name: "kselftest_size_test",
relative_install_path: "linux-kselftest/size",
srcs: ["tools/testing/selftests/size/get_size.c"],
arch: {
x86_64: {
cflags: ["-mstackrealign"],
},
},
defaults: ["kselftest_defaults"],
nocrt: true,
// coverage runtime calls atexit, which is unavailable with nocrt.
native_coverage: false,
}
// splice test
cc_test {
name: "kselftest_splice_test",
relative_install_path: "linux-kselftest/splice",
srcs: ["tools/testing/selftests/splice/default_file_splice_read.c"],
defaults: ["kselftest_defaults"],
}
sh_test {
name: "kselftest_splice_default_file_splice_read.sh",
sub_dir: "linux-kselftest/splice",
src: "tools/testing/selftests/splice/default_file_splice_read.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Static keys test
sh_test {
name: "kselftest_static_keys_test_static_keys",
sub_dir: "linux-kselftest/static_keys",
src: "tools/testing/selftests/static_keys/test_static_keys.sh",
filename_from_src: true,
compile_multilib: "both",
}
// Timer test
cc_test {
name: "kselftest_timer_tests",
relative_install_path: "linux-kselftest/timers",
srcs: [
"tools/testing/selftests/timers/adjtick.c",
"tools/testing/selftests/timers/alarmtimer-suspend.c",
"tools/testing/selftests/timers/change_skew.c",
"tools/testing/selftests/timers/clocksource-switch.c",
"tools/testing/selftests/timers/freq-step.c",
"tools/testing/selftests/timers/inconsistency-check.c",
"tools/testing/selftests/timers/leap-a-day.c",
"tools/testing/selftests/timers/leapcrash.c",
"tools/testing/selftests/timers/nanosleep.c",
"tools/testing/selftests/timers/nsleep-lat.c",
"tools/testing/selftests/timers/posix_timers.c",
"tools/testing/selftests/timers/raw_skew.c",
"tools/testing/selftests/timers/set-2038.c",
"tools/testing/selftests/timers/set-tai.c",
"tools/testing/selftests/timers/set-timer-lat.c",
"tools/testing/selftests/timers/set-tz.c",
"tools/testing/selftests/timers/skew_consistency.c",
"tools/testing/selftests/timers/threadtest.c",
"tools/testing/selftests/timers/valid-adjtimex.c",
],
cflags: [
"-O3",
"-DKTEST",
],
defaults: ["kselftest_defaults"],
}
// User test
sh_test {
name: "kselftest_user_test_user_copy",
sub_dir: "linux-kselftest/user",
src: "tools/testing/selftests/user/test_user_copy.sh",
filename_from_src: true,
compile_multilib: "both",
}
// vdso test
cc_test {
name: "kselftest_vdso_test",
relative_install_path: "linux-kselftest/vDSO",
srcs: [
"tools/testing/selftests/vDSO/parse_vdso.c",
"tools/testing/selftests/vDSO/vdso_test.c",
],
defaults: ["kselftest_defaults"],
test_per_src: false,
}
// Vm test
cc_test {
name: "kselftest_vm_tests",
relative_install_path: "linux-kselftest/vm",
srcs: [
"tools/testing/selftests/vm/compaction_test.c",
"tools/testing/selftests/vm/hugepage-mmap.c",
"tools/testing/selftests/vm/hugepage-shm.c",
"tools/testing/selftests/vm/map_hugetlb.c",
"tools/testing/selftests/vm/mlock-random-test.c",
"tools/testing/selftests/vm/mlock2-tests.c",
"tools/testing/selftests/vm/on-fault-limit.c",
"tools/testing/selftests/vm/userfaultfd.c",
"tools/testing/selftests/vm/thuge-gen.c",
"tools/testing/selftests/vm/transhuge-stress.c",
],
defaults: ["kselftest_defaults"],
static_libs: ["libcap"],
}
cc_test {
name: "kselftest_vm64_tests",
relative_install_path: "linux-kselftest/vm",
srcs: [
"tools/testing/selftests/vm/virtual_address_range.c",
],
defaults: ["kselftest_defaults"],
enabled: false,
arch: {
arm64: {
enabled: true,
cflags: ["-D__aarch64__"],
},
},
}
sh_test {
name: "kselftest_vm_run_vmtests",
sub_dir: "linux-kselftest/vm",
src: "tools/testing/selftests/vm/run_vmtests",
filename_from_src: true,
compile_multilib: "both",
}
// x86 tests
cc_test {
name: "kselftest_x86_tests",
relative_install_path: "linux-kselftest/x86",
srcs: [
"tools/testing/selftests/x86/single_step_syscall.c",
"tools/testing/selftests/x86/syscall_nt.c",
"tools/testing/selftests/x86/test_mremap_vdso.c",
"tools/testing/selftests/x86/ldt_gdt.c",
"tools/testing/selftests/x86/syscall_arg_fault.c",
],
arch: {
arm: {
enabled: false,
},
arm64: {
enabled: false,
},
x86_64: {
enabled: true,
static_libs: [
"libdl",
],
},
x86: {
srcs: [
//"tools/testing/selftests/x86/entry_from_vm86.c",
"tools/testing/selftests/x86/unwind_vdso.c",
"tools/testing/selftests/x86/test_FCMOV.c",
"tools/testing/selftests/x86/test_FCOMI.c",
"tools/testing/selftests/x86/test_FISTTP.c",
"tools/testing/selftests/x86/vdso_restorer.c",
],
static_libs: [
"libdl",
],
},
},
cflags: [
"-O2",
"-pthread",
],
c_std: "gnu99",
static_executable: true,
defaults: ["kselftest_defaults"],
}
cc_test {
name: "kselftest_x86_check_initial_reg_state",
stem: "check_initial_reg_state",
relative_install_path: "linux-kselftest/x86",
srcs: [
"tools/testing/selftests/x86/check_initial_reg_state.c",
],
arch: {
arm: {
enabled: false,
},
arm64: {
enabled: false,
},
x86: {
enabled: true,
},
x86_64: {
enabled: true,
},
},
cflags: [
"-O2",
"-pthread",
],
c_std: "gnu99",
// check_initial_reg_state is special: it needs a custom entry, and it needs to be static so
// that its interpreter doesn't destroy its initial state.
ldflags: ["-Wl,-ereal_start"],
static_executable: true,
test_per_src: false,
defaults: ["kselftest_defaults"],
}
cc_test {
name: "kselftest_x86_ptrace_syscall",
stem: "ptrace_syscall",
relative_install_path: "linux-kselftest/x86",
srcs: [
"tools/testing/selftests/x86/ptrace_syscall.c",
],
cflags: [
"-O2",
"-pthread",
],
c_std: "gnu99",
test_per_src: false,
defaults: ["kselftest_defaults"],
enabled: false,
arch: {
x86: {
enabled: true,
srcs: [
"tools/testing/selftests/x86/raw_syscall_helper_32.S",
],
},
x86_64: {
enabled: true,
},
},
}
cc_test {
name: "kselftest_x86_test_sysret_ss_attrs",
stem: "sysret_ss_attrs",
relative_install_path: "linux-kselftest/x86",
srcs: [
"tools/testing/selftests/x86/sysret_ss_attrs.c",
],
cflags: [
"-O2",
"-pthread",
],
c_std: "gnu99",
static_executable: true,
test_per_src: false,
defaults: ["kselftest_defaults"],
enabled: false,
arch: {
x86: {
enabled: true,
srcs: [
"tools/testing/selftests/x86/thunks_32.S",
],
},
x86_64: {
enabled: true,
srcs: [
"tools/testing/selftests/x86/thunks.S",
],
},
},
}
cc_test {
name: "kselftest_x86_test_syscall_vdso",
stem: "test_syscall_vdso",
relative_install_path: "linux-kselftest/x86",
srcs: [
"tools/testing/selftests/x86/test_syscall_vdso.c",
"tools/testing/selftests/x86/thunks_32.S",
],
cflags: [
"-O2",
"-pthread",
],
c_std: "gnu99",
static_executable: true,
test_per_src: false,
defaults: ["kselftest_defaults"],
enabled: false,
arch: {
x86: {
enabled: true,
},
},
}
// zram tests
sh_test {
name: "kselftest_zram_zram.sh",
sub_dir: "linux-kselftest/zram",
src: "tools/testing/selftests/zram/zram.sh",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_zram_zram01.sh",
sub_dir: "linux-kselftest/zram",
src: "tools/testing/selftests/zram/zram01.sh",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_zram_zram02.sh",
sub_dir: "linux-kselftest/zram",
src: "tools/testing/selftests/zram/zram02.sh",
filename_from_src: true,
compile_multilib: "both",
}
sh_test {
name: "kselftest_zram_zram_lib.sh",
sub_dir: "linux-kselftest/zram",
src: "tools/testing/selftests/zram/zram_lib.sh",
filename_from_src: true,
compile_multilib: "both",
}