aboutsummaryrefslogtreecommitdiff
path: root/rust/rust_test.go
Commit message (Collapse)AuthorAgeFilesLines
...
* Make native_coverage clause work with ClangCoverageColin Cross2020-06-221-0/+1
| | | | | | | | | | | | | | | | | | | Make uses NATIVE_COVERAGE to enable gcov coverage and CLANG_COVERAGE to enable clang coverage. NATIVE_COVERAGE is translated to the Soong Native_coverage product variable which triggers the native_coverage clause in Android.bp files. The clause also needs to be triggered for CLANG_COVERAGE. Rename the existing Native_coverage product variable to GcovCoverage, and regenerate Native_coverage when either GcovCoverage or ClangCoverage are set. Also remove NativeLineCoverage, it wasn't doing anything differently than Native_coverage. Bug: 159059537 Test: m checkbuild Change-Id: I215124a9b35a2ad50ad562079d392e3d33da11f4
* Rename native code coverage paths product variables in Soong.Roland Levillain2020-06-101-1/+1
| | | | | | | | | | | Rename `CoveragePath` and `CoverageExcludePaths` as `NativeCoveragePath` and `NativeCoverageExcludePaths` (resp.). Also rename function `android.CoverageEnabledForPath` as `android.NativeCoverageEnabledForPath`. Test: m nothing Bug: 158212027 Change-Id: Id2c11a638e88088096420b537effa866d7667304
* Add gcov coverage support to Rust modules.Ivan Lozano2020-05-051-0/+16
| | | | | | | | | | | | | | | | | | | This adds gcov coverage support for Rust device library and binary modules (including test modules). Support is provided to pass Rust static library gcno files to CC modules and visa versa. Additional changes: * Begin mutator added for Rust modules. * SuffixInList added to android package. * CoverageEnabled added to Coverage interface. * CoverageFiles added to LinkableLibrary interface. * Fix in coverage mutator for non-CC modules which marked the wrong variant as the coverage variant. * Added coverage libraries to the cc.GatherRequiredDepsForTest. Bug: 146448203 Test: NATIVE_COVERAGE=true COVERAGE_PATHS='*' m -j <rust_module> Change-Id: If20728bdde42a1dd544a35a40f0d981b80a5835f
* Provide 32-bit and 64-bit Rust libs by default.Ivan Lozano2020-04-291-1/+14
| | | | | | | | | | | | | | | | CC libraries which depend on Rust libraries get missing dependency errors when building 32-bit variants dependent on Rust modules which don't explicitly have "multilib: both" declared. Because CC libraries use MultilibBoth by default, Rust should do the same. This also fixes a bug where the ARM32 toolchain incorrectly embedded toolchain64Bit instead of toolchain32Bit. Bug: 154730212 Test: Rust libraries provide both variants by default. Change-Id: Ia545fe069d3c6b77c3d18f4f10267e2c72ee0bab
* Clean up rust tests.Ivan Lozano2020-04-231-19/+0
| | | | | | | | | | | The list of required deps for testing is a lot shorter as we no longer include as many prebuilt libraries and our list of stdlibs is much shorter. Remove the libraries we no longer need, and add the non-prebuilt libstd and libtest to the deps generated for every test. Bug: 153463188 Test: Soong tests pass. Change-Id: I94f7b514797ab8d6aedb543ea6afdb07611b7293
* Move NDK test modules into cc/testing.goColin Cross2020-02-191-0/+3
| | | | | | | | Move the NDK modules defined in app_test.go into cc/testing.go in preparation for using sdk_version: "current" in more tests. Test: all soong tests Change-Id: I80bc31225fb4562fce42781219cefbbd6affae06
* Fix lib name resolution if extension is substring.Ivan Lozano2020-02-061-2/+2
| | | | | | | | | | | If a library happens to contain the extension as a substring in its name, libNameFromFilePath will return a truncated library name. Change this calculation to remove the last instance of the extension substring instead. Bug: 147140513 Test: Modified rust tests pass. Change-Id: I0ed91e5f571ed5c4040ee15956a1598846aee43a
* Move filesystem into ConfigColin Cross2019-12-181-6/+19
| | | | | | | | | | | | The filesystem object was available through ModuleContext.Fs(), but gives too much access to the filesystem without enforicing correct dependencies. In order to support sandboxing the soong_build process move the filesystem into the Config. The next change will make it private. Bug: 146437378 Test: all Soong tests Change-Id: I5d3ae9108f120fd335b21efd612aefa078378813
* Use empty string for core image variantColin Cross2019-12-131-1/+1
| | | | | | | | | | | Use the empty string for the core image variant so that modules added to imageMutator do not change their build directory. Bug: 142286466 Test: m checkbuild Change-Id: Ida4534d9a4d6176236aaa480fed359ce27acfaa1 Merged-In: Ida4534d9a4d6176236aaa480fed359ce27acfaa1 (cherry picked from commit 72d685ee7f45e5393be44ae4159edf083ac918de)
* Merge changes from topic "rust-sysroot"Jeffrey Vander Stoep2019-11-141-0/+34
|\ | | | | | | | | | | * changes: Enable x86_64 device support Build Rust Device Sysroots in Soong
| * Build Rust Device Sysroots in SoongMatthew Maurer2019-11-131-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | In order to ensure we are using current platform Bionic for any platform Rust binaries, we need to build the sysroot in Soong. This will also enable us too hook the "test" crate if necessary. While both a dynamic and static sysroot are available, on device only a dynamic sysroot will be injected. On host, we continue using the sysroot used to build the compiler as before. Bug: 139486496 Change-Id: I127377e5b056610ceb5015a34d266250320fbc31
* | Enforce correct rust library file names.Ivan Lozano2019-11-041-16/+7
|/ | | | | | | | | | | | | | | rustc expects libraries and proc_macro filenames to conform to a particular format, alphanumeric with underscores and lib${crate_name}.*. Enforce this with a check when getStem() is called. This makes the crate_name property required for proc_macros and libraries. This also removes the notion of a default crate name derived from the module name. It's not needed for binaries, so this won't impact them. Bug: 143579265 Test: m -j crosvm.experimental Change-Id: I2770cf7d02dd4291c3d240d58d242b940098dcee
* Add support for Rust C libraries.Ivan Lozano2019-10-281-10/+35
| | | | | | | | | | | | | | | | | | | | Adds the ability for rust modules to be compiled as C libraries, and allows cc modules to depend on these rust-generated modules. This also means that soong-rust should not have any dependencies on soong-cc aside from what's required for testing. There's a couple small fixes included as well: - A bug in libNameFromFilePath that caused issues when library's had "lib" in their name. - VariantName is removed from rust library MutatedProperties since this was unused. Bug: 140726209 Test: Soong tests pass. Test: Example cc_binary can include a rust shared library as a dep. Test: m crosvm.experimental Change-Id: Ia7deed1345d2423001089014cc65ce7934123da4
* Add Soong test for device proc-macro deps.Ivan Lozano2019-09-251-0/+26
| | | | | | | | | | Ensure that devices can include proc_macros, which are host-only and may include host-only dependencies. Bug: 141491501 Test: Soong tests pass. Test: Test fails as expected when removing CL 1126496 Change-Id: I3ae7ab80283cd1fd4b800a533cb3205b3c108d45
* Fix proc_macro dependency handling.Ivan Lozano2019-09-241-1/+0
| | | | | | | | | | | | | Currently proc_macros don't pull in the correct arch dependencies when the host arch differs from the target arch. This fixes how proc_macro dependencies are handled by defining them as always being host-only and including them as dependencies for device-modules by using AddFarVariationDependencies. Bug: 141491501 Test: Example device rust module builds with proc_macro dependency. Change-Id: Ic037dc406ce90526f8b68c92fffc0d93a498a4ff
* Do not run Soong tests for Rust on non-Linux hosts.Ivan Lozano2019-09-031-0/+11
| | | | | | | | | The Rust toolchain only supports Linux hosts, so skip Rust tests that depend on host toolchains when building on other platforms. Test: Tests still run on Linux hosts Bug: 140435149 Change-Id: I298b52589ab5c6a7ec3acc4db1111596cd995d76
* Add Rust support to Soong.Ivan Lozano2019-08-281-0/+167
Adds support to Soong for building rust modules. This currently only supports x86_64 device and x86 linux host targets. The functionality is sufficient to build crosvm. Bug: 136189233 Test: Test module builds. Test: crosvm builds. Change-Id: I6ea04615834a6d673578ab10ea1a2eb04259fe09