From af8ff008f4fe8b8fe62eb72bf966140c85c399bd Mon Sep 17 00:00:00 2001 From: Joe Fradley Date: Wed, 6 Dec 2023 07:40:39 -0800 Subject: [PATCH] ANDROID: Add KUnit test config and packaging rules for tests.zip Include KUnit modules and Tradefed test configuration inside 'tests.zip' alongside the kselftest tests. The zip can built via: $ tools/bazel build //common:tests_zip_arm64 The KUnit tests can be executed on running device with matching kernel via: $ tradefed.sh run commandAndExit template/local_min --template:map \ test=suite/test_mapping_suite --include-filter kunit \ --tests-dir= --primary-abi-only Example zip structure: Archive: bazel-bin/common/x86_64/tests.zip testcases/kunit/kunit.config testcases/kunit/x86_64/drivers/hid/hid-uclogic-test.ko testcases/kunit/x86_64/drivers/iio/test/iio-test-format.ko testcases/selftests/selftests.config testcases/selftests/x86/futex_requeue testcases/selftests/x86/futex_requeue_pi testcases/selftests/x86_64/futex_requeue testcases/selftests/x86_64/futex_requeue_pi Bug: 311187098 Test build (x86_64): https://android-build.corp.google.com/builds/abtd/run/L50600030001493915 Test build (arm64): https://android-build.corp.google.com/builds/abtd/run/L76000030001501406 Change-Id: Ic53a000d9d797fc043a626d8892246d0faae2eab Signed-off-by: Joe Fradley --- BUILD.bazel | 74 ++++++++++++++++++- tools/testing/kunit/android/config_arm64.xml | 32 ++++++++ tools/testing/kunit/android/config_x86_64.xml | 29 ++++++++ 3 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 tools/testing/kunit/android/config_arm64.xml create mode 100644 tools/testing/kunit/android/config_x86_64.xml diff --git a/BUILD.bazel b/BUILD.bazel index d621a062f420..d2372bd48534 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,10 +1,12 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2021 The Android Open Source Project +load("@bazel_skylib//lib:paths.bzl", "paths") load("@bazel_skylib//rules:copy_file.bzl", "copy_file") load("@bazel_skylib//rules:write_file.bzl", "write_file") load( "@rules_pkg//pkg:mappings.bzl", + "pkg_filegroup", "pkg_files", "strip_prefix", ) @@ -778,6 +780,68 @@ copy_to_dist_dir( log = "info", ) +_KUNIT_DIR = "testcases/kunit" + +pkg_files( + name = "kunit_arm64_stripped", + srcs = [":kunit_aarch64"], + prefix = "arm64", + strip_prefix = paths.join( + strip_prefix.from_pkg(), + "kunit_aarch64", + ), + visibility = ["//visibility:private"], +) + +pkg_files( + name = "kunit_arm64_test_config", + srcs = [":tools/testing/kunit/android/config_arm64.xml"], + renames = { + "tools/testing/kunit/android/config_arm64.xml": "kunit.config", + }, + visibility = ["//visibility:private"], +) + +pkg_filegroup( + name = "kunit_tests_arm64_pkg_files", + srcs = [ + ":kunit_arm64_stripped", + ":kunit_arm64_test_config", + ], + prefix = _KUNIT_DIR, + visibility = ["//visibility:private"], +) + +pkg_files( + name = "kunit_x86_64_stripped", + srcs = [":kunit_x86_64"], + prefix = "x86_64", + strip_prefix = paths.join( + strip_prefix.from_pkg(), + "kunit_x86_64", + ), + visibility = ["//visibility:private"], +) + +pkg_files( + name = "kunit_x86_64_test_config", + srcs = [":tools/testing/kunit/android/config_x86_64.xml"], + renames = { + "tools/testing/kunit/android/config_x86_64.xml": "kunit.config", + }, + visibility = ["//visibility:private"], +) + +pkg_filegroup( + name = "kunit_tests_x86_64_pkg_files", + srcs = [ + ":kunit_x86_64_stripped", + ":kunit_x86_64_test_config", + ], + prefix = _KUNIT_DIR, + visibility = ["//visibility:private"], +) + # DDK Headers # All headers. These are the public targets for DDK modules to use. alias( @@ -2341,13 +2405,19 @@ pkg_files( pkg_zip( name = "tests_zip_x86_64", - srcs = [":kselftest_tests_x86_64_pkg_files"], + srcs = [ + ":kselftest_tests_x86_64_pkg_files", + ":kunit_tests_x86_64_pkg_files", + ], out = "x86_64/tests.zip", ) pkg_zip( name = "tests_zip_arm64", - srcs = [":kselftest_tests_arm64_pkg_files"], + srcs = [ + ":kselftest_tests_arm64_pkg_files", + ":kunit_tests_arm64_pkg_files", + ], out = "arm64/tests.zip", ) diff --git a/tools/testing/kunit/android/config_arm64.xml b/tools/testing/kunit/android/config_arm64.xml new file mode 100644 index 000000000000..cdf622a14430 --- /dev/null +++ b/tools/testing/kunit/android/config_arm64.xml @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/tools/testing/kunit/android/config_x86_64.xml b/tools/testing/kunit/android/config_x86_64.xml new file mode 100644 index 000000000000..d5d375feaa54 --- /dev/null +++ b/tools/testing/kunit/android/config_x86_64.xml @@ -0,0 +1,29 @@ + + + + + + + + + +