1// 2// Copyright (C) 2016 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15// 16 17cc_defaults { 18 name: "kselftest_defaults", 19 cflags: [ 20 // Hacks for bionic compatibility 21 "-include bionic-compat.h", 22 23 "-Wall", 24 25 // Silence noisy warnings 26 "-Wno-deprecated", 27 "-Wno-format", 28 "-Wno-gnu-designator", 29 "-Wno-macro-redefined", 30 "-Wno-missing-field-initializers", 31 "-Wno-parentheses-equality", 32 "-Wno-pointer-arith", 33 "-Wno-sign-compare", 34 "-Wno-unused-parameter", 35 "-Wno-shift-negative-value", 36 "-Wno-switch", 37 "-Wno-absolute-value", 38 "-Wno-non-literal-null-conversion", 39 "-Wno-unused-value", 40 "-Wno-unused-variable", 41 "-Wno-unused-parameter", 42 "-Wno-empty-body", 43 "-Wno-literal-conversion", 44 "-Werror", 45 ], 46 47 local_include_dirs: ["android/include"], 48 gtest: false, 49 no_named_install_directory: true, 50 51 test_per_src: true, 52 arch: { 53 mips: { 54 enabled: false, 55 }, 56 mips64: { 57 enabled: false, 58 }, 59 }, 60} 61 62// breakpoints test 63cc_test { 64 name: "kselftest_breakpoints_tests", 65 relative_install_path: "linux-kselftest/breakpoints", 66 srcs: [ 67 "tools/testing/selftests/breakpoints/step_after_suspend_test.c", 68 ], 69 defaults: ["kselftest_defaults"], 70 arch: { 71 arm: { 72 enabled: false, 73 }, 74 arm64: { 75 srcs: [ 76 "tools/testing/selftests/breakpoints/breakpoint_test_arm64.c", 77 ], 78 }, 79 x86: { 80 srcs: [ 81 "tools/testing/selftests/breakpoints/breakpoint_test.c", 82 ], 83 }, 84 }, 85} 86 87// capabilities test 88cc_test { 89 name: "kselftest_capabilities_test", 90 relative_install_path: "linux-kselftest/capabilities", 91 srcs: [ 92 "tools/testing/selftests/capabilities/test_execve.c", 93 "tools/testing/selftests/capabilities/validate_cap.c", 94 ], 95 defaults: ["kselftest_defaults"], 96 static_libs: ["libcap-ng"], 97} 98 99// Cpu-hotplug test 100sh_test { 101 name: "kselftest_cpu-hotplug_cpu-on-off-test", 102 sub_dir: "linux-kselftest/cpu-hotplug", 103 src: "tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh", 104 filename_from_src: true, 105 compile_multilib: "both", 106} 107 108// Efivarfs test 109cc_test { 110 name: "kselftest_efivarfs_tests", 111 relative_install_path: "linux-kselftest/efivarfs", 112 srcs: [ 113 "tools/testing/selftests/efivarfs/open-unlink.c", 114 "tools/testing/selftests/efivarfs/create-read.c", 115 ], 116 defaults: ["kselftest_defaults"], 117} 118 119sh_test { 120 name: "kselftest_efivarfs_efivarfs", 121 sub_dir: "linux-kselftest/efivarfs", 122 src: "tools/testing/selftests/efivarfs/efivarfs.sh", 123 filename_from_src: true, 124 compile_multilib: "both", 125} 126 127// Exec test 128cc_test { 129 name: "kselftest_exec_test", 130 relative_install_path: "linux-kselftest/exec", 131 srcs: [ 132 "tools/testing/selftests/exec/execveat.c", 133 ], 134 defaults: ["kselftest_defaults"], 135} 136 137sh_test { 138 name: "kselftest_exec_execveat.sh", 139 sub_dir: "linux-kselftest/exec", 140 src: "tools/testing/selftests/exec/execveat.sh", 141 filename_from_src: true, 142 compile_multilib: "both", 143} 144 145// Firmware test 146sh_test { 147 name: "kselftest_firmware_fw_fallback", 148 sub_dir: "linux-kselftest/firmware", 149 src: "tools/testing/selftests/firmware/fw_fallback.sh", 150 filename_from_src: true, 151 compile_multilib: "both", 152} 153 154sh_test { 155 name: "kselftest_firmware_fw_filesystem", 156 sub_dir: "linux-kselftest/firmware", 157 src: "tools/testing/selftests/firmware/fw_filesystem.sh", 158 filename_from_src: true, 159 compile_multilib: "both", 160} 161 162// Ftrace test 163sh_test { 164 name: "kselftest_ftrace_ftracetest", 165 sub_dir: "linux-kselftest/ftrace", 166 src: "tools/testing/selftests/ftrace/ftracetest", 167 filename_from_src: true, 168 compile_multilib: "both", 169} 170 171sh_test { 172 name: "kselftest_ftrace_test.d_functions", 173 sub_dir: "linux-kselftest/ftrace/test.d", 174 src: "tools/testing/selftests/ftrace/test.d/functions", 175 filename_from_src: true, 176 compile_multilib: "both", 177} 178 179sh_test { 180 name: "kselftest_ftrace_test.d_00basic_basic2", 181 sub_dir: "linux-kselftest/ftrace/test.d/00basic", 182 src: "tools/testing/selftests/ftrace/test.d/00basic/basic2.tc", 183 filename_from_src: true, 184 compile_multilib: "both", 185} 186 187sh_test { 188 name: "kselftest_ftrace_test.d_00basic_basic4", 189 sub_dir: "linux-kselftest/ftrace/test.d/00basic", 190 src: "tools/testing/selftests/ftrace/test.d/00basic/basic4.tc", 191 filename_from_src: true, 192 compile_multilib: "both", 193} 194 195sh_test { 196 name: "kselftest_ftrace_test.d_00basic_basic1", 197 sub_dir: "linux-kselftest/ftrace/test.d/00basic", 198 src: "tools/testing/selftests/ftrace/test.d/00basic/basic1.tc", 199 filename_from_src: true, 200 compile_multilib: "both", 201} 202 203sh_test { 204 name: "kselftest_ftrace_test.d_00basic_basic3", 205 sub_dir: "linux-kselftest/ftrace/test.d/00basic", 206 src: "tools/testing/selftests/ftrace/test.d/00basic/basic3.tc", 207 filename_from_src: true, 208 compile_multilib: "both", 209} 210 211sh_test { 212 name: "kselftest_ftrace_test.d_template", 213 sub_dir: "linux-kselftest/ftrace/test.d", 214 src: "tools/testing/selftests/ftrace/test.d/template", 215 filename_from_src: true, 216 compile_multilib: "both", 217} 218 219sh_test { 220 name: "kselftest_ftrace_test.d_instances_instance", 221 sub_dir: "linux-kselftest/ftrace/test.d/instances", 222 src: "tools/testing/selftests/ftrace/test.d/instances/instance.tc", 223 filename_from_src: true, 224 compile_multilib: "both", 225} 226 227sh_test { 228 name: "kselftest_ftrace_test.d_instances_instance-event", 229 sub_dir: "linux-kselftest/ftrace/test.d/instances", 230 src: "tools/testing/selftests/ftrace/test.d/instances/instance-event.tc", 231 filename_from_src: true, 232 compile_multilib: "both", 233} 234 235// Futex test 236cc_test { 237 name: "kselftest_futex_tests", 238 relative_install_path: "linux-kselftest/futex/functional", 239 srcs: [ 240 "tools/testing/selftests/futex/functional/futex_requeue_pi.c", 241 "tools/testing/selftests/futex/functional/futex_requeue_pi_mismatched_ops.c", 242 "tools/testing/selftests/futex/functional/futex_requeue_pi_signal_restart.c", 243 "tools/testing/selftests/futex/functional/futex_wait_private_mapped_file.c", 244 "tools/testing/selftests/futex/functional/futex_wait_timeout.c", 245 "tools/testing/selftests/futex/functional/futex_wait_uninitialized_heap.c", 246 "tools/testing/selftests/futex/functional/futex_wait_wouldblock.c", 247 ], 248 local_include_dirs: [ 249 "tools/testing/selftests/futex/include", 250 "tools/testing/selftests", 251 ], 252 cflags: [ 253 "-D_GNU_SOURCE", 254 "-pthread", 255 ], 256 defaults: ["kselftest_defaults"], 257} 258 259sh_test { 260 name: "kselftest_futex_functional_run.sh", 261 sub_dir: "linux-kselftest/futex/functional", 262 src: "tools/testing/selftests/futex/functional/run.sh", 263 filename_from_src: true, 264 compile_multilib: "both", 265} 266 267// intel_pstate test 268cc_test { 269 name: "kselftest_intel_pstate_tests", 270 relative_install_path: "linux-kselftest/intel_pstate", 271 srcs: [ 272 "tools/testing/selftests/intel_pstate/aperf.c", 273 "tools/testing/selftests/intel_pstate/msr.c", 274 ], 275 cflags: [ 276 "-D_GNU_SOURCE", 277 ], 278 defaults: ["kselftest_defaults"], 279 // TODO: test_data: intel_pstate/run.sh 280} 281 282sh_test { 283 name: "kselftest_intel_pstate_run.sh", 284 sub_dir: "linux-kselftest/intel_pstate", 285 src: "tools/testing/selftests/intel_pstate/run.sh", 286 filename_from_src: true, 287 compile_multilib: "both", 288} 289 290// Kcmp test 291cc_test { 292 name: "kselftest_kcmp_tests", 293 relative_install_path: "linux-kselftest/kcmp", 294 srcs: ["tools/testing/selftests/kcmp/kcmp_test.c"], 295 defaults: ["kselftest_defaults"], 296} 297 298// Lib test 299sh_test { 300 name: "kselftest_lib_printf", 301 sub_dir: "linux-kselftest/lib", 302 src: "tools/testing/selftests/lib/printf.sh", 303 filename_from_src: true, 304 compile_multilib: "both", 305} 306 307sh_test { 308 name: "kselftest_lib_bitmap", 309 sub_dir: "linux-kselftest/lib", 310 src: "tools/testing/selftests/lib/bitmap.sh", 311 filename_from_src: true, 312 compile_multilib: "both", 313} 314 315// media_tests test 316cc_test { 317 name: "kselftest_media_tests", 318 relative_install_path: "linux-kselftest/media_tests", 319 srcs: [ 320 "tools/testing/selftests/media_tests/media_device_test.c", 321 "tools/testing/selftests/media_tests/media_device_open.c", 322 "tools/testing/selftests/media_tests/video_device_test.c", 323 ], 324 defaults: ["kselftest_defaults"], 325} 326 327// Membarrier test 328cc_test { 329 name: "kselftest_membarrier_tests", 330 relative_install_path: "linux-kselftest/membarrier", 331 srcs: [ 332 "tools/testing/selftests/membarrier/membarrier_test_multi_thread.c", 333 "tools/testing/selftests/membarrier/membarrier_test_single_thread.c", 334 ], 335 defaults: ["kselftest_defaults"], 336} 337 338// Memory-hotplug test 339sh_test { 340 name: "kselftest_memory-hotplug_mem-on-off-test", 341 sub_dir: "linux-kselftest/memory-hotplug", 342 src: "tools/testing/selftests/memory-hotplug/mem-on-off-test.sh", 343 filename_from_src: true, 344 compile_multilib: "both", 345} 346 347// Mount test 348cc_test { 349 name: "kselftest_mount_tests", 350 relative_install_path: "linux-kselftest/mount", 351 srcs: ["tools/testing/selftests/mount/unprivileged-remount-test.c"], 352 defaults: ["kselftest_defaults"], 353} 354 355// Net test 356cc_test { 357 name: "kselftest_net_tests", 358 relative_install_path: "linux-kselftest/net", 359 srcs: [ 360 "tools/testing/selftests/net/socket.c", 361 "tools/testing/selftests/net/psock_fanout.c", 362 "tools/testing/selftests/net/psock_tpacket.c", 363 "tools/testing/selftests/net/reuseport_dualstack.c", 364 "tools/testing/selftests/net/reuseaddr_conflict.c", 365 ], 366 defaults: ["kselftest_defaults"], 367 // TODO: test_data: net/test_bpf.sh 368} 369 370sh_test { 371 name: "kselftest_net_test_bpf", 372 sub_dir: "linux-kselftest/net", 373 src: "tools/testing/selftests/net/test_bpf.sh", 374 filename_from_src: true, 375 compile_multilib: "both", 376} 377 378// Pstore test 379sh_test { 380 name: "kselftest_pstore_pstore_tests", 381 sub_dir: "linux-kselftest/pstore", 382 src: "tools/testing/selftests/pstore/pstore_tests", 383 filename_from_src: true, 384 compile_multilib: "both", 385} 386 387sh_test { 388 name: "kselftest_pstore_pstore_post_reboot_tests", 389 sub_dir: "linux-kselftest/pstore", 390 src: "tools/testing/selftests/pstore/pstore_post_reboot_tests", 391 filename_from_src: true, 392 compile_multilib: "both", 393} 394 395sh_test { 396 name: "kselftest_pstore_common_tests", 397 sub_dir: "linux-kselftest/pstore", 398 src: "tools/testing/selftests/pstore/common_tests", 399 filename_from_src: true, 400 compile_multilib: "both", 401} 402 403sh_test { 404 name: "kselftest_pstore_pstore_crash_test", 405 sub_dir: "linux-kselftest/pstore", 406 src: "tools/testing/selftests/pstore/pstore_crash_test", 407 filename_from_src: true, 408 compile_multilib: "both", 409} 410 411// Ptrace test 412cc_test { 413 name: "kselftest_ptrace_tests", 414 relative_install_path: "linux-kselftest/ptrace", 415 srcs: ["tools/testing/selftests/ptrace/peeksiginfo.c"], 416 defaults: ["kselftest_defaults"], 417} 418 419// rtc test 420cc_test { 421 name: "kselftest_rtc_tests", 422 relative_install_path: "linux-kselftest/rtc", 423 srcs: ["tools/testing/selftests/rtc/rtctest.c"], 424 defaults: ["kselftest_defaults"], 425} 426 427// seccomp test 428cc_test { 429 name: "kselftest_seccomp_tests", 430 relative_install_path: "linux-kselftest/seccomp", 431 srcs: ["tools/testing/selftests/seccomp/seccomp_bpf.c"], 432 defaults: ["kselftest_defaults"], 433} 434 435// size test 436cc_test { 437 name: "kselftest_size_test", 438 relative_install_path: "linux-kselftest/size", 439 srcs: ["tools/testing/selftests/size/get_size.c"], 440 defaults: ["kselftest_defaults"], 441 nocrt: true, 442 // coverage runtime calls atexit, which is unavailable with nocrt. 443 native_coverage: false, 444} 445 446// splice test 447cc_test { 448 name: "kselftest_splice_test", 449 relative_install_path: "linux-kselftest/splice", 450 srcs: ["tools/testing/selftests/splice/default_file_splice_read.c"], 451 defaults: ["kselftest_defaults"], 452} 453 454sh_test { 455 name: "kselftest_splice_default_file_splice_read.sh", 456 sub_dir: "linux-kselftest/splice", 457 src: "tools/testing/selftests/splice/default_file_splice_read.sh", 458 filename_from_src: true, 459 compile_multilib: "both", 460} 461 462// Static keys test 463sh_test { 464 name: "kselftest_static_keys_test_static_keys", 465 sub_dir: "linux-kselftest/static_keys", 466 src: "tools/testing/selftests/static_keys/test_static_keys.sh", 467 filename_from_src: true, 468 compile_multilib: "both", 469} 470 471// Timer test 472cc_test { 473 name: "kselftest_timer_tests", 474 relative_install_path: "linux-kselftest/timers", 475 srcs: [ 476 "tools/testing/selftests/timers/adjtick.c", 477 "tools/testing/selftests/timers/alarmtimer-suspend.c", 478 "tools/testing/selftests/timers/change_skew.c", 479 "tools/testing/selftests/timers/clocksource-switch.c", 480 "tools/testing/selftests/timers/freq-step.c", 481 "tools/testing/selftests/timers/inconsistency-check.c", 482 "tools/testing/selftests/timers/leap-a-day.c", 483 "tools/testing/selftests/timers/leapcrash.c", 484 "tools/testing/selftests/timers/nanosleep.c", 485 "tools/testing/selftests/timers/nsleep-lat.c", 486 "tools/testing/selftests/timers/posix_timers.c", 487 "tools/testing/selftests/timers/raw_skew.c", 488 "tools/testing/selftests/timers/set-2038.c", 489 "tools/testing/selftests/timers/set-tai.c", 490 "tools/testing/selftests/timers/set-timer-lat.c", 491 "tools/testing/selftests/timers/set-tz.c", 492 "tools/testing/selftests/timers/skew_consistency.c", 493 "tools/testing/selftests/timers/threadtest.c", 494 "tools/testing/selftests/timers/valid-adjtimex.c", 495 ], 496 cflags: [ 497 "-O3", 498 "-DKTEST", 499 ], 500 defaults: ["kselftest_defaults"], 501} 502 503// User test 504sh_test { 505 name: "kselftest_user_test_user_copy", 506 sub_dir: "linux-kselftest/user", 507 src: "tools/testing/selftests/user/test_user_copy.sh", 508 filename_from_src: true, 509 compile_multilib: "both", 510} 511 512// vdso test 513cc_test { 514 name: "kselftest_vdso_test", 515 relative_install_path: "linux-kselftest/vDSO", 516 srcs: [ 517 "tools/testing/selftests/vDSO/parse_vdso.c", 518 "tools/testing/selftests/vDSO/vdso_test.c", 519 ], 520 defaults: ["kselftest_defaults"], 521 test_per_src: false, 522} 523 524// Vm test 525cc_test { 526 name: "kselftest_vm_tests", 527 relative_install_path: "linux-kselftest/vm", 528 srcs: [ 529 "tools/testing/selftests/vm/compaction_test.c", 530 "tools/testing/selftests/vm/hugepage-mmap.c", 531 "tools/testing/selftests/vm/hugepage-shm.c", 532 "tools/testing/selftests/vm/map_hugetlb.c", 533 "tools/testing/selftests/vm/mlock-random-test.c", 534 "tools/testing/selftests/vm/mlock2-tests.c", 535 "tools/testing/selftests/vm/on-fault-limit.c", 536 "tools/testing/selftests/vm/thuge-gen.c", 537 "tools/testing/selftests/vm/transhuge-stress.c", 538 ], 539 defaults: ["kselftest_defaults"], 540 static_libs: ["libcap"], 541} 542 543cc_test { 544 name: "kselftest_vm64_tests", 545 relative_install_path: "linux-kselftest/vm", 546 srcs: [ 547 "tools/testing/selftests/vm/virtual_address_range.c", 548 ], 549 defaults: ["kselftest_defaults"], 550 enabled: false, 551 arch: { 552 arm64: { 553 enabled: true, 554 cflags: ["-D__aarch64__"], 555 }, 556 }, 557} 558 559sh_test { 560 name: "kselftest_vm_run_vmtests", 561 sub_dir: "linux-kselftest/vm", 562 src: "tools/testing/selftests/vm/run_vmtests", 563 filename_from_src: true, 564 compile_multilib: "both", 565} 566 567// x86 tests 568cc_test { 569 name: "kselftest_x86_tests", 570 relative_install_path: "linux-kselftest/x86", 571 srcs: [ 572 "tools/testing/selftests/x86/single_step_syscall.c", 573 "tools/testing/selftests/x86/syscall_nt.c", 574 "tools/testing/selftests/x86/test_mremap_vdso.c", 575 "tools/testing/selftests/x86/ldt_gdt.c", 576 ], 577 arch: { 578 arm: { 579 enabled: false, 580 }, 581 arm64: { 582 enabled: false, 583 }, 584 x86: { 585 srcs: [ 586 "tools/testing/selftests/x86/sysret_ss_attrs.c", 587 //"tools/testing/selftests/x86/entry_from_vm86.c", 588 "tools/testing/selftests/x86/syscall_arg_fault.c", 589 "tools/testing/selftests/x86/unwind_vdso.c", 590 "tools/testing/selftests/x86/test_FCMOV.c", 591 "tools/testing/selftests/x86/test_FCOMI.c", 592 "tools/testing/selftests/x86/test_FISTTP.c", 593 "tools/testing/selftests/x86/vdso_restorer.c", 594 ], 595 static_libs: [ 596 "libdl", 597 ], 598 }, 599 }, 600 cflags: [ 601 "-O2", 602 "-pthread", 603 ], 604 c_std: "gnu99", 605 static_executable: true, 606 defaults: ["kselftest_defaults"], 607} 608 609cc_test { 610 name: "kselftest_x86_check_initial_reg_state", 611 stem: "check_initial_reg_state", 612 relative_install_path: "linux-kselftest/x86", 613 srcs: [ 614 "tools/testing/selftests/x86/check_initial_reg_state.c", 615 ], 616 arch: { 617 arm: { 618 enabled: false, 619 }, 620 arm64: { 621 enabled: false, 622 }, 623 }, 624 cflags: [ 625 "-O2", 626 "-pthread", 627 ], 628 c_std: "gnu99", 629 // check_initial_reg_state is special: it needs a custom entry, and it needs to be static so 630 // that its interpreter doesn't destroy its initial state. 631 ldflags: ["-Wl,-ereal_start"], 632 static_executable: true, 633 test_per_src: false, 634 defaults: ["kselftest_defaults"], 635} 636 637cc_test { 638 name: "kselftest_x86_ptrace_syscall", 639 stem: "ptrace_syscall", 640 relative_install_path: "linux-kselftest/x86", 641 srcs: [ 642 "tools/testing/selftests/x86/ptrace_syscall.c", 643 "tools/testing/selftests/x86/raw_syscall_helper_32.S", 644 ], 645 cflags: [ 646 "-O2", 647 "-pthread", 648 ], 649 c_std: "gnu99", 650 test_per_src: false, 651 defaults: ["kselftest_defaults"], 652 enabled: false, 653 arch: { 654 x86: { 655 enabled: true, 656 }, 657 }, 658} 659 660cc_test { 661 name: "kselftest_x86_test_syscall_vdso", 662 stem: "test_syscall_vdso", 663 relative_install_path: "linux-kselftest/x86", 664 srcs: [ 665 "tools/testing/selftests/x86/test_syscall_vdso.c", 666 "tools/testing/selftests/x86/thunks_32.S", 667 ], 668 cflags: [ 669 "-O2", 670 "-pthread", 671 ], 672 c_std: "gnu99", 673 static_executable: true, 674 test_per_src: false, 675 defaults: ["kselftest_defaults"], 676 enabled: false, 677 arch: { 678 x86: { 679 enabled: true, 680 }, 681 }, 682} 683 684// zram tests 685sh_test { 686 name: "kselftest_zram_zram.sh", 687 sub_dir: "linux-kselftest/zram", 688 src: "tools/testing/selftests/zram/zram.sh", 689 filename_from_src: true, 690 compile_multilib: "both", 691} 692 693sh_test { 694 name: "kselftest_zram_zram01.sh", 695 sub_dir: "linux-kselftest/zram", 696 src: "tools/testing/selftests/zram/zram01.sh", 697 filename_from_src: true, 698 compile_multilib: "both", 699} 700 701sh_test { 702 name: "kselftest_zram_zram02.sh", 703 sub_dir: "linux-kselftest/zram", 704 src: "tools/testing/selftests/zram/zram02.sh", 705 filename_from_src: true, 706 compile_multilib: "both", 707} 708 709sh_test { 710 name: "kselftest_zram_zram_lib.sh", 711 sub_dir: "linux-kselftest/zram", 712 src: "tools/testing/selftests/zram/zram_lib.sh", 713 filename_from_src: true, 714 compile_multilib: "both", 715} 716