ANDROID: Update README with CONFIG_KUNT=m approach.

Test: local tests
Bug: 345309292
Change-Id: I609800e40b40609b5d0c2f6a91a4bb9a00bbdb7a
Signed-off-by: Betty Zhou <bettyzhou@google.com>
This commit is contained in:
Betty Zhou
2024-07-30 12:13:30 -07:00
parent d79cc68bae
commit cb6fcbe17c
4 changed files with 61 additions and 17 deletions

View File

@@ -12,14 +12,18 @@ JDK_PATH=prebuilts/jdk/jdk11/linux-x86
print_help() {
echo "Usage: $0 [OPTIONS]"
echo ""
echo "This script builds kernel, launches cvd and runs selftests on it."
echo "This script runs Selftests on an Android device."
echo "Please run the script with full path common/tools/testing/android/bin/."
echo "Building kernel and launching virtual device are enabled by default;"
echo "use options to skip the workflow."
echo ""
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 " -d, --dist-dir=DIR The kernel dist dir (default is /tmp/kernel_dist)"
echo " -s, --serial=SERIAL The device serial number."
echo " If serial is specified, cuttlefish device launch will be skipped"
echo " If serial is specified, virtual device launch will be skipped"
echo " -t, --test=TEST_NAME The test target name. Can be repeated"
echo " If test is not specified, all kselftests will be run"
echo " --gcov Collect coverage data from the test result"

View File

@@ -12,16 +12,20 @@ JDK_PATH=prebuilts/jdk/jdk11/linux-x86
print_help() {
echo "Usage: $0 [OPTIONS]"
echo ""
echo "This script builds kernel, launches cvd and runs selftests on it."
echo "This script runs KUnit tests on an Android device."
echo "Please run the script with full path common/tools/testing/android/bin/."
echo "Building kernel and launching virtual device are enabled by default;"
echo "use options to skip the workflow."
echo ""
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 " -d, --dist-dir=DIR The kernel dist dir (default is /tmp/kernel_dist)"
echo " -s, --serial=SERIAL The device serial number."
echo " If serial is specified, cuttlefish device launch will be skipped"
echo " If serial is specified, virtual device launch will be skipped"
echo " -t, --test=TEST_NAME The test target name. Can be repeated"
echo " If test is not specified, all kselftests will be run"
echo " If test is not specified, all tests will be run"
echo " -h, --help Display this help message and exit"
echo ""
echo "Examples:"
@@ -154,12 +158,14 @@ fi
echo "Get abi from device $SERIAL_NUMBER"
ABI=$(adb -s $SERIAL_NUMBER shell getprop ro.product.cpu.abi)
echo "Building kunit tests according to device $SERIAL_NUMBER ro.product.cpu.abi $ABI ..."
echo "Building KUnit tests according to device $SERIAL_NUMBER ro.product.cpu.abi $ABI ..."
case $ABI in
arm64*)
TESTSDIR+="_arm64"
$BAZEL run //common:kunit_tests_arm64 -- -v --destdir $TESTSDIR
;;
x86_64*)
TESTSDIR+="_x86_64"
$BAZEL run //common:kunit_tests_x86_64 -- -v --destdir $TESTSDIR
;;
*)

View File

@@ -2,16 +2,33 @@ HOW TO RUN KUNIT TESTS IN ANDROID
=================================
Prerequisites
* Pass kunit.enable=1 as a kernel command line argument
* This should be done in either userdebug or eng build configs. See
the following examples:
* https://android-review.git.corp.google.com/c/device/google/cuttlefish/+/2085612
* https://android-review.git.corp.google.com/c/kernel/google-modules/raviole-device/+/2095369
* For a local device you can run the following:
$ fastboot oem cmdline add "kunit.enable=1"
* Run a "no trim" kernel (e.g. add `--notrim` to bazel build command)
* If you want to run a vendor module KUnit tests, please run the tests with a
"no trim" kernel (e.g. add `--notrim` to bazel build command).
Run test with a single shell script command:
$ common/tools/testing/android/bin/kunit.sh
By default, the script will build the kernel and launch an Android virtual
device and then run the tests. Additional options may be passed to change
the default behavior. The following are some examples on how to use it:
* Build kernel, launch a virtual device, run KUnit tests:
$ common/tools/testing/android/bin/kunit.sh
* Run KUnit tests on a connected device directly:
$ common/tools/testing/android/bin/kunit.sh -s 127.0.0.1:37693
* Check other available options:
$ common/tools/testing/android/bin/kunit.sh -h
Load and run a test module on Android device manually
* Push the KUnit test framework module kunit.ko over to the device. For example:
$ adb push kunit.ko /data
* Load test module on device:
$ cd /data
$ insmod kunit.ko enable=1
Run a test module
* Push the KUnit test module over to the device. For example using adb:
$ adb push kunit-test-example.ko /data
@@ -48,7 +65,7 @@ View test results
<truncated>
....
Run ACK KUnit tests via tradefed
Run KUnit tests on Android Device via test automation infrastructure tradefed
* Build ACK KUnit tests and install (e.g. /tmp/kunit_tests):
$ tools/bazel run -- //common:kunit_tests_x86_64_install -v --destdir /tmp/kunit_tests
@@ -68,7 +85,6 @@ Run ACK KUnit tests via tradefed
============================================
....
TROUBLESHOOTING
===============

View File

@@ -0,0 +1,18 @@
HOW TO RUN SELFTESTS IN ANDROID
=================================
Run test with a single shell script command:
$ common/tools/testing/android/bin/kselftest.sh
By default, the script will build the kernel and launch an Android virtual
device and then run the tests. Additional options may be passed to change
the default behavior. The following are some examples on how to use it:
* Build kernel, launch a virtual device, run KUnit tests:
$ common/tools/testing/android/bin/kselftest.sh
* Run Selftests on a connected device directly:
$ common/tools/testing/android/bin/kselftest.sh -s 127.0.0.1:37693
* Check other available options:
$ common/tools/testing/android/bin/kselftest.sh -h