1*49cdfc7eSAndroid Build Coastguard WorkerVTS LTP Workflow 2*49cdfc7eSAndroid Build Coastguard Worker================ 3*49cdfc7eSAndroid Build Coastguard Worker 4*49cdfc7eSAndroid Build Coastguard WorkerA Guide to Developing LTP for VTS/Android 5*49cdfc7eSAndroid Build Coastguard Worker 6*49cdfc7eSAndroid Build Coastguard WorkerWhat is LTP? 7*49cdfc7eSAndroid Build Coastguard Worker------------ 8*49cdfc7eSAndroid Build Coastguard Worker 9*49cdfc7eSAndroid Build Coastguard Worker[Github](https://github.com/linux-test-project/ltp) (upstream) 10*49cdfc7eSAndroid Build Coastguard Worker 11*49cdfc7eSAndroid Build Coastguard WorkerLTP (Linux Test Project) is a suite of tests that covers both kernel interfaces 12*49cdfc7eSAndroid Build Coastguard Workerand userspace functionality (glibc, commonly used binaries, etc). For the 13*49cdfc7eSAndroid Build Coastguard Workerpurposes of Android the userspace functionality testing is of less importance 14*49cdfc7eSAndroid Build Coastguard Workerand in fact much of it must be disabled, given the functionality is not 15*49cdfc7eSAndroid Build Coastguard Workeravailable in Android. 16*49cdfc7eSAndroid Build Coastguard Worker 17*49cdfc7eSAndroid Build Coastguard WorkerAs of Jan 2023 there are on the order of 1300 tests executed in VTS on arm64. 18*49cdfc7eSAndroid Build Coastguard WorkerMost tests are run in both 32-bit and 64-bit mode. Many more are available but 19*49cdfc7eSAndroid Build Coastguard Workercurrently disabled due to either being broken or not applicable on Android. 20*49cdfc7eSAndroid Build Coastguard Worker 21*49cdfc7eSAndroid Build Coastguard WorkerHow is LTP Run in VTS? 22*49cdfc7eSAndroid Build Coastguard Worker---------------------- 23*49cdfc7eSAndroid Build Coastguard Worker 24*49cdfc7eSAndroid Build Coastguard WorkerThe LTP source is located at external/ltp in the Android tree. This is not an 25*49cdfc7eSAndroid Build Coastguard Workerexact mirror of upstream, there are outstanding changes to LTP for it to work 26*49cdfc7eSAndroid Build Coastguard Workeron Android which have not yet been pushed upstream. In addition to the LTP 27*49cdfc7eSAndroid Build Coastguard Workersource there is also the VTS wrapper around it. This is located at 28*49cdfc7eSAndroid Build Coastguard Workertest/vts-testcase/kernel/ltp. Some noteworthy directories/files: 29*49cdfc7eSAndroid Build Coastguard Worker 30*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/`: Contains Android-specific files, aside from Android.[bp, mk] at top level. 31*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/Android.ltp.mk`: Lists build rules for the LTP modules built under make. This file gets auto-generated by android/tools/gen_android_build.sh. 32*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/gen.bp`: Lists build rules for the LTP modules built under Soong. This file gets auto-generated by android/tools/gen_android_build.sh. 33*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/ltp_package_list.mk`: Lists all tests that will get pulled into VTS - VTS depends on this list. This file gets auto-generated by android/tools/gen_android_build.sh. 34*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/tools/disabled_tests.txt`: Lists tests which cannot or should not be compiled for Android. This file is read by gen_android_build.sh during LTP upgrades to produce *.mk files required to build LTP for Android. 35*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/testcases`: Source for LTP tests. Among the most important for the purposes of Treble are those in external/ltp/testcases/kernel/syscalls. 36*49cdfc7eSAndroid Build Coastguard Worker* `test/vts-testcase/kernel/ltp/testcase/tools/configs/disabled_tests.py`: Any test listed here will not be run in VTS, despite being compiled. 37*49cdfc7eSAndroid Build Coastguard Worker* `test/vts-testcase/kernel/ltp/testcase/tools/configs/stable_tests.py`: Any test listed here will run as part of the vts_ltp_test_arm/vts_ltp_test_arm_64 modules. 38*49cdfc7eSAndroid Build Coastguard Worker 39*49cdfc7eSAndroid Build Coastguard WorkerRunning LTP through atest 40*49cdfc7eSAndroid Build Coastguard Worker------------------------- 41*49cdfc7eSAndroid Build Coastguard WorkerYou can run LTP tests with atest, which handles all the setup and build steps. 42*49cdfc7eSAndroid Build Coastguard Worker 43*49cdfc7eSAndroid Build Coastguard WorkerTo run all 32 bit LTP tests: 44*49cdfc7eSAndroid Build Coastguard Worker* `atest vts_ltp_test_arm` 45*49cdfc7eSAndroid Build Coastguard Worker 46*49cdfc7eSAndroid Build Coastguard WorkerTo run all 64 bit LTP tests: 47*49cdfc7eSAndroid Build Coastguard Worker* `atest vts_ltp_test_arm_64` 48*49cdfc7eSAndroid Build Coastguard Worker 49*49cdfc7eSAndroid Build Coastguard WorkerTo run a single test: 50*49cdfc7eSAndroid Build Coastguard Worker* `atest vts_ltp_test_arm:dio.dio13_32bit` 51*49cdfc7eSAndroid Build Coastguard Worker 52*49cdfc7eSAndroid Build Coastguard WorkerRunning LTP through VTS 53*49cdfc7eSAndroid Build Coastguard Worker----------------------- 54*49cdfc7eSAndroid Build Coastguard WorkerTo run VTS LTP it must first be built. VTS is not device specific, you need not 55*49cdfc7eSAndroid Build Coastguard Workercompile it specifically for the device you wish to run it on, assuming it is 56*49cdfc7eSAndroid Build Coastguard Workerthe same architecture. 57*49cdfc7eSAndroid Build Coastguard Worker 58*49cdfc7eSAndroid Build Coastguard Worker* `. build/envsetup.sh` 59*49cdfc7eSAndroid Build Coastguard Worker* `lunch` 60*49cdfc7eSAndroid Build Coastguard Worker* `make -j vts` 61*49cdfc7eSAndroid Build Coastguard Worker 62*49cdfc7eSAndroid Build Coastguard WorkerThen open vts-tradefed and run the VTS stable set: 63*49cdfc7eSAndroid Build Coastguard Worker* `vts-tradefed` 64*49cdfc7eSAndroid Build Coastguard Worker* `vts-tf > run vts-kernel -m vts_ltp_test_arm` 65*49cdfc7eSAndroid Build Coastguard Worker 66*49cdfc7eSAndroid Build Coastguard WorkerIf you regularly work with multiple devices it may be useful to specify the 67*49cdfc7eSAndroid Build Coastguard Workerspecific device you wish to run VTS on via the serial number: 68*49cdfc7eSAndroid Build Coastguard Worker* `vts-tf > run vts-kernel -m vts_ltp_test_arm -s 000123456789` 69*49cdfc7eSAndroid Build Coastguard Worker 70*49cdfc7eSAndroid Build Coastguard WorkerOr a specific test within the stable set: 71*49cdfc7eSAndroid Build Coastguard Worker* `vts-tf > run vts-kernel -m vts_ltp_test_arm -t dio.dio13_32bit` 72*49cdfc7eSAndroid Build Coastguard Worker 73*49cdfc7eSAndroid Build Coastguard WorkerRunning LTP Directly 74*49cdfc7eSAndroid Build Coastguard Worker-------------------- 75*49cdfc7eSAndroid Build Coastguard Worker 76*49cdfc7eSAndroid Build Coastguard WorkerRunning LTP tests within VTS can be quite cumbersome, especially if you are 77*49cdfc7eSAndroid Build Coastguard Workeriterating a lot trying to debug something. Build and run LTP tests faster by 78*49cdfc7eSAndroid Build Coastguard Workerdoing 79*49cdfc7eSAndroid Build Coastguard Worker 80*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp$ mma` 81*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp$ adb sync data` 82*49cdfc7eSAndroid Build Coastguard Worker 83*49cdfc7eSAndroid Build Coastguard WorkerThe test cases will be located at /data/nativetest{64,}/ltp/testcases/bin. 84*49cdfc7eSAndroid Build Coastguard Worker 85*49cdfc7eSAndroid Build Coastguard WorkerSometimes you need to perform this step after syncing: 86*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp$ git clean -x -f -d` 87*49cdfc7eSAndroid Build Coastguard WorkerOtherwise, build will fail. 88*49cdfc7eSAndroid Build Coastguard Worker 89*49cdfc7eSAndroid Build Coastguard WorkerIn order to simulate the exact environment that VTS will be creating for each 90*49cdfc7eSAndroid Build Coastguard Workerof these tests, you can set the following environment variables before you run 91*49cdfc7eSAndroid Build Coastguard Workerthe test. This is very useful if the test itself depends on some of these 92*49cdfc7eSAndroid Build Coastguard Workervariables to be set appropriately. 93*49cdfc7eSAndroid Build Coastguard Worker 94*49cdfc7eSAndroid Build Coastguard Worker* `adb root && adb shell` 95*49cdfc7eSAndroid Build Coastguard Worker 96*49cdfc7eSAndroid Build Coastguard WorkerIn the root shell on device: 97*49cdfc7eSAndroid Build Coastguard Worker* `mkdir -p /data/local/tmp/ltp/tmp/ltptemp` 98*49cdfc7eSAndroid Build Coastguard Worker* `mkdir -p /data/local/tmp/ltp/tmp/tmpbase` 99*49cdfc7eSAndroid Build Coastguard Worker* `mkdir -p /data/local/tmp/ltp/tmp/tmpdir` 100*49cdfc7eSAndroid Build Coastguard Worker* `restorecon -F -R /data/local/tmp/ltp` 101*49cdfc7eSAndroid Build Coastguard Worker* `export TMP=/data/local/tmp/ltp/tmp` 102*49cdfc7eSAndroid Build Coastguard Worker* `export LTPTMP=/data/local/tmp/ltp/tmp/ltptemp` 103*49cdfc7eSAndroid Build Coastguard Worker* `export LTP_DEV_FS_TYPE=ext4` 104*49cdfc7eSAndroid Build Coastguard Worker* `export TMPBASE=/data/local/tmp/ltp/tmp/tmpbase` 105*49cdfc7eSAndroid Build Coastguard Worker* `export TMPDIR=/data/local/tmp/ltp/tmp/tmpdir` 106*49cdfc7eSAndroid Build Coastguard Worker* `export LTPROOT=/data/local/tmp/ltp` 107*49cdfc7eSAndroid Build Coastguard Worker 108*49cdfc7eSAndroid Build Coastguard WorkerFor running 64-bit tests: 109*49cdfc7eSAndroid Build Coastguard Worker* `export PATH=/data/nativetest64/ltp/testcases/bin:$PATH` 110*49cdfc7eSAndroid Build Coastguard Worker 111*49cdfc7eSAndroid Build Coastguard WorkerOr For running 32-bit tests: 112*49cdfc7eSAndroid Build Coastguard Worker* `export PATH=/data/nativetest/ltp/testcases/bin:$PATH` 113*49cdfc7eSAndroid Build Coastguard Worker 114*49cdfc7eSAndroid Build Coastguard WorkerHow do I enable or disable tests from the LTP build? 115*49cdfc7eSAndroid Build Coastguard Worker---------------------------------------------------- 116*49cdfc7eSAndroid Build Coastguard Worker 117*49cdfc7eSAndroid Build Coastguard WorkerTests are disabled from the LTP build by adding them to 118*49cdfc7eSAndroid Build Coastguard Workerexternal/ltp/android/tools/disabled_tests.txt. Many tests have been added to 119*49cdfc7eSAndroid Build Coastguard Workerthis file over time. Some of them are not applicable to Android and therefore 120*49cdfc7eSAndroid Build Coastguard Workershould not be built. Others were disabled here because they were failing at one 121*49cdfc7eSAndroid Build Coastguard Workerpoint in time for reasons unknown. 122*49cdfc7eSAndroid Build Coastguard Worker 123*49cdfc7eSAndroid Build Coastguard WorkerTo make a change to what is built in LTP, add or remove an entry in this file, 124*49cdfc7eSAndroid Build Coastguard Workerand then update the Android-specific build files for LTP, mentioned above: 125*49cdfc7eSAndroid Build Coastguard Worker 126*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/Android.ltp.mk`, for LTP modules built in make 127*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/gen.bp`, for LTP modules built in soong 128*49cdfc7eSAndroid Build Coastguard Worker* `external/ltp/android/ltp_package_list.mk`, which lists all LTP modules that get pulled into VTS 129*49cdfc7eSAndroid Build Coastguard Worker 130*49cdfc7eSAndroid Build Coastguard WorkerUpdate these files by running the script located at 131*49cdfc7eSAndroid Build Coastguard Workerexternal/ltp/android/tools/gen_android_build.sh. Instructions for the script 132*49cdfc7eSAndroid Build Coastguard Workerare in external/ltp/android/how-to-update.txt. 133*49cdfc7eSAndroid Build Coastguard Worker 134*49cdfc7eSAndroid Build Coastguard Worker 135*49cdfc7eSAndroid Build Coastguard WorkerHow do I enable or disable tests from VTS LTP? 136*49cdfc7eSAndroid Build Coastguard Worker---------------------------------------------- 137*49cdfc7eSAndroid Build Coastguard Worker 138*49cdfc7eSAndroid Build Coastguard WorkerIn addition to whether modules are built in external/ltp, it is also necessary 139*49cdfc7eSAndroid Build Coastguard Workerto configure the VTS harness for LTP to determine which tests are in the stable 140*49cdfc7eSAndroid Build Coastguard Workerset, the staging set, or disabled. Note that being disabled in VTS does not 141*49cdfc7eSAndroid Build Coastguard Workeraffect whether the test is built, but rather determines whether it is run at 142*49cdfc7eSAndroid Build Coastguard Workerall as part of the stable or staging sets. 143*49cdfc7eSAndroid Build Coastguard Worker 144*49cdfc7eSAndroid Build Coastguard WorkerThe file test/vts-testcase/kernel/ltp/testcase/tools/configs/stable_tests.py 145*49cdfc7eSAndroid Build Coastguard Workerlists tests that will run as part of VTS (vts_ltp_test_arm/vts_ltp_test_arm_64). 146*49cdfc7eSAndroid Build Coastguard Worker 147*49cdfc7eSAndroid Build Coastguard WorkerWhen a test is enabled for the first time in VTS it should be in the staging 148*49cdfc7eSAndroid Build Coastguard Workerset. The behavior of the test will be observed over a period of time and ensure 149*49cdfc7eSAndroid Build Coastguard Workerthe test is reliable. After a period of time (a week or two) it will be moved 150*49cdfc7eSAndroid Build Coastguard Workerto the stable set. 151*49cdfc7eSAndroid Build Coastguard Worker 152*49cdfc7eSAndroid Build Coastguard WorkerTests that will never be relevant to Android should be disabled from the build 153*49cdfc7eSAndroid Build Coastguard Workerin external/ltp. Tests that are (hopefully) temporarily broken should be 154*49cdfc7eSAndroid Build Coastguard Workerruntime disabled in VTS. The staging and stable sets should normally all be 155*49cdfc7eSAndroid Build Coastguard Workerpassing. If something is failing there it should either be fixed with priority 156*49cdfc7eSAndroid Build Coastguard Workeror disabled until it can be fixed. 157*49cdfc7eSAndroid Build Coastguard Worker 158*49cdfc7eSAndroid Build Coastguard WorkerIf the runtime of LTP changes significantly be sure to update the runtime-hint 159*49cdfc7eSAndroid Build Coastguard Workerand test-timeout parameters to VTS in 160*49cdfc7eSAndroid Build Coastguard Worker`test/vts-testcase/kernel/ltp/stable/AndroidTest.xml`. 161*49cdfc7eSAndroid Build Coastguard Worker 162*49cdfc7eSAndroid Build Coastguard Worker 163*49cdfc7eSAndroid Build Coastguard WorkerHow do I see recent VTS LTP results? 164*49cdfc7eSAndroid Build Coastguard Worker---------------------------------------------------------- 165*49cdfc7eSAndroid Build Coastguard Worker 166*49cdfc7eSAndroid Build Coastguard WorkerThe internal portal at go/vts11-dashboard shows results for the continuous VTS testing 167*49cdfc7eSAndroid Build Coastguard Workerdone on internal devices. 168*49cdfc7eSAndroid Build Coastguard Worker 169*49cdfc7eSAndroid Build Coastguard WorkerTest results are also gathered by Linaro and may be seen 170*49cdfc7eSAndroid Build Coastguard Worker[here](https://qa-reports.linaro.org/android-lkft/). 171*49cdfc7eSAndroid Build Coastguard Worker 172*49cdfc7eSAndroid Build Coastguard Worker 173*49cdfc7eSAndroid Build Coastguard WorkerHelp! The external/ltp build is failing! 174*49cdfc7eSAndroid Build Coastguard Worker---------------------------------------- 175*49cdfc7eSAndroid Build Coastguard Worker 176*49cdfc7eSAndroid Build Coastguard WorkerTry doing a make distclean inside of external/ltp. If an upgrade to LTP has 177*49cdfc7eSAndroid Build Coastguard Workerrecently merged or the build files were recently updated, stale files in 178*49cdfc7eSAndroid Build Coastguard Workerexternal/ltp can cause build failures. 179*49cdfc7eSAndroid Build Coastguard Worker 180*49cdfc7eSAndroid Build Coastguard Worker 181*49cdfc7eSAndroid Build Coastguard WorkerWhat outstanding issues exist? 182*49cdfc7eSAndroid Build Coastguard Worker------------------------------ 183*49cdfc7eSAndroid Build Coastguard Worker 184*49cdfc7eSAndroid Build Coastguard WorkerThe hotlist for LTP bugs is [ltp-todo](https://buganizer.corp.google.com/hotlists/733268). 185*49cdfc7eSAndroid Build Coastguard Worker 186*49cdfc7eSAndroid Build Coastguard WorkerWhen you begin working on an LTP bug please assign the bug to yourself so that 187*49cdfc7eSAndroid Build Coastguard Workerothers know it is being worked on. 188*49cdfc7eSAndroid Build Coastguard Worker 189*49cdfc7eSAndroid Build Coastguard Worker 190*49cdfc7eSAndroid Build Coastguard WorkerTesting x86_64 191*49cdfc7eSAndroid Build Coastguard Worker-------------- 192*49cdfc7eSAndroid Build Coastguard Worker 193*49cdfc7eSAndroid Build Coastguard WorkerIt is not advisable to run LTP tests directly on your host unless you are fully 194*49cdfc7eSAndroid Build Coastguard Workeraware of what the tests will do and are okay with it. These tests may 195*49cdfc7eSAndroid Build Coastguard Workerdestabilize your box or cause data loss. If you need to run tests on an x86 196*49cdfc7eSAndroid Build Coastguard Workerplatform and are unsure if they are safe you should run them in emulation, in a 197*49cdfc7eSAndroid Build Coastguard Workervirtualized environment, or on a dedicated development x86 platform. 198*49cdfc7eSAndroid Build Coastguard Worker 199*49cdfc7eSAndroid Build Coastguard WorkerTo run LTP tests for x86 platform, you can do: 200*49cdfc7eSAndroid Build Coastguard Worker* `atest vts_ltp_test_x86` 201*49cdfc7eSAndroid Build Coastguard Worker* `atest vts_ltp_test_x86_64` 202*49cdfc7eSAndroid Build Coastguard Worker 203*49cdfc7eSAndroid Build Coastguard Worker 204*49cdfc7eSAndroid Build Coastguard WorkerSending Fixes Upstream 205*49cdfc7eSAndroid Build Coastguard Worker---------------------- 206*49cdfc7eSAndroid Build Coastguard Worker 207*49cdfc7eSAndroid Build Coastguard WorkerThe mailing list for LTP is located 208*49cdfc7eSAndroid Build Coastguard Worker[here](https://lists.linux.it/listinfo/ltp). Some standard kernel guidelines 209*49cdfc7eSAndroid Build Coastguard Workerapply to sending patches; they should be checkpatch (scripts/checkpatch.pl in 210*49cdfc7eSAndroid Build Coastguard Workerthe kernel repository) clean and sent in plain text in canonical patch format. 211*49cdfc7eSAndroid Build Coastguard WorkerOne easy way to do this is by using git format-patch and git send-email. 212*49cdfc7eSAndroid Build Coastguard Worker 213*49cdfc7eSAndroid Build Coastguard WorkerThere is an #LTP channel on freenode. The maintainer Cyril Hrubis is there (his 214*49cdfc7eSAndroid Build Coastguard Workernick is metan). 215*49cdfc7eSAndroid Build Coastguard Worker 216*49cdfc7eSAndroid Build Coastguard Worker 217*49cdfc7eSAndroid Build Coastguard WorkerMerging Fixes 218*49cdfc7eSAndroid Build Coastguard Worker------------------------ 219*49cdfc7eSAndroid Build Coastguard Worker 220*49cdfc7eSAndroid Build Coastguard WorkerWhen possible please merge fixes upstream first. Then cherrypick the change 221*49cdfc7eSAndroid Build Coastguard Workeronto aosp/master in external/ltp. 222*49cdfc7eSAndroid Build Coastguard Worker 223*49cdfc7eSAndroid Build Coastguard Worker 224*49cdfc7eSAndroid Build Coastguard WorkerUpgrade LTP to the latest upstream release 225*49cdfc7eSAndroid Build Coastguard Worker------------------------------------------- 226*49cdfc7eSAndroid Build Coastguard Worker 227*49cdfc7eSAndroid Build Coastguard WorkerLTP has three releases per year. Keeping the current project aligned with the 228*49cdfc7eSAndroid Build Coastguard Workerupstream development is important to get additional tests and bug-fixes. 229*49cdfc7eSAndroid Build Coastguard Worker 230*49cdfc7eSAndroid Build Coastguard Worker### Merge the changes 231*49cdfc7eSAndroid Build Coastguard Worker 232*49cdfc7eSAndroid Build Coastguard WorkerAOSP external projects have a branch that track the changes to the upstream 233*49cdfc7eSAndroid Build Coastguard Workerrepository, called `aosp/upstream-master`. 234*49cdfc7eSAndroid Build Coastguard WorkerThat branch is automatically updated with: 235*49cdfc7eSAndroid Build Coastguard Worker 236*49cdfc7eSAndroid Build Coastguard Worker`repo sync .` 237*49cdfc7eSAndroid Build Coastguard Worker 238*49cdfc7eSAndroid Build Coastguard WorkerCreate a new branch to work on the merge, that will contain the merge commit 239*49cdfc7eSAndroid Build Coastguard Workeritself and conflicts resolutions: 240*49cdfc7eSAndroid Build Coastguard Worker 241*49cdfc7eSAndroid Build Coastguard Worker`repo start mymerge .` 242*49cdfc7eSAndroid Build Coastguard Worker 243*49cdfc7eSAndroid Build Coastguard WorkerFind the commit for the latest LTP release, for example 244*49cdfc7eSAndroid Build Coastguard Worker 245*49cdfc7eSAndroid Build Coastguard Worker``` 246*49cdfc7eSAndroid Build Coastguard Worker$ git log --oneline aosp/upstream-master 247*49cdfc7eSAndroid Build Coastguard Workerc00f96994 (aosp/upstream-master) openposix/Makefile: Use tabs instead of spaces 248*49cdfc7eSAndroid Build Coastguard Workera90664f8d Makefile: Use SPDX in Makefile 249*49cdfc7eSAndroid Build Coastguard Worker0fb171f2b LTP 20210524 250*49cdfc7eSAndroid Build Coastguard Worker``` 251*49cdfc7eSAndroid Build Coastguard Worker 252*49cdfc7eSAndroid Build Coastguard WorkerForce the creation of a merge commit (no fast-forward). 253*49cdfc7eSAndroid Build Coastguard Worker 254*49cdfc7eSAndroid Build Coastguard Worker`git merge <release commit> --no-ff` 255*49cdfc7eSAndroid Build Coastguard Worker 256*49cdfc7eSAndroid Build Coastguard WorkerFix all the merge conflicts ensuring that the project still builds, by 257*49cdfc7eSAndroid Build Coastguard Workerperiodically running: 258*49cdfc7eSAndroid Build Coastguard Worker 259*49cdfc7eSAndroid Build Coastguard Worker`git clean -dfx && make autotools && ./configure && make -j` 260*49cdfc7eSAndroid Build Coastguard Worker 261*49cdfc7eSAndroid Build Coastguard WorkerCommit the LTP version string 262*49cdfc7eSAndroid Build Coastguard Worker``` 263*49cdfc7eSAndroid Build Coastguard Workergit describe <release commit> > VERSION 264*49cdfc7eSAndroid Build Coastguard Workergit add VERSION 265*49cdfc7eSAndroid Build Coastguard Worker``` 266*49cdfc7eSAndroid Build Coastguard Worker 267*49cdfc7eSAndroid Build Coastguard Worker### Update the Android build targets 268*49cdfc7eSAndroid Build Coastguard Worker 269*49cdfc7eSAndroid Build Coastguard WorkerBuilding LTP with the Android build system requires the additional Android 270*49cdfc7eSAndroid Build Coastguard Workerbuild configuration files mentioned above. 271*49cdfc7eSAndroid Build Coastguard WorkerA new LTP release may have disabled existing tests or enabled new ones, so the 272*49cdfc7eSAndroid Build Coastguard WorkerAndroid build configurations must be updated accordingly. 273*49cdfc7eSAndroid Build Coastguard WorkerThis is done by the script `android/tools/gen_android_build.sh`: 274*49cdfc7eSAndroid Build Coastguard Worker 275*49cdfc7eSAndroid Build Coastguard Worker`git clean -dfx && android/tools/gen_android_build.sh && git clean -dfx && mma .` 276*49cdfc7eSAndroid Build Coastguard Worker 277*49cdfc7eSAndroid Build Coastguard WorkerThis command will possibly update the files `android/Android.ltp.mk`, 278*49cdfc7eSAndroid Build Coastguard Worker`android/ltp_package_list.mk` and `gen.bp`. 279*49cdfc7eSAndroid Build Coastguard Worker 280*49cdfc7eSAndroid Build Coastguard WorkerIt's a good practice to create an explanatory commit message that presents the 281*49cdfc7eSAndroid Build Coastguard Workerdifferences in the test suite. 282*49cdfc7eSAndroid Build Coastguard Worker`android/tools/compare_ltp_projects.py` is a script that helps comparing the tests available in two different LTP folders. 283*49cdfc7eSAndroid Build Coastguard Worker 284*49cdfc7eSAndroid Build Coastguard WorkerLTP_NEW=$ANDROID_BUILD_TOP/external/ltp 285*49cdfc7eSAndroid Build Coastguard WorkerLTP_OLD=/tmp/ltp-base 286*49cdfc7eSAndroid Build Coastguard Workergit archive aosp/master | tar -x -C $LTP_OLD 287*49cdfc7eSAndroid Build Coastguard Workerandroid/tools/compare_ltp_projects.py --ltp-new $LTP_NEW --ltp-old $LTP_OLD