aosp12/external/toolchain-utils/binary_search_tool
hcl 7be3fd486c init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
..
android init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
common init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
cros_pkg init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
full_bisect_test init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
ndk init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
sysroot_wrapper init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
test init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
.gitignore init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
MAINTENANCE init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
README.bisect.md init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
README.pass_bisect.md init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
README.testing.md init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
__init__.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
binary_search_perforce.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
binary_search_state.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
bisect_driver.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
common.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
compiler_wrapper.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
pass_mapping.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
run_bisect.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00
run_bisect_tests.py init from android-12.1.0_r8 2023-01-09 17:11:35 +08:00

README.testing.md

Testing the binary search tool

This file explains how to set up and run the various kinds of bisection tests.

The bisection tool comes with several sets of tests which you should run after updating any of the bisection tool scripts OR after updating the Android compiler wrapper (to make sure the wrapper will still work correctly with bisection).

Before you start.

Before you can run the tests, your PYTHONPATH environment variable must be correct. This means that it must include both the toolchain-utils directory and the binary_search_tool directory. The easiest way to set it is:

$ cd toolchain-utils
$ export PYTHONPATH=`pwd`:${PYTHONPATH}
$ cd binary_search_tool
$ export PYTHONPATH=`pwd`:${PYTHONPATH}

Running the unittests.

To run the basic unit tests:

$ cd toolchain-utils/binary_search_tool/test
$ ./binary_search_tool_test.py

Running the bisection tests, testing the compiler wrapper.

If you want to run the bisection tests, and test the compiler wrapper (to make sure the POPULATE_GOOD and POPULATE_BAD stages are still working properly) you can do the following.

If you are testing with the ANDROID COMPILER WRAPPER, you need to to some preliminary setup:

Set up the compiler wrapper to replace GCC:

$ cd <android-root/prebuilts/clang/host/linux-x86/clang-368880/bin
$ cp clang gcc
$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/bin/X11/gcc /usr/share/man/man1/gcc.1.gz
$ cd /usr/bin
$ ls -l gcc
lrwxrwxrwx 1 root root 7 Feb  3 17:00 gcc -> gcc-4.8*
$ sudo mv gcc gcc.real
$ sudo ln -s \
    <android-root>/prebuilts/clang/host/linux-x86/clang-3688880/bin/gcc gcc

Move to the correct directory, then run the test script:

$ cd toolchain-utils/binary_search_tool
$ ./run_bisect_tests.py

If you are testing with the CHROMEOS COMPILER WRAPPER, you MUST run the tests from INSIDE your CHROOT (but you don't need to do any special setup):

$ cd <path-to-chromeos-root>
$ cros_sdk
$ cd ~/trunk/src/third_party/toolchain-utils

Set up your PYTHONPATH:

$ export PYTHONPATH=`pwd`:${PYTHONPATH}
$ cd binary_search_tool
$ export PYTHONPATH=`pwd`:${PYTHONPATH}

Run the test script:

$ ./run_bisect_tests.py

Running the bisection tests, without testing the compiler wrapper.

$ cd toolchain-utils/binary_search_tool
$ ./full_bisect_test/run-test-nowrapper.sh