summaryrefslogtreecommitdiff
path: root/sdk/cc_sdk_test.go
AgeCommit message (Collapse)Author
2021-05-06Make sdk tests more realisticPaul Duffin
The tests use <sdk>_<module>_<version> as the format for a versioned sdk member name but the format should be <sdk>_<module>@<version>. This change corrects it and also fixes a similar issue in an error message. Bug: 181569894 Test: m nothing Change-Id: I8be0db4bcd0b6f4d6fbdf9e402ef7257fae8e18b
2021-04-24Make order of properties in snapshot module consistentPaul Duffin
Previously the compile_multilib property was added after the member list properties at the top level but before them in the target.os level. This change makes it always be added before them. Bug: 186290299 Test: m nothing Change-Id: I01fe272933fd11f7f730cc379f60fb2ce70f2114
2021-04-01Merge ""current" is implicitly added to stubs.versions"Treehugger Robot
2021-04-01"current" is implicitly added to stubs.versionsJiyong Park
So far, when a library `libfoo` has `stubs.versions: ["10", "11"]`, then `shared_libs: ["libfoo"]` is linked to the version 11 of the stub. This requires the author of `libfoo` to manually update the property whenever a new version is introduced. Otherwise, clients are not able to use the newly added APIs because the latest stub is for an old version. This change eliminates the need for manual updating. "current" version is always implicitly added to `stubs.versions`. It is added even when nothing is set on the property, if `stubs.symbol_file` is set. i.e. ``` cc_library { name: "libfoo", stubs: { symbol_file: "libfoo.map.txt", // no versions: [...] needed }, } cc_library { name: "a_client", shared_libs: ["libfoo"], apex_available: ["myapex"], min_sdk_version: "29", } apex { name: "myapex", native_shared_libraries: ["a_client"], min_sdk_version: "29", } ``` `a_client` links to the "current" stub of `libfoo` that has all symbols shown in the map file. Note that, above doesn't mean that the client has unlimited access to APIs that are introduced even after the min_sdk_version of the client (29 in this example). The use of such APIs still has to be guarded with `__builtin_available` check. Bug: N/A Test: m Change-Id: I70bb1600c18e74d36c6b24c3569d2149f02aaf96
2021-03-25Disallow non-existent paths in sdk packagePaul Duffin
Test behavior was changed a while ago so that tests by default ignore non-existent source paths (unless they explicitly check for/rely on them). Prior to that CheckSnapshot() could detect when files were missing from the snapshot but it no longer can. This change disallows non-existent source files in all the sdk tests which means that they are disallowed when processing the snapshots as they use the same preparers as were used to process the sources. This caused a test failure which has been temporarily ignored and has a TODO and bug associated with it. Bug: 183184375 Test: m nothing Change-Id: I969d8515d20ef5ae515f2b5f93d8ed4e4f8ede75
2021-03-25Improve sdk snapshot testingPaul Duffin
The sdk produces snapshots that are expected to be unpacked in one of the Android repos. Often that can lead to issues due to conflicts between the source and prebuilts. This change attempts to avoid those conflicts by testing the different ways that those files can be used. With the existing test to cover adding the snapshot This change will cause the sdk tests to check the following: 1) Snapshot on its own (already done). 2) Snapshot plus original source where the original source is preferred. 3) Snapshot plus original source where the snapshot is preferred. It also adds the ability for tests to provide their own custom checkers to verify the result of each of the previous tests. This change reveals a number of bugs already present. Rather than attempt to fix them this change adds the ability to specify error handlers for the two cases that mix source and snapshot to allow those errors to be temporarily ignored while allowing the majority of the tests to benefit from this improvement. Each of those failures has a TODO and bug associated with it. Bug: 183184375 Test: m nothing Change-Id: I105233195074dbe7a6422b6dfc5486e74398ea15
2021-03-22Remove usages of FixtureFactory from misc packagesPaul Duffin
These packages have already been migrated to use per test build directory so have no need for a FixtureFactory. Bug: 183235980 Test: m nothing Change-Id: I667d1d992caaf0f615de91f89efdae11c44986c2
2021-03-13Stop sdk package depending on testing.T being embedded in TestResultPaul Duffin
This change is in preparation for removing testing.T from TestResult. Bug: 181070625 Test: m nothing Change-Id: I67535aff0d894e6e3d8456b75540f340af853355
2021-03-11Support test fixtures in sdk packagePaul Duffin
Bug: 181070625 Test: m nothing Change-Id: Ifc96992e54c1b1d89a82b88ab27e555ae267a51e
2021-03-11Switch CheckSnapshot from a testSdkResult method to a functionPaul Duffin
This will allow the testSdkResult to be replaced with the TestResult when switching sdk package to use test fixtures. Bug: 181070625 Test: m nothing Change-Id: Ieca63f4c189f5e804102aeb4073289ea03143b6e
2021-03-03Make apex.updatable default to true.Mathew Inwood
Update tests accordingly and add a new test case for this. Bug: 180375550 Test: Treehugger Change-Id: I835e189f4dae1e4bc79dce7bc59b7b9c7bd19fd9
2021-02-22Generated headers may not be arch specificPaul Duffin
Previously, it was assumed that generated headers must be arch specific and so prevented the fields referencing the paths to those headers from being automatically optimized by the sdk generation code. That is not always the case, e.g. with headers generated from protos so this change allows those fields to be optimized. Bug: 180427921 Test: m nothing Change-Id: Id2af419d58ae3c30ea6d9e87f71e33a9ff6ba13b
2021-02-22Fix the snapshot handling of generated headersPaul Duffin
Previously, the snapshot handling code did not preserve the directory structure of generated include directories and instead just copied the headers into the same module specific directory and added that single directory to the export_include_dirs (or similar) property. That had a couple of issues: * The include directory was repeated in the ..._include_dirs property. * It did not work when the include directories overlapped. In the latter case it had a couple of issues: * Code which compiled fine against the source would not compile against the prebuilt. * Header files were duplicated in the output. e.g. assume the following generated header file structure: foo/ foo.h bar/ bar.h baz/ baz.h When the sdk snapshot was passed include directories of "foo", "bar" and headers of "foo/foo.h", "bar/bar.h", "bar/baz/baz.h" it would generate a snapshot with the structure: include_gen/ foo.h bar.h baz/ baz.h And: export_include_dirs: ["include_gen", "include_gen"] However, when the include directories overlapped and include directories of "foo", "bar" and "bar/baz" were passed in the directory structure would be the same and the export_include_dirs would contain 3 usages of "include_gen". That meant that source code which used the following would build against the source (because it would find "baz.h" in the "bar/baz" include directory) but would fail when built against the prebuilts because the "include_gen" directory did not contain "baz.h": #include "baz.h" This change preserves the input directory structure for generated files in a similar way to how it does it for source files. So, the snapshot structure looks something like this: include_gen/ foo/ foo.h bar/ bar.h baz/ baz.h And: export_include_dirs: [ "include_gen/foo", "include_gen/bar", "include_gen/bar/baz", ], Bug: 180427921 Test: m nothing Change-Id: Id69eef8cf5eecd033841d3b7cd0c044a697ce404
2021-02-22Differentiate usages of word "include" in cc_sdk_test.goPaul Duffin
A number of tests in cc_sdk_test.go use "include" for the input include directory which results in the output containing "include/include" (because the snapshot code uses "include" as the directory into which native headers will be output). This change switches the inputs from "include.." to "myinclude.." to differentiate between the two sources. Bug: 180427921 Test: m nothing Change-Id: Iba1e6d94647c74b31307b18254c03580e64c91cf
2021-02-22Add sdk test for incorrect handling of generated headersPaul Duffin
Bug: 180427921 Test: m nothing Change-Id: I3d7ff2625eb5c6f5ed5e094da2a5ce6acc0c987c
2021-02-22Separate versioned/unversioned testing in sdk/cc_sdk_test.goPaul Duffin
Uses new capability added in previous change to separate the testing of the versioned and unversioned snapshots in sdk/cc_sdk_test.go. Any test that generated an _snapshot module that simply listed the modules and did not check a new type only tests the unversioned output to reduce the duplication and cost of changing the tests. Bug: 180479010 Test: m nothing Change-Id: If11f82b3dd8ec79110b3a2f5adf193b6464000ab
2020-11-04Always set apex_available in SDK snapshots.Martin Stjernholm
Also fix //apex_available:platform that could get lost in the generated apex_available properties. It only happened if a module didn't specify an apex_available setting and then got extra entries from apex.BaselineApexAvailable. Test: Build ART SDK with libnativeloader_lazy in the SDK, and check that the generated prebuilt module has //apex_available:platform (before https://r.android.com/1480559). Change-Id: I9df20aee63455932a7e558993f0f26769cb02792
2020-10-29Disable sanitizer flags and output files for sanitizer-enabled SDK members.Martin Stjernholm
Test: build/soong/soong_ui.bash --make-mode \ TARGET_PRODUCT=aosp_blueline_hwasan \ TARGET_BUILD_VARIANT=userdebug nothing Test: build/soong/scripts/build-aml-prebuilts.sh \ runtime-module-{sdk,host-exports} \ platform-mainline-{sdk,test-exports} Check that generated Android.bp files don't differ Bug: 171754462 Change-Id: Ieef40ff202ceda2d9e613a5d9295f5c9d8160626
2020-10-23Enable sdk and sdk members in os_arch granularityJiyong Park
This amends Idad7ef138cdbcbd209d390bf6c10ca8365d4619f. With the change, when there is a member that returns IsHostOsDependent() == true, the sdk having the member and the member itself are disable for host and only the os that the member supports is explicitly enabled. However, that change will cause a problem when we add the support for the linux_bionic_arm64 target. The target is not enabled when building sdk snapshots. The only linux_bionic target that is enabled is 'linux_bionic_x86_64'. However, since the granularity is os which is linux_bionic, the snapshot is generated as follows. cc_prebuilt_binary { target: { host: { enabled: false, }, linux_bionic: { enabled: true, }, linux_bionic_x86_64: { srcs: ["x86_64/bin/..."], }, // no srcs for linux_bionic_arm64 }, } Above is a problem for linux_bionic_arm64 target because the target is enabled (via linux_bionic.enabled: true), but srcs is not provided. To fix the problem, the enabling of a target is done in a target (os_arch) granularity, rather than os granularity. For example, above now becomes ... cc_prebuilt_binary { target: { host: { enabled: false, }, linux_bionic_x86_64: { enabled: true, srcs: ["x86_64/bin/..."], }, }, } Only the targets that the snapshot actually can provide srcs are enabled and the rest of the host targets are disabled. Bug: 159685774 Test: m nothing Test: build/soong/scripts/build-aml-prebuilts.sh runtime-module-host-exports Change-Id: Ibca48c40f6dc4628b5f4bfa4ceb68ebe0973cc81
2020-10-09Revert "Make lots of tests run in parallel"Colin Cross
This reverts commit 323dc60712491c71ccdc5363c42df61f0a192487. Reason for revert: Possible cause of test instability Bug: 170513220 Test: soong tests Change-Id: Iee168e9fbb4210569e6cffcc23e60d111403abb8
2020-10-06Make lots of tests run in parallelColin Cross
Putting t.Parallel() in each test makes them run in parallel. Additional t.Parallel() could be added to each subtest, although that requires making a local copy of the loop variable for table driven tests. Test: m checkbuild Change-Id: I5d9869ead441093f4d7c5757f2447385333a95a4
2020-10-01Explicitly specify visibility in sdk/module_exports snapshotPaul Duffin
This change ensures that each prebuilt in a snapshot explicitly specifies its visibility even when that visibility is the current default. This is done for two reasons: 1. It simplifies a follow up change that adds visibility rules to an existing set of rules. 2. It ensures that the snapshots are independent of the current Soong default visibility. The latter is important because we intend to switch from modules being visible to everyone by default (i.e. //visibility:public) to only being visible to modules in the same package (i.e. //visibility:private). By making the snapshots of modules that do not specify any visibility explicitly specify that they are "//visibility:public" it ensures that the snapshots will not need to be changed when the default changes. Bug: 168301990 Test: m nothing Change-Id: Ia034f4a1e5124c17f46d73b0e9a6c5f2a251038e
2020-09-29Merge "Retain all stubs versions in the snapshot."Martin Stjernholm
2020-09-28Retain all stubs versions in the snapshot.Martin Stjernholm
This is a quick fix to avoid build failures due to prebuilts lacking stubs versions that the sources have, which causes dependencies on older version stubs fail on master-art-host where the sources of e.g. Bionic are no longer available. More work is required to make the version handling of stubs DTRT - a TODO comment outlines it. Test: m nothing Test: `m runtime-module-sdk`, check that the generated Android.bp has the full stubs.versions list like the sources. Bug: 169373910 Change-Id: I0ebfaf94f9d45a0e58d9785c40e7cea626f0ab83
2020-09-25Propagate all sanitizer flags in SDK snapshots.Martin Stjernholm
liblog snapshot needs to sanitizer.address=false to avoid cycle in asan builds. Adding that separately in library_sdk_member.go would start to feel like whack-a-mole, so the snapshot generation is instead extended to handle nested property structs. This uses the BpPropertySet.AddProperty extension in https://r.android.com/1423510, and common value optimisation now recurses into non-anonymous structs, instead of comparing them as a whole. Test: m nothing Test: `m SANITIZE_TARGET=address nothing` with prebuilts/runtime present in the manifest and a fresh snapshot made with this Bug: 151303681 Change-Id: I472554117a488e6c800045cb2ed59377778571a4
2020-09-11Propagate recovery_available property through to sdk snapshotPaul Duffin
Needed for jni_headers which is marked as recovery_available because libchrome is also marked and that library is used by others that are the recovery partition. There may be other dependency paths that require jni_headers to be recovery_available that was just the first one found. Bug: 168301990 Test: m nothing Change-Id: I916ecfe7700b9c153b29115e849da148fc7e7a76
2020-09-03Propagate vendor_available property through to sdk snapshotPaul Duffin
Test: m nothing Change-Id: I68dcba111d290ae8a84c2bc023e1a4e0eaa43408
2020-08-21Propagate sanitize.never flag in SDK snapshots.Martin Stjernholm
This is necessary to not get dependencies on libclang_rt sanitizer libs for the CRT objects which lead to cyclic dependencies in sanitizer builds. Test: `lunch aosp_blueline_hwasan-userdebug && m nothing` in a tree that has the prebuilts created and unzipped from `build/soong/scripts/build-aml-prebuilts.sh runtime-module-{sdk,host-exports}` Bug: 151303681 Change-Id: I3f848a084280bdc3ade4b74df03e981d8cc61222
2020-08-19Reland: Deduplicate APEX variants that would build identicallyColin Cross
APEX variants that share the same SDK version and updatability almost always use identical command line arguments to build but with different intermediates directories. This causes unnecessary build time and disk space for duplicated work. Deduplicate APEX variants that would build identically. Create aliases from the per-APEX variations to the new shared variations so that the APEX modules can continue to depend on them via the APEX name as the variation. This has one significant change in behavior. Before this change, if an APEX had two libraries in its direct dependencies and one of those libraries depended on the other, and the second library had stubs, then the first library would depend on the implementation of the second library and not the stubs. After this change, if the first library is also present in a second APEX but the second library is not, then the common variant shared between the two APEXes would use the stubs, not the implementation. In a correctly configured set of build rules this change will be irrelevant, because if the compilation worked for the second APEX using stubs then it will work for the common variant using stubs. However, if an incorrect change to the build rules is made this could lead to confusing errors, as a previously-working common variant could suddenly stop building when a module is added to a new APEX without its dependencies that require implementation APIs to compile. This change reduces the number of modules in an AOSP arm64-userdebug build by 3% (52242 to 50586), reduces the number of variants of the libcutils module from 74 to 53, and reduces the number of variants of the massive libart[d] modules from 44 to 32. This relands I0529837476a253c32b3dfb98dcccf107427c742c with a fix to always mark permissions XML files of java_sdk_library modules as unique per apex since they contain the APEX filename, and a fix to UpdateUniqueApexVariationsForDeps to check ApexInfo.InApexes instead of DepIsInSameApex to check if two modules are in the same apex to account for a module that depends on another in a way that doesn't normally include the dependency in the APEX (e.g. a libs property), but the dependency is directly included in the APEX. Bug: 164216768 Test: go test ./build/soong/apex/... Change-Id: I2ae170601f764e5b88d0be2e0e6adc84e3a4d9cc
2020-08-03Disable all host OS variants except those explicitly included.Martin Stjernholm
Necessary to avoid problems with implicitly enabled host OS'es, e.g. linux_glibc getting enabled when we only supply a linux_bionic linker in runtime-module-host-exports. That will then cause a non-functional prebuilt to take precedence over source if the prebuilt is preferred. We don't do this for device since we so far only support a single device OS (android). This introduces the notion that SDK member types can be host OS dependent or not. That way java members with host prebuilts don't get restricted to a specific host OS. Test: m nothing Test: build/soong/scripts/build-aml-prebuilts.sh runtime-module-host-exports Check that the generated Android.bp correctly disables the bionic linker prebuilt for linux_glibc. Test: art/build/apex/runtests.sh on master-art with an updated runtime SDK snapshot Test: art/tools/buildbot-build.sh {--host,--target} on master-art with an updated runtime SDK snapshot Bug: 160349757 Change-Id: Idad7ef138cdbcbd209d390bf6c10ca8365d4619f
2020-07-17Set compile_multilib for SDK snapshots for device.Martin Stjernholm
Previously compile_multilib was ignored for device and defaulted to "both", which could lead to an internal inconsistency in the snapshot if a member was 32- or 64-only. This also implements common property optimisation for compile_multilib, by adding a struct that can be extended to other properties in the future. Test: m nothing Bug: 151303681 Change-Id: I3e96222858e5e755173aca03508a23c431977e2a
2020-07-17Add compile_multilib properties to all native prebuilts (reland).Martin Stjernholm
There was a special case in cc_prebuilt_binary only, which resulted in prebuilt libraries getting both 32 and 64 bit variants even when their sources only had one of them, and the other variant would be defunct since it wouldn't get any prebuilt artefact. This moves the handling of compile_multilib completely to the common update code, so that SDK members don't need to deal with it. It doesn't take SDK member defaults into account, which means a bit more boilerplate in the snapshots, but it's simpler and less error prone (different SDK member types have different defaults). This relands https://r.android.com/1359962 after disabling the SDK tests on mac once and for all. Bug: 151303681 Test: `go test -v ./sdk` in build/soong on mac and linux Change-Id: I05f6603b2ac9b8676b25c3e297165ca23284e9cc
2020-07-16Add support for SDK tests with LinuxBionic OS type.Martin Stjernholm
Break apart test helpers a bit to make it possible to enable LinuxBionic in a single test, and add LinuxBionic support to cc.GatherRequiredDepsForTest. Test: m nothing Bug: 160349757 Change-Id: Iace1024c964cee2308c130c945daef9e46c18c66
2020-07-15Disable all SDK snapshot generation tests on mac.Martin Stjernholm
We frequently miss putting in the per-test skip condition, and since mac isn't tested in presubmit this leads to build breakages and time consuming reverts. To avoid that this blanket disables all the SDK tests on mac. It's not used there and we got test coverage in many linux-based builds. Bug: 145598135 Bug: 161315642 Test: `go test -v ./sdk` in build/soong on mac and linux Change-Id: I2aea92fef2c0f8c2742396fe36610501dc5a6f0f
2020-07-15Revert "Add compile_multilib properties to all native prebuilts."Charles Chen
This reverts commit 1e9c2677fdb3f1d615863d87c64ad9ea2fc9007b. Reason for revert: Break build Bug: 161315642 Change-Id: Ibf3d5e88412327e8f08d08272b75cd3df34a71e5
2020-07-11Add compile_multilib properties to all native prebuilts.Martin Stjernholm
There was a special case in cc_prebuilt_binary only, which resulted in prebuilt libraries getting both 32 and 64 bit variants even when their sources only had one of them, and the other variant would be defunct since it wouldn't get any prebuilt artefact. This moves the handling of compile_multilib completely to the common update code, so that SDK members don't need to deal with it. It doesn't take SDK member defaults into account, which means a bit more boilerplate in the snapshots, but it's simpler and less error prone (different SDK member types have different defaults). Bug: 151303681 Test: m nothing Test: build/soong/scripts/build-aml-prebuilts.sh art-module-host-exports Check that the generated Android.bp passes Soong. Change-Id: Ib73444c6788ee1c78480bdb103aa2b8ae8f2c63c
2020-07-10Differentiate sdk snapshot include dir by os typePaul Duffin
Test: m nothing Change-Id: Ide032aa64bb1fee69969c5e007bee6643d475309
2020-07-07Prepend default to allow overriding in the bp file.Martin Stjernholm
Bug: 143948100 Bug: 151303681 Test: m nothing Change-Id: Iefcf4fbe9d2971ce267242185165f0c38f68db30
2020-07-07Do not follow SDK member dependencies for APEX payloads.Martin Stjernholm
Test: m nothing Test: `m` with prebuilts/runtime in the manifest (along with other fixes) Bug: 151303681 Change-Id: I450d476975c7ab4434228b8c4baf3af192142211
2020-06-17Propagate unique_host_soname to cc_library prebuilts.Martin Stjernholm
Test: m nothing Test: Check on go/Android.bp that cc_prebuilt_library supports unique_host_soname Bug: 158743135 Change-Id: Ie02a5cae057fb9092c226d8c5b7f63e1f66ad066
2020-05-28Propagate flags necessary for a prebuilt of the Bionic linker.Martin Stjernholm
The flags are necessary to avoid implicit dependencies on crt libs, libc, and the linker (recursively). The reason cc_prebuilt_binary react to these flags is that they can affect the install rules. Test: m nothing Test: art/test/testrunner/run_build_test_target.py art-linux-bionic-x64 on a master-art branch using snapshot built from runtime-module-sdk and runtime-module-host-exports Bug: 152255951 Change-Id: I6b2fe92d105d1f446fffd00bd3267a416f75efb7
2020-05-08Retry: Fix snapshot of a host/device cc_library with stubsPaul Duffin
Change since last attempt: Disable test that breaks on darwin. Adds a test that fails with unknown property android.stubs.versions and then fixes that by marking the field from which that property is created with 'ignored-on-host' and implemented the isHostVariant on *osTypeSpecificInfo. Bug: 155628860 Test: m nothing Change-Id: Ia4e744c9e799d5adaf8a2f761516f568ec363ad4
2020-05-08Revert "Fix snapshot of a host/device cc_library with stubs"Greg Kaiser
Revert submission 1302576 Bug: 156054601 Reason for revert: Presumed root cause of build break. Reverted Changes: Ifc8116e11:Detect invalid arch specific properties in snapsho... I7ebd33307:Adds support for 'ignored-on-host' I167b47a13:Fix snapshot of a host/device cc_library with stub... Change-Id: Ibccce5286605bb71c6be3b3550ba86d8b7e24fa7
2020-05-07Fix snapshot of a host/device cc_library with stubsPaul Duffin
Adds a test that fails with unknown property android.stubs.versions and then fixes that by marking the field from which that property is created with 'ignored-on-host' and implemented the isHostVariant on *osTypeSpecificInfo. Bug: 155628860 Test: m nothing Change-Id: I167b47a1374f541aa09d7e045972d740f1d9009c
2020-04-27Do not propagate dynamic dependencies for stub libs.Martin Stjernholm
Test: m nothing Test: Build an SDK snapshot including libc, check that the generated cc_prebuilt_library_shared for it is a stub that doesn't depend on ld-android. Bug: 152255951 Bug: 154310674 Change-Id: Ie5ec02aebdf00b75756a6eda40db821488d30065
2020-04-06Do not propagate the stub symbol file to prebuilts.Martin Stjernholm
This partially reverts https://r.android.com/1278193. The propagated symbol files contain all versions, even though only one is applicable in a given SDK snapshot. It's uncertain what repercussions this might have, but one is that if we were to update a snapshot for a fixed version then it might change because the symbol file contains new versions that aren't applicable. Since the symbol file isn't actually needed at this point it's better to wait with this step until the use cases for it are more clear. Test: m nothing Test: Create an SDK snapshot with Bionic libs, drop it into a master-art tree without bionic/ in it, build ART APEXes, and check that the Soong phase completes (specifically that the stubs are detected even without symbol files). Bug: 152481980 Change-Id: Ic79f89bc6d11d0b6552fa20791f5680ff9a40c0d
2020-04-02Propagate stubs to the SDK for libraries that have them.Martin Stjernholm
Necessary to make the APEX build logic treat the libraries as API boundaries rather than dependencies to bundle. The .so files in the snapshots are the compiled stub libraries in this case. They are strictly speaking redundant since they can be generated from the .map.txt files in the snapshots, but doing that would require extending the cc_prebuilt_library(_shared) module types with a full compiler pass etc, and that would break a lot of assumptions in the cc package. Test: m nothing Test: Create an SDK snapshot with Bionic libs, drop it into a master-art tree without bionic/ in it, build ART APEXes, and check that the Soong phase completes (specifically no errors about various APEX libs requiring libc that is not available to them). Bug: 152481980 Change-Id: I31b928e6261198b6dd6f6b17196e714f07b64172
2020-03-26Don't run new test on Darwin that lacks snapshot support.Martin Stjernholm
Test: m nothing Bug: 152514829 Bug: 152255951 Change-Id: Ib14af7caa408e252242e6933f7281aab3888789c
2020-03-25Propagate empty vs unspecified system_shared_libs correctly.Martin Stjernholm
Necessary to get correct prebuilts for many Bionic libs. Cleaned up numerious "system_shared_libs: []" from test fixtures, since they otherwise would need correction in the expected results, and it is better to have a single test focused on testing system_shared_libs propagation. Test: m nothing Bug: 152255951 Change-Id: If2e8a5296223e6281d833312660e8e9e4cd184c0
2020-03-23Sdk snapshot set compile_multilib per OsTypePaul Duffin
Previously, when an sdk snapshot only supported a single os type the compile_multilib was set based on the multilib usages by the members of that variant. After the change to support multiple os types per snapshot the multilib setting was based on the multilib usages across all the members of all sdk variants. That meant that if one os type used only "64" and the other used "both" then they would both be treated as "both" leading to missing variants when the snapshot was unpacked. This change tracks the multilib usages per os type and adds a property for each one. It intentionally changes a couple of tests: 1) Either by adding compile_multilib that is missing. 2) By targeting it at a specific os type instead of host. The latter change is important to prevent the snapshot from being used on a host platform (which will match the host target section) but which is a different os type to the ones supported by the snapshot. Bug: 142935992 Test: m nothing Change-Id: I883919b644292c3d019db223bb4fd5c11b39591f