Move the configuration for autogenerating test configs into Soong,
and add LOCAL_FULL_TEST_CONFIG so that Soong can specify the full
path to a generated test config.
Also add a java junit test config template.
Bug: 70770641
Test: m checkbuild
Test: atest CtsUiRenderingTestCases
Test: atest junit-params-test
Change-Id: I2e64bc33c949ab7b342be518f94a81a186fe9c07
Add actual module_name information to module-info.json, and atest can
get the actual module name instead of module_name with suffix.
Bug: 77288544
Test: make -j8
m out/target/product/generic_x86_64/module-info.json
Change-Id: I1e2dfced10db7ef5d31d26dfeb6a6c50a073a519
If LOCAL_TEST_CONFIG is set, it will be the default test config
and ignore the local AndroidTest.xml.
BUG: 110982517
Test: vi art/tools/ahat/Android.mk
set LOCAL_TEST_CONFIG := ahat_test.xml
add ahat_test.xml in local
m -j ahat;
Then, out/host/linux-x86/testcases/ahat/ahat.config
and ahat_test.xml should be the same.
Change-Id: I2f4ef735fca7d523bb637a18075512bdebf9826f
auto_test_config will only be set once for the same
$(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)
ATest should also treat the multilib variant modules as testable.
Fix auto_generated config may have chance to be set as 2nd_arch name
BUG: 111397357
BUG: 110820867
BUG: 80298359
Test: . build/envseup.sh
lunch aosp_x86_64-eng
make -j out/target/product/generic_x86_64/module-info.json
(check module-info.json for hello_world_test)
make -j hello_world_test
cat out/target/product/generic_x86_64/testcases/hello_world_test/hello_world_test.config
Change-Id: I69895b6373476c0053f2c6e657770d606ccfbcd1
So that we can start restricting non-phony targets to $OUT_DIR and
$DIST_DIR.
Test: add --writable=out/, see fewer warnings
Change-Id: I411fe4af732b1bce35d4a4c1e2a47b5f8a15e6b8
This CL is largely an adaptation of Change-Id
I774e6a38003734421591e51bed103802ff84f432
It adds the following variables:
- BOARD_AVB_PRODUCT_SERVICES_KEY_PATH
- BOARD_AVB_PRODUCT_SERVICES_ALGORITHM
- BOARD_AVB_PRODUCT_SERVICES_ROLLBACK_INDEX_LOCATION
- BOARD_PRODUCT_SERVICESIMAGE_FILE_SYSTEM_TYPE
- BOARD_PRODUCT_SERVICESIMAGE_EXTFS_INODE_COUNT
- BOARD_PRODUCT_SERVICESIMAGE_EXTFS_RSV_PCT
- BOARD_PRODUCT_SERVICESIMAGE_PARTITION_SIZE
- BOARD_PRODUCT_SERVICESIMAGE_JOURNAL_SIZE
- BOARD_PRODUCT_SERVICESIMAGE_SQUASHFS_BLOCK_SIZE
- BOARD_PRODUCT_SERVICESIMAGE_SQUASHFS_COMPRESSOR
- BOARD_PRODUCT_SERVICESIMAGE_SQUASHFS_COMPRESSOR_OPT
- BOARD_PRODUCT_SERVICESIMAGE_SQUASHFS_DISABLE_4K_ALIGN
- BOARD_PREBUILT_PRODUCT_SERVICESIMAGE
- BOARD_USES_PRODUCT_SERVICESIMAGE
- LOCAL_PRODUCT_SERVICES_MODULE
- PRODUCT_PRODUCT_SERVICES_BASE_FS_PATH
- PRODUCT_PRODUCT_SERVICES_VERITY_PARTITION
- PRODUCT_PRODUCT_SERVICES_PROPERTIES
- TARGET_COPY_OUT_PRODUCT_SERVICES
- TARGET_OUT_PRODUCT_SERVICES
- TARGET_OUT_PRODUCT_SERVICES_*
Bug: 80741439
Test: Successfully built product-services.img with one module in it, and flashed
on device. Also successfully built image with /system/product-services directory
and no /product-services partition.
Change-Id: I5d229f6ac729ea6df9ff1f14cee2e28972cd9b4d
This reverts commit 054f210fd5.
Reason for revert: Revert it again since BUG of 109736180 already be fixed.
Local verified for different build targets of
walleye_coverage-userdebug, marlin_coverage-userdebug
and make sure they can build pass.
BUG: 109736180
Test: lunch walleye_coverage-userdebug; make adbd_test
BUG: 73082610
Test: cd packages/apps/DocumentsUI/tests/; mma
Modify AndroidTest.xml to a not well-formed xml; mma
Then, it should build fail.
atest -v DocumentsUITests
Change-Id: Iadfcb28a4e3f685a66697de21f57ca5bdb8b7c9e
Relanding with change to not run on the darwin build since host init
verifier is not possible there.
Bug: 36970783
Bug: 110477913
Test: builds pass without failures
Test: builds fail with failures in init files used via LOCAL_INIT_RC,
PRODUCT_COPY_FILES, or TARGET_PREBUILT
Change-Id: Iae93705a9320159ed97328e615eaa3bc150e6442
Switch a use of `ndk` to the timestamp file that `ndk` depends on
itself.
Mark more module-specific rules as PHONY.
Test: diff build-aosp_arm.ninja (stripping _kati_always_build_)
Test: Turn on --warn_real_to_phony for Kati, see fewer warnings
Change-Id: I101ced4067780e38d18820f5d916596429087e49
Bug: 36970783
Test: builds pass without failures
Test: builds fail with failures in init files used via LOCAL_INIT_RC,
PRODUCT_COPY_FILES, or TARGET_PREBUILT
Change-Id: Ia98793776b365733ca8f0174dc228326a6edf041
This reverts commit 479da2f3bb.
Reason for revert: <revert for b/109736180 #8>
Bug: 109736180
Test: lunch walleye_coverage-userdebug; make adbd_test
Change-Id: I090893e20a2dab0651551361ebf65c26b95a25f2
make <test> should fail if the test has a poorly configured
atest configuration
BUG: 73082610
Test: cd packages/apps/Bluetooth/tests/unit; mma
Modify AndroidTest.xml to a not well-formed xml; mma
Then, it should build fail.
atest -v BluetoothInstrumentationTests
Change-Id: I774b4eb81a1b9e9ae31de949aea995d2f258e9a1
This commit adds ".vendor" suffix to the modules specified in
LOCAL_REQUIRED_MODULES when BOARD_VNDK_VERSION is not empty and it is
building the vendor variant.
Test: Create a vendor module with LOCAL_REQUIRED_MODULES to a
vendor_available shared library.
Change-Id: If448f682572157d0687cda3a72f9bab0f34d7f0d
BUG: 74844131
Test: cd bionic/; mm (auto generating the test config in out/)
atest bionic-benchmarks (full testing in atest)
Change-Id: I0497eed876640893d0b82d4cde384d3608cf4875
A test can be disabled in two ways:
1. Add the test name to ALL_DISABLED_PRESUBMIT_TESTS variable.
Integration tests (tests inside TradeFed) can only be disabled in
this way.
2. In module config, set LOCAL_PRESUBMIT_DISABLED to true. This works
for tests with build target.
This change allows tests to be skipped in presubmit check to be saved in
a list that's included in test-mappings.zip build artifact.
Bug: 74971025
Test: m dist -j test-mapping
Change-Id: I6e3016b017ce1ade024dc4ded72a10c778b88e7f
LOCAL_VINTF_FRAGMENTS/vintf_fragments are
used to specify what manifest fragments should be installed
by a target.
Test: fragments get installed to the right location
Test: broken fragment gets detected
Test: boot device and verify service is working and manifest is updated
Test: verify OTA package contains fragments
Bug: 66917623
Change-Id: I21abe65a31b8c3d255c8ccd80e102ff3acb23105
Not all native tests have the "tests" tag so adjust the logic to be:
NATIVE_TESTS||NATIVE_BENCHMARKS||(APPS&&tags==tests)
Bug: 74339384
Test: Rebuilt module-info.json, verified native tests now have
their suite set to null-suite and have auto_test_config=True
Double checked a frameworks App unittest as well.
Change-Id: Idea00adcebfc1a78b0c6d8ade40feddb1e90ed83
The LOCAL_COMPATIBILITY_SUITE tag is used to package tests and
auto-generate test configs for use in the test infrastructure
and locally by atest.
Rather than update hundreds of makefiles across the tree, this
change adds significant atest support to many unittests.
Bug: 73000943, 72969679, 71510529
Test: `atest NotificationStressTests` works as expected.
Change-Id: I1b0a779b8366aee4b4df98181267f72fcb68916a
Allows target modules to directly request host modules they
require to be built and installed as well.
Bug: 72761631
Test: Added LOCAL_HOST_REQUIRED_MODULES to a target apk test and
the host module was built.
Change-Id: I5aca11b3ba8b54676f068d337f1c9ba0e0b01997
Fixes lots of warnings of the form:
build/make/core/base_rules.mk:606: warning: overriding commands for target `out/target/product/generic_arm64/testcases/simpleperf_unit_test/testdata/perf.data'
build/make/core/base_rules.mk:606: warning: ignoring old commands for target `out/target/product/generic_arm64/testcases/simpleperf_unit_test/testdata/perf.data'
Test: lunch aosp_arm64-eng; m device-tests
Change-Id: I32575d25f3aef1d4000fcb63d6ffc025ad21f937
PLATFORM_SYSTEMSDK_VERSIONS is the list of System SDK versions that the
platform is supporting. Contrary to the public SDK where platform
essentially supports all previous SDK versions, platform support only a
few recent System SDK versions, since some of old System APIs are
gradually deprecated, removed from the following SDKs and then finally
deleted from the platform. This will be part of the framework manifest.
The list can be specified by setting PLATFORM_SYSTEMSDK_MIN_VERSION. If
it is set to an old version number, then System SDKs from the version
to the current version (PLATFORM_SDK_VERSION) are considered to be
supported by the platform. If PLATFORM_SYSTEMSDK_MIN_VERSION is not set,
only the latest System SDK version is supported.
Next, BOARD_SYSTEMSDK_VERSIONS is the list of System SDK versions that
the device is using. This is put to the device compatibility matrix
device is using. The device and the platform is considered as compatible
only BOARD_SYSTEMSDK_VERSIONS in the device compatibility matrix are
in the PLATFORM_SYSTEMSDK_VERSIONS in the framework manifest.
When BOARD_SYSTEMSDK_VERSIONS is set, a Java app or library in vendor or
odm partitions which didn't specify LOCAL_SDK_VERSION is forced to use
System SDK. Also, the build system does the additional integrity check
to ensure that LOCAL_SDK_VERSION is within BOARD_SYSTEMSDK_VERSIONS or
PLATFORM_SYSTEMSDK_VERSIONS (if BOARD_SYSTEMSDK_VERSIONS isn't set).
Bug: 69088799
Test: m -j
Test: BOARD_SYSTEMSDK_VERSIONS=P m -j
Change-Id: If4d59f6030e4cc402e015701d0caf94aeec37263
Currently we determine if a test artifact has multiple build
outputs by checking if it is NATIVE_TEST, NATIVE_BENCHMARK, or
LOCAL_MULTILIB and declare the module is_native.
This is technically not true therefore let's use a different
variable to determine if we need multiple architecture directories.
Bug: 71554249
Test: make sl4a -j ; Results in an autogenerated empty configuration file.
Change-Id: I17c8f3ef7e1cd502b57e25c71688f12a35a9787d
This change allows one to run atest <module name>. The TradeFed test
config file will be automatically created in testcases directory based
on the settings.
Bug: 69929803, 69932044
Test: m -j NotificationStressTests libminijail_test
add following lines in notificationtests/Android.mk,
before "include $(BUILD_PACKAGE)"
LOCAL_COMPATIBILITY_SUITE := general-test
Change-Id: Ib5e9cd152d957b5d5beb6ed23a899a021a7e06d6
* Moves the test data logic up to before suite logic.
* Saves the source to relative dest pairs.
* Re-uses the saved source to relative dest pairs when generating
the src:dst pairs for suites.
Bug: 69802886
Test: Build a native test with test data and ensured test data
ended up in each arch specific destination folder.
Change-Id: I52cf8771487fb52276f5e6aae5b8eecb222544d7
The system_$(VER) can be set in LOCAL_SDK_VERSION, and the apk will use
android_system.jar at build time.
If LOCAL_SDK_VERSION is not defined and this module is installed in
vendor.img, LOCAL_SDK_VERSION is set to system_current.
Bug: 67724799
Test: 1. build && run on taimen
2. LOCAL_SDK_VERSION:=system_27 in ims.apk && build ims.apk && check
the vsdk_v27_intermediates.
Merged-In: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
Change-Id: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
(cherry picked from commit ef212cbe8d)
Use $(prefix)CLANG_SUPPORTED from Soong to control whether to use clang
for host builds or not. It's fairly general, but I only expect it to be
used to so that Windows builds can be switched between GCC and Clang
with a single switch.
Also separate native-host-cross from native-host so that it's easier to
build all possible windows modules.
Bug: 69933068
Test: m native-host-cross
Test: switch clang on and off, grep w64.*g++ out/build-aosp_arm.ninja
Change-Id: I205c5bc6739b72a539ece935381107ec1dd5bd48
Test: m out/target/product/<lunch target>/module-info.json
And I see the following line in module-info.json:
"CtsSampleHostTestCases": { "class": ["JAVA_LIBRARIES"], "path":
["cts/hostsidetests/sample"], "tags": ["tests"], "installed":
["out/host/linux-x86/framework/CtsSampleHostTestCases.jar"],
"compatibility_suites": ["cts", "general-tests", "vts"] },
Change-Id: I67a78de4153c762977b145ed62ca8b6ecd0b7947
partition_tag is now set to either VENDOR_, OEM_, or ODM_
even when LOCAL_[VENDOR|OEM|ODM]_MODULE isn't set but LOCAL_MODULE_PATH
is explicitly set to under $(TARGET_OUT_[VENDOR|OEM|ODM]).
Test: build walleye
Change-Id: I0f902061889fe0af1c39f6222e54faa80dd15794
If anything looks like a module name instead of a path (so if it doesn't
have a / in it), forbid it from being in LOCAL_ADDITIONAL_DEPENDENCIES.
Phony modules should not be dependencies, since they're never considered
clean, and will force rebuilds. It will also force installation when
we're only attempting to checkbuild. Most of the time
LOCAL_REQUIRED_MODULES should be used instead, which will trigger the
required modules to be installed if the local module is installed.
Bug: 68042065
Test: build/soong/build_test.bash on aosp and internal
Change-Id: I058ed6734d895eba3417b1d47c7f4a6b341bc137
When limiting ckati to 768kB of stack, it would crash with a segfault
when processing this recursive expanded variable. So always use := to
turn this into a simple variable.
I measured this using 772kB of stack in ckati on sdk_x86_64-eng. With
this change, the next highest stack user is 106kB.
Bug: 36182021
Test: ulimit -s 768; lunch sdk_x86_64-eng; m nothing
Test: build-sdk_x86_64.ninja is identical before/after this change
Change-Id: I20a6396db173decf178107e3aac6cf089e541e36
bug: 30972906
bug: 63920015
Test: doing zipinfo on the produced apks after build.
Test: fugu build
This reverts commit f69441b76b.
Change-Id: I6b029f2044385f3e3fa332091a9244cec79d2474
Broke Fugu build. Will work on a workaround for it.
bug: 30972906
bug: 63920015
This reverts commit 09dfe6739a.
Change-Id: I5a8b8de4ec98ae44808762ca1ba974ce89bebb05
To ensure the verified boot work does not make ART run
dex code uncompressed in memory, make the build system
generate uncompressed dex files in APKs.
The alignment of STORE files in an APK is already handled.
bug: 30972906
bug: 63920015
Test: doing zipinfo on the produced apks after build.
Change-Id: I0ccdeae5d674b2a409a1343c4a14699c7bf0defb
to allow a host module to specify LOCAL_TARGET_REQUIRED_MODULES
to indicate that the device module should be built.
Bug: b/64580523
Test: add "LOCAL_TARGET_REQUIRED_MODULES := \
CtsDeviceOsTestApp CtsHostProcfsTestApp" to \
cts/hostsidetests/os/Android.mk, run \
`m -j CtsOsHostSideTestCases`, check \
that CtsDeviceOsTestApp.apk was built
Change-Id: I1457a51f7cd922c059aa62955d8693b1a7539fd9
We no longer need to use $PRODUCT_OUT/obj/lib as a linker path, we can
directly specify the shared libraries to the linker.
So install both into the standard built module path, and declare a copy
rule to the old OVERRIDE_BUILT_MODULE_PATH location. This way we can
incrementally move users from the old location to the standard path.
Test: m -j
Change-Id: I3c6140ac26e5e5ca486337ce0192e15e530da32c
Merged-In: I3c6140ac26e5e5ca486337ce0192e15e530da32c
Updates the test module build rules to also copy over any
extra test configs that match the naming convention of
LOCAL_MODULE_*.config
Bug: 37315907
Test: forrest test HelloWorldTests_HalloWelt
Change-Id: Ie476285fe780cb19264f1fb0294008b21893a4ed
This CL addresses the problem that native tests build for multiple
architectures and also build for host.
First it restructures each testcase folder to the following layout:
<testcase>/<testcase>.config
<testcase>/<arch 1>/testcase
<testcase>/<arch 2>/testcase
Secondly it now uses the new soong-zip prefix capability to
separate out host and target testcases in the device-tests &
general-tests zip files.
Bug:36692141
Test: `make device-tests general-tests cts -j` &
ensured all built successfully.
Change-Id: I4e8b084ee56fa8940914911649ff35507d87eb27