Commit Graph

698 Commits

Author SHA1 Message Date
Peter Collingbourne
bbddfcf7ba Only include the "tools" and "testcases" subdirectories in android-cts.zip.
Without this, we can end up packaging log files from previous CTS runs in
the zip file. If the names of those log files contain whitespace characters,
it can result in a build failure.

Change-Id: Id96d1915a03b6a715acfdc212c9b2d6f28045baa
2019-08-21 12:31:41 -07:00
nelsonli
e7b71a18a4 VTS: Add vts-core to the dependency of tests
Bug: 137921421
Test: (1) m tests
      (2) check vts-core-tests.zip

For migrating most existing VTS test to executable by Base TradeFed, we have to
create vts-core suite and test all of the modules in vts-core first.
And add the packaging rules for vts-core suite.

Bug: 137921421
Change-Id: Ifc92db205c78db98abf704aa6dfa50f1f77e983d
2019-08-14 09:47:21 +08:00
Inseob Kim
316f77ba3c Include headers and props to VNDK snapshot
For all vndk snapshot libraries, header files exported by the libraries
will be included to the snapshot. Android.bp will contain necessary
information to link against/install vndk snapshot libraires:
export_include_dirs, export_system_include_dirs, export_flags, and
relative_install_path.

Bug: 132818174
Test: 1) VNDK_SNAPSHOT_BUILD_ARTIFACTS=true \
           development/vndk/snapshot/build.sh
Test: 2) development/vndk/snasphot/update.py
Test: 3) see contents of Android.bp and include directories
Change-Id: I3ed179b613ca51f7854dc819783a962a56b973eb
2019-08-08 18:46:31 +09:00
Treehugger Robot
169b1cb897 Merge "VTS: Create vts-core suite and packaging rules" 2019-08-06 02:21:41 +00:00
Dan Willemsen
8b8b9b6bf8 Merge changes from topic "rm_ONE_SHOT_MAKEFILE"
* changes:
  Remove [jni_]link_type files
  Remove support for ONE_SHOT_MAKEFILE
2019-08-01 21:11:02 +00:00
Dan Willemsen
5c3fc2a792 Remove support for ONE_SHOT_MAKEFILE
Test: treehugger
Change-Id: Ie73418c186ec4c0e1c91078c133de8f8113295bf
2019-07-31 18:08:47 -07:00
Chen Zhu
95b0913070 Add Mainline Test Suite (MTS).
Test: m mts && mts-tradefed run mts

Bug:123411735
Bug:126277867

Merged-In: Iba6bf89bd4457ed0f5c1eb3351bf5ffd6720441d
Change-Id: I889ace72980619884cb35359b9a18d7b2053fed8
2019-07-31 21:31:10 +00:00
nelsonli
3d51ac07ef VTS: Create vts-core suite and packaging rules
For migrating most existing VTS test to executable by Base TradeFed, we have to
create vts-core suite and test all of the modules in vts-core first.
And add the packaging rules for vts-core suite.

Bug: 137921421
Test: (1) add test_suites: ["vts-core"], to any module or patch aosp/1089570
      (2) $ m vts-core
      (3) check this module in the vts-core.zip

Change-Id: I7a52b3ee400f58e6c383638396ced7194d6bc65d
2019-07-31 10:10:29 +08:00
Tao Bao
2bbb07c53c Build build_image and build_super_image as modules.
Bug: 63866463
Test: TreeHugger
Test: `atest releasetools_test`
Test: `atest releasetools_py3_test`
Change-Id: I2059a4ced709d1b2ee331a9aaaa5ca30db4ebf6b
2019-07-18 10:27:38 -07:00
Justin Yun
6151e3f1ea Rename product_services to system_ext
Bug: 134359158
Test: build and check if system_ext.img is created
Change-Id: I67f2e95dd29eac6a28e07e24ea973d3a134c3bfc
2019-07-09 08:57:19 +00:00
Tao Bao
cf821fc963 Fix an issue in setting up PATH.
`PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH` will
produce a space separated string due to `foreach`, if
$(INTERNAL_USERIMAGES_BINARY_PATHS) has more than one string. We didn't
hit the issue in the past because $(INTERNAL_USERIMAGES_BINARY_PATHS)
had contained only one path in practice.

Test: TreeHugger
Change-Id: I74ef4356668af63d871a81f6bfd4c9324aa1d956
2019-06-24 14:08:36 -07:00
Dan Shi
51b789e422 Create individual build artifact for test suite build output
This change creates following build artifacts that are currently part of
device-tests.zip and general-tests.zip. The smaller build artifacts are
used to reduce the download size required to run TradeFed suite.
Detailed design can be found in the bug.

From device-tests
device-tests_configs: include all test config files in device-tests, zip
  file is less than 1MB.

From general-tests
general-tests_configs: include all test config files in general-tests,
  zip file is less than 1MB.
general-tests_host-shared-libs: include tools and shared libraries
  required to run host side test, zip file is about 60MB

Bug: 73786521
Test: make device-tests and general-tests, verify output.
Change-Id: I34c9aa3c1c672d5d58eab6de92198a7b8e4a681c
2019-06-20 10:02:36 -07:00
Patrick Tu
58982618e1 Merge "AIDEGen: Collect the classes.jar of the prebuilt modules into module-info.json" 2019-06-17 02:51:56 +00:00
patricktu
379f7f0ef6 AIDEGen: Collect the classes.jar of the prebuilt modules into module-info.json
Current information is not enough if the prebuilt modules are depend on
AAR libs Therefore, AIDEGen has to collect the classes.jar of the
prebuilt modules from build system.

Build module-info.json without this change:
Build time: 1m55.001s
File size: 14,918,354 Bytes

Build module-info.json with this change:
Build time: 1m56.292s
File size: 15,577,031 Bytes

Bug: 132768299
Test: 1. Checkout the internal master branch
      2. Patch this CL
      3. m -j out/target/product/generic_x86_64/module-info.json
      4. Open the module-info.json
      5. For verifying soong_java_prebuilt.mk, check the classes.jar of
         module prebuilt-google-play-* exists.
         e.g.
         "prebuilt-google-play-...": {
              ...
              "classes_jar": [
	      	"out/target/common/obj/JAVA_LIBRARIES/
		 prebuilt-google-..._intermediates/classes.jar"
	      ]
         }
      5. For verifying java_prebuilt_internal.mk, check the classes.jar
         of module ink exists.
         e.g.
	 "ink": {
	     ...
	     "classes_jar": [
	     	"out/target/common/obj/JAVA_LIBRARIES/ink_intermediates/
		 classes.jar"
	     ]
	 }

Change-Id: I09518c92260db47d2686493fa13951f316159d13
2019-06-14 10:47:18 +08:00
Colin Cross
4f60e366db Make kernel modules into normal installed files
We sometimes see build failures when building platform.zip happens
at the same time as building vendor.img if the vendor.img rule
runs rm -rf $OUT/vendor/lib/modules at the same time that platform.zip
is zipping $OUT/vendor/.  Move the kernel modules into normal
installation rules so that they are in place by the time either
the vendor.img or platform.zip rules run.

This will also cause the kernel modules to show up in
installed-files*.txt.

Test: m vendorimage && ls $OUT/vendor/lib/modules
Change-Id: I178b1d54bfcdb5cf5c29885ace9183ac28fc8826
2019-06-06 12:51:47 -07:00
Dan Willemsen
288bedfc8f Convert more uses of $(ACP) to cp
Test: treehugger
Change-Id: Id8365ce4c06dfe731be9b80f805e071fab522909
2019-05-28 15:36:47 -07:00
Treehugger Robot
40b5340a94 Merge "AIDEGen: Collect the srcjar path of modules into module-info.json" 2019-05-21 02:02:20 +00:00
patricktu
ab435e39a5 AIDEGen: Collect the srcjar path of modules into module-info.json
By design doc: go/aidegen-doc-generate-R
In order to generate R.java of app modules, AIDEGen needs to build
the module. It might cause system.img oversized so we turn to build
the target srcjar file if it exists in module-info.json.

Build module-info.json without this change:
Build time: 1m47.227s
File size: 14,186,429 Bytes

Build module-info.json with this change:
Build time: 1m46.796s
File size: 14,614,470 Bytes

Bug: 132407603
Test: 1. m out/target/product/generic_x86_64/module-info.json
      2. by grep "target/common/obj/APPS/Settings_intermediates/aapt2.srcjar"
         in module-info.json.

Change-Id: I09c812aede0324bc38acbead0a863a85ae15b33e
2019-05-17 01:46:56 +00:00
Inseob Kim
10e02dcd43 Generate VNDK snapshot with Soong except configs
This is the first commit to generate VNDK snapshot with Soong: .so
files, some txt files, and notice files are captured with Soong. As
ld.config.txt is currently in Android.mk and will be deprecated soon,
configs files (and zipping all of artifacts) are still handled with
Makefile.

Bug: 131564934
Test: 1) DIST_DIR=out/dist development/vndk/snapshot/build.sh
Test: 2) try installing vndk snapshot with:
         development/vndk/snapshot/update.py

Change-Id: Ia904e8a1b44824d6c9556ada93bf1616620a1363
2019-05-14 06:40:08 +00:00
Pete Gillin
0ad2ef677d Whitelist javax.annotation.processing for inclusion in core-oj.
Bug: 123891440
Test: EXPERIMENTAL_USE_OPENJDK9=true make droid

(cherry picked from commit ec99530de3)

Merged-In: I0fc7a6841f34361883785479671f4422d720ce00
Change-Id: I70dbb89ca29ec1bb47ea5a1cf27b324d354aca11
2019-05-10 13:07:02 +01:00
Dan Willemsen
8e96a794ac Split ALL_MODULES.*.REQUIRED and friends between target/host
So that we actually respect different LOCAL_REQUIRED_MODULES for the
host and device versions instead of unioning them. That got particularly
problematic when LOCAL_SHARED_LIBRARIES is implicitly added to
LOCAL_REQUIRED_MODULES. We also used to walk through device-only modules
when filling out the list of required modules, which triggered even more
extra installations.

This also changes the requirements for PRODUCT_HOST_PACKAGES so that it
no longer accepts target-only phony modules (since we can now
differentiate them). They were all removed in previous patches.

Test: treehugger; diff resulting builds
Test: diff list of product_target_FILES and product_host_FILES
Change-Id: I2ed8950320d31f5693323ad8cef6ec5b6780b7d4
2019-04-10 13:22:23 -07:00
Anton Hansson
8dab0a6f50 Access PRODUCT_ variables directly
This CL simplifies the PRODUCTS.$(INTERNAL_PRODUCT).X accesses of
product variables, and removes unnecessary stripping of them.

Replace: '\$\(PRODUCTS\.\$\(INTERNAL_PRODUCT\)\.([^\)]*)\)' with '$(\1)'
Replace: '\$\(strip\s*\$\(PRODUCT_([^\)]*)\)\)' with '$(PRODUCT_\1)'

A few minor manual tweaks.

Bug: 116769560
Test: presubmit
Change-Id: I70c54f1582e3cc780028535960147d99ebc2e0e1
2019-03-28 15:54:25 +00:00
Nelson Li
1f8357fe7d Revert "Revert "Build System: Solve dependency problem for test""
This reverts commit 6fe7f194b9.

Reason for revert: Fixed all build break.

Change-Id: I0a4842df1225399752515a4cd7a7c14173a5bf7b
2019-03-14 01:05:36 +00:00
Nelson Li
6fe7f194b9 Revert "Build System: Solve dependency problem for test"
This reverts commit 224e103308.

Reason for revert: Build Breakage in git_pi-dev-plus-aosp/docs @5366136
make -j110 docs showcommands dist DIST_DIR=/buildbot/dist_dirs/git_pi-dev-plus-aosp-linux-docs/5366136 checkbuild
FAILED:
 Dependencies in out found with no rule to create them:
 out/target/product/generic/data/app/CtsVerifierTester/CtsVerifierTester.apk
 out/target/product/generic/data/app/TradeFedTestApp/TradeFedTestApp.apk
 out/target/product/generic/data/app/TradeFedUiTestApp/TradeFedUiTestApp.apk
 15:53:46 stopping
and
make -j50 showcommands dist TARGET_PRODUCT=cf_x86_phone DIST_DIR=/buildbot/dist_dirs/git_master-linux-ndk_translation_all/5366149 ndk_translation_all
FAILED: ninja: 'out/target/product/vsoc_x86/data/nativetest/arm/arm_insn_tests_arm_static/arm_insn_tests_arm_static', needed by 'out/target/product/vsoc_x86/obj/PACKAGING/ndk_translation_tests_intermediates/arm_insn_tests_arm_static_result.xml', missing and no known rule to make it
15:55:38 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
Return Code: 2

Change-Id: Idf95ef2e06526a0a31690420c923207db627605f
2019-03-11 16:48:29 +00:00
nelsonli
224e103308 Build System: Solve dependency problem for test
1. A test can add a runtime dependent test module by just setting
   LOCAL_REQUIRED_MODULES or LOCAL_TARGET_REQUIRED_MODULES. Then the dependent test
   module will be copied to testcase folder.
2. Do not install to $(TARGET_OUT_DATA) for testcase

BUG: 117224272

Test: 1. (a) vi cts/tests/tests/text/Android.mk
         (b) add LOCAL_REQUIRED_MODULES := CtsPrintTestCases
         (c) m -j CtsTextTestCases
         (d) Then, CtsPrintTestCases should also be built to testcase folder like below.
             ./target/product/generic_arm64/testcases/CtsPrintTestCases

Change-Id: I24ea3783486c54a05cfa9d3d0375b977afc230f8
2019-03-07 14:08:35 +08:00
Jeongik Cha
b806c44326 Clean up noisy error log in find-shareduid-violation.py
The script makes noisy error although fallback cmd succeed.

So make the script writes error log only if both of commands fail.

Bug: 124470143
Bug: 123664116
Test: m -j out/target/product/$(get_build_var TARGET_DEVICE)/shareduid_violation_modules.json
Test: And there is no error log in stderr
Change-Id: I3d4756066ee6904826c18754969fd4190bd02e1e
2019-02-16 10:50:56 +09:00
Jeongik Cha
ef26afdc27 Detect shareduid between different partitions
Find shareduid usage between the partitions(system, vendor, product).

Here is sample output

{
  "android.uid.system": {
    "product": [
      "Settings.apk"
    ],
    "system": [
      "framework-res.apk",
      "FusedLocation.apk",
      "Telecom.apk",
      "InputDevices.apk",
      "SettingsProvider.apk",
      "WallpaperBackup.apk",
      "KeyChain.apk"
    ]
  }
}

Bug: 123664116
Test: m -j out/target/product/$(get_build_var TARGET_DEVICE)/shareduid_violation_modules.txt
Change-Id: If2a75bf66b369cd3fad1744d08b6bfbfc624979c
2019-02-08 22:41:30 +09:00
Dan Willemsen
3b6f6fe8aa Stop using the files target for droidcore
This way if a BoardConfig.mk configures a specific image to exist (so it
doesn't end up as a folder on /system), but does not configure for it to
be created (like the device targets on AOSP that use a prebuilt), we
won't unnecessarily trigger the build system to build the contents.

Test: `m` before and after, comparing file lists
Test: check treehugger builds before/after
Change-Id: If0e4b958b3dfaa02771a5da70f970379635f904e
2019-01-14 21:46:31 -08:00
Dan Shi
6fe5bf0adb Copy shared libraries used by tests to testcases directory
This change collects the shared libraries files used by tests in
suite, and deploy the files to testcases/lib*. The shared libraries then
can be zipped in general-tests.zip and device-tests.zip. And the host
test can be run in TradeFed host based on build artifacts.

Bug: 111486845
Test: m -j general-tests; m -j device-tests
Confirm the test can run in testcases directory:
out/host/linux-x86/testcases$ ./net_test_avrcp/x86_64/net_test_avrcp
unzip general-tests.zip, confirm net_test_avrcp can run.

Change-Id: I4f9322118aa4891226ea318cbd1bcee6ca48b050
2018-11-04 19:51:59 -08:00
Julien Desprez
e483544cf5 Remove host proto lib from cts jars
The lib is already statically included in tradefed.jar.

Test: run cts-unit-tests
Bug: 118297021
Change-Id: I073b68216870b1e744ee35db82a7e03f11db6782
2018-10-23 09:38:09 -07:00
Colin Cross
d0dbeb3758 Always define sdk_addon as phony
dist-write-files will add dist targets to the sdk_addon target,
but the sdk_addon target is not declared as phony when building
with mm (ONE_SHOT_MAKEFILE set), causing:
build/make/core/main.mk:1495: error: writing to readonly directory: "sdk_addon"

Always define sdk_addon as phony even if ONE_SHOT_MAKEFILE is set.

Bug: 118144231
Test: mm
Change-Id: I99d14a98a7597ebd694c765f94b0d6f4486860dc
2018-10-22 10:42:44 -07:00
Dan Willemsen
dfb64ca033 Merge "Remove check_emu_boot, it's no longer necessary"
am: 6393560856

Change-Id: I89e3fc589dd2840fdea28b98f0de400d51a2a95a
2018-10-17 17:20:50 -07:00
Dan Willemsen
b1e3357962 Remove check_emu_boot, it's no longer necessary
Bug: 117859878
Test: treehugger
Change-Id: I4e9ade9b5b9dc7d494101bbd0b0eb2b245244337
2018-10-17 11:13:07 -07:00
Dan Willemsen
c466bc0203 Merge "Clean up DIST_DIR usages, move to dist-for-goals"
am: d3e8e5321f

Change-Id: Ib9defade594f2ccfe21aa2e6dc01e1641d12d9af
2018-10-17 10:38:52 -07:00
Dan Willemsen
7537fd050f Clean up DIST_DIR usages, move to dist-for-goals
soong_ui now guarantees DIST_DIR is set in the environment, so remove
the default.

Use dist-for-goals instead of writing directly into DIST_DIR.

When building the system image, use DIST_DIR from the environment
instead of from make. This will eventually stop working, but this will
work for now.

Bug: 117463001
Test: m dist  (check gpl_source.tgz, logs/product_copy_files_ignored.txt)
Test: m out/target/product/generic/product_copy_files_ignored.txt
Change-Id: Ice557e0a148602cb8eb154efb747d416f0d0db59
2018-10-16 23:37:51 -07:00
Colin Cross
4aa10a3cc5 Merge changes I9e73c0b8,Iac5c4327,Idf6fbc94
am: 7307de5e0c

Change-Id: Ifa95c4ec335d9bf913f851101f09c55840091dce
2018-10-01 19:15:18 -07:00
Colin Cross
8b6c94c744 Disable sdk_addon for mmm
mmm has a smaller view of the world and cannot generate sdk-addon
zip files.

Bug: 116818719
Test: m checkbuild
Change-Id: I9e73c0b84a42aaaa353704d6ab245b449166606d
2018-10-01 13:41:27 -07:00
Simran Basi
33724676b9 Merge "Create an artifact to output module-info and OWNERS files in source code"
am: 004b9b7b7d

Change-Id: I3536b4c6268659117237fd3b3001c8a208e841f9
2018-09-26 14:48:44 -07:00
Treehugger Robot
004b9b7b7d Merge "Create an artifact to output module-info and OWNERS files in source code" 2018-09-26 21:37:54 +00:00
Matt Wachowski
7318443ea1 Merge "Added rules to include verified boot config in zip"
am: 7e67802381

Change-Id: Ibbf4b6bc2f37621ab255123e417b8ea04dd61694
2018-09-26 10:28:21 -07:00
Matt Wachowski
7e67802381 Merge "Added rules to include verified boot config in zip" 2018-09-26 17:15:11 +00:00
Simran Basi
03f5253020 Create an artifact to output module-info and OWNERS files in source code
Bug: 114242886
Test: make dist -j owners
      make dist -j module-info

Change-Id: I6d00928c25e3213a5563e64806e0c04530161581
2018-09-24 16:31:29 -07:00
Nan Zhang
d332efd698 Merge commit 'ee16bfa6ca876affd27c07e28fdfb7c67dcd16fb' into stage-aosp-master
Test: m -j api-stubs-docs-jdiff
Change-Id: I927aadd930572365e823f4ae9636773a9820c9c8
2018-09-18 20:41:21 -07:00
Nan Zhang
e06305123b Delete apidiff.mk
Also remove the msg.mk files used for old apicheck.

And export jdiff-doc.zip generated by Soong.

Test: api-stubs-docs-diff
Bug: b/78245848
Change-Id: I329aa375623a7b7a121d58314dab694a326c9f0f
2018-09-17 15:33:13 -07:00
Matt Wachowski
9e4d5153b7 Added rules to include verified boot config in zip
Bug: b/78113934
Test: Local

Change-Id: I011a84e3804c6f2d217c723b9e05fd0f9a814e04
2018-09-14 09:53:14 -07:00
Brandon Lee
e17d8163c1 Merge "aidegen: add extra info to collect in module-info."
am: 076b905763

Change-Id: I3c32064f08f07d1e1dde130d5d248adf6519395c
2018-09-13 16:48:03 -07:00
Brandon Lee
5568c19ae1 aidegen: add extra info to collect in module-info.
- add "dependencies" and "srcs" to collect in module-info.mk.
- add "Srcs" in core/base_rules.mk

Bug: 112523202

Test: make out/target/product/generic_x86_64/module-info.json and
      generate out/target/product/generic_x86_64/module-info.json

Change-Id: I0669377b2e5e6b4ee225f1930bda208eff092dea
2018-09-12 17:39:32 +08:00
Dan Willemsen
127e2da2d3 Merge "Mark more sdk targets as PHONY"
am: 88207d0d65

Change-Id: Ia1b5757f64583f4763a939c80951cf792a5d5071
2018-09-10 18:57:49 -07:00
Dan Willemsen
921f581bef Mark more sdk targets as PHONY
These are used in various dist-for-goal targets even if we're not
currently building the sdks, so they always need to be marked with
.PHONY.

Test: m dist
Change-Id: I1e11ae37c6d0fd6ef8a3e293cf7409773c1bf3ab
2018-09-10 15:14:09 -07:00
yangbill
92ea6769da Merge "ATest: Change module_name from list to single string."
am: adee0d54d0

Change-Id: I5d51e26ae7231ce3b6109da214304a0336dd347c
2018-09-07 00:15:22 -07:00