summaryrefslogtreecommitdiff
path: root/rust/coverage_test.go
AgeCommit message (Collapse)Author
2021-01-15Migrate Rust to LLVM coverage.Joel Galenson
Bug: 177675913 Test: Manually compile, run, and see output with llvm-cov. Change-Id: I66729cff87a848782e9fa1b95cbbc06318c5761a
2020-11-17rust: Fix incorrect expected gcno file for dylibsIvan Lozano
For Rust dylibs we generate a file suffix of .dylib.so. rustc seems to split the output filename for the gcno file at the first '.', so instead of libfoo.dylib.gcno (which our build system expects), it produces libfoo.gcno. This fixes the mismatch so the build system can find the gcno file that gets produced for Rust dylibs. Bug: 170983066 Test: CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS=external/rust/crates \ m libandroid_log_sys Change-Id: Icba48bf10ab06c255bd17053d57feb889b1f9ee5
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-09-18rust: Add libstd linkage mutator for rlibs.Ivan Lozano
The current state of linkage is that device targets always link libstd dynamically except for rust_ffi_static which requires a static libstd linkage. However this prevents producing rust_ffi_static modules which depend on other Rust libraries as those dependencies will link libstd dynamically and cause a collision. We also want our rust_test modules to statically link in libstd as well. This adds a linkage mutator for rlibs that creates a variant for each libstd linkage. Dependent modules can then select the variant that matches their linkage of libstd. Also fixes an issue where installation paths were being generated for rlibs and static libs even though they weren't being installed. This broke when adding the linkage mutator as Make would complain about multiple targets producing the same output. Bug: 168729404 Test: rust_ffi_static module with other rustlib dependency can be built. Change-Id: I955b484bf5809e8fc5517750c7f8df82d3ca8895
2020-08-25Migrate away from removed optionJoel Galenson
Upstream removed the -Z no-landing-pads option in https://github.com/rust-lang/rust/pull/70175, which we picked up in our latest toolchain update. Fixes: 166317885 Test: Build and TreeHugger Change-Id: I51c0ef671bf6a334b2b7223da42cab547e4407d3
2020-07-01rust: Change default variantsMatthew Maurer
rust_library now produces only rlib and dylib variants. rust_library_foreign now produces static and shared variants. This change was made because both are common cases, but all four together essentially never happens. This allows us to have fewer repeat module definitions. Bug: 143217452 Test: cd external/rust; mma Change-Id: Iaf69e8da38f7c12710331c51464699cf7cbbb656
2020-05-05Add gcov coverage support to Rust modules.Ivan Lozano
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