xref: /aosp_15_r20/external/ltp/android/README.md (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
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