* Removed import of print function - we only support py3 now
* Switched from set() to a set literal
Bug: None
Test: Regenerated argh_derive
Change-Id: I78bc86ad22c747c5f6ad88e2caa5e707e1ffc381
Cargo now outputs
'unittests src/lib.rs'
where before it output
'unittests'.
Bug: 246384761
Test: Add "test": true to argh_derive, regenerate, observe same bp file
Change-Id: Ieeab83761f5fe7cff88af1ce8293818736a6bb9b
Don't fail the generation of the Android.bp file when those flags are
encountered.
Bug: 243662244
Test: Used on gdbstub, which fixed issues seen in aosp/2191020
Change-Id: I80a6ecd8df7980234552a98ddb1149dc29542ac7
Prevent the script from missing flags (minus-prefixed arguments) due to
the CLI argument being quoted (making the "-" its second character).
This removes the need to manually unquote the args in the few cases
where the code already handles them being in quotes.
Bug: 243662244
Test: -
Change-Id: I37b9aa96dcbbeb04616bddfca657d066b998d7c7
Example where it failed:
tests::sock_send_recv_event: test
1 test, 0 benchmarks
Doc-tests vm_control
0 tests, 0 benchmarks
the "1 test, 0 benchmarks" line wouldn't match the test regex, so it
would mistakenly parse the doc tests line instead and then fail to
generate a rust_test module.
Test: ran on crosvm repo
Change-Id: Id0286165405b58bf84b7261db842e272442c91e8
Previously, we only looked for LICENSE* files. This adds support for
detecting COPYING* files as an alternate representation of the license.
Bug: 234563254
Test: get_rust_pkg.py -add3prf quiche
Change-Id: Ic04ef42f349879be18a4307bd863288dfa81b5fc
If the last line of a Cargo.toml was a `[*]`, then appending
`[workspace]` without newlines would result in an invalid toml file.
external/crosvm/tracing/Cargo.toml is an example.
Test: ran on crosvm
Change-Id: Ib949e7f92d0205b1bc6433d1e231924832ddb536
This reverts commit 2adbd7ed89.
Reason for revert: This doesn't work in all cases. For now I'll
instead use local patches for Cargo.toml :(
Change-Id: I0621796e694e2654a01fe9a38a307fd0a4ab8b15
`Cargo --publish` strips dev-dependencies from Cargo.toml, an issue
that won't be fixed until [1] is resolved, which doesn't seem
likely as it has been open for ~5 years now.
cargo2android needs dev-dependencies listed in Cargo.toml in order
to generate the rust_test in Android.bp, add an option that tells
cargo2android to use the cargo.toml.orig instead of the cargo.toml.
With this change there are now two options that temporarily
update Cargo.toml, so I've pulled these out into a separate class
to clean up the code a bit.
[1] https://github.com/rust-lang/cargo/issues/4242
Test: run against projects with --add_workspace and
--orig-cargo-toml
Change-Id: I3b8633a807c9734981ebde0bef9b73868acf6774
Bug: 234744235
Test: Run cargo2android.py without --cargo_bin
Test: Run in the sandbox without providing --cargo_bin
Change-Id: I4c3744e0e391ab7e4fb6a857483fde5c0015f0ff
string-typed result groups would cause the comparison to fail with a
type error. Explicitly casting results to integer for comparison, then
back to string for concatenation causes things to work again.
Bug: 234744235
Test: Run tool with no --cargo_bin option (and the following patch)
(thus using local cargo version detection) and observe success.
Change-Id: I91d8de925c1b6eca7c9905ea85e1ad90e01fb1f9
The bulk of Rust packages in external/ are OS agnostic and do not care
about individual platform features. This change is intended to reduce
the churn of repeatedly adding new `apex_available` attributes to crates
by defaulting to availability. When landing a new crate which is either
platform revision specific or has an unstable file format, prefer to
set `apex_available: ["//apex_available:platform"]` until you have
thought things through.
Bug: 174862583
Test: Regenerate with no apex_available, see universal availability
Test: Regenerate with apex_available: [], see []
Test: Regenerate with apex_available: [foo], see [foo]
Change-Id: I958597789bfc966caec043d051996284dab7a927
Previous logic would place tests in both presubmit and postsubmit if the
postsubmit_tests configuration was not specified. This is both
unnecessary and wastes resources because presubmit tests are also run in
postsubmit.
Bug: 236006683
Test: Regenerate all TEST_MAPPINGs, manually check postsubmit removal
Change-Id: Ie8ff0e351776711e07bf7646efd916d970254e9c
These modules are not suitable for direct execution on cuttlefish, but
are still built as `rust_test` to get the harness.
Bug: 233924440
Test: Regenerate all TEST_MAPPINGs, pass presubmit
Change-Id: I4aebdb5e36cf3a80780483e0a7ebeb83e9735d29
update_crate_tests would previously assume test_mapping.json existed
when trying to generate a TEST_MAPPING update. This made updating
mappings for the majority of existing crates fail.
Bug: 233924440
Test: Regenerate all Rust TEST_MAPPINGs
Change-Id: I4d9b906f4db233ee0223a3035c1b63bf1ca681f4
I had made this change if there was an offset on the line,
but I didn't make if there is no offset present. Add the
no offset present case.
Bug: 206463081
Test: Ran unit tests.
Test: Modified a normal stack line with libart.so to be
Test: libart.so!libart.so and verified the line numbers
Test: are still present.
Change-Id: I75e3fbe5eaa3a5419a2dca2c4542731c61c7b971
Adds support for configuring TEST_MAPPING output in
update_crate_tests.py by defining a test_mapping_config.json.
The initial option that can be set is whether a test should be a
postsubmit test instead of a presubmit test.
Bug: 229727993
Test: update_crate_tests.py with test_mapping_config.json produces
postsubmit tests
Change-Id: I2f5a336c1af12630cc5df9d2c32ab63ac6099af8
For some reason, apex directory structure in the symbols directory
is not the same as on device.
This means that a directory on device like:
/apex/com.android.art/lib64/libart.so
Is really found in symbols as:
/apex/com.google.android.art/lib64/libart.so
Modify the script to look in both places for libraries.
Bug: 206463081
Test: Verified that libart.so in a backtrace now finds the symbols
Test: libart.so.
Change-Id: I67610e3a236765cc92397c70a769c4aa705f13ce
When the device is not on localhost, gdbclient won't connect to it
properly. If the serial is a tcp address, parse the host and pass that
to gdb-remote.
Bug: 228371506
Test: gdbclient.py -r /system/bin/ls /bin
Change-Id: I635d4bdc483a66ab908f5aa02aa94e2504976a45
aidl_test_rust_service_async is a helper binary and shouldn't be added
to TEST_MAPPINGs. diced_client_test does not work in presubmit yet.
Test: update_crate_tests.py no longer adds those tests.
Change-Id: I565680d2bee31e30bf5db224c46428385ed279a3
The prebuilt cargo (or more precisely, its libstd) cannot be used when
running cargo2android.py. Ensure that the upstream cargo binary is used.
This is automatically set when using the sandbox for Googlers. For
external contributors, raise an error if the option is not provided.
Test: As a googler, execute cargo2android.py directly; an error is
raised.
Test: As a googler, use the sandbox; cargo2android.py is executed
correctly.
Test: As an external contributor, execute cargo2android.py; an error is
raised if cargo_bin is not provided.
Bug: 217810523
Change-Id: Id42ba777b3960b13f6ef91d36eaad94df939f48e
Add a default return value in a call in the GetLibraryByBuildId()
function to avoid an exception if a file cannot be found in the
symbol directory.
Bug: 216232380
Test: Ran the input from the bug. Verified without the change, the
Test: exception occurs and with the fix, no exception.
Test: Ran unit tests of stack_core.py.
Change-Id: I015982eb835f5a3d7f03dcc3e0b1627b0c1a7cfe
For some unknown reason the change to merge rust_test and rust_test_host
targets caused some crosvm tests to be run (and fail) in prebsubmit which
were not previously being run, so this is necessary to work around it.
Test: Ran cargo2android.py on various crosvm crates.
Change-Id: I9b94d270148d8ce5fa97f88f460d8c03eac3873c
The expanded parameters take a lot horizontal space
and almost always push the file:line of the screen,
or text-wrap generating multiple lines per frame.
This CL tries to make the output less cluttered by
removing parameters from the unmangled method names.
It is possible to add the parameters back using
the --verbose command line argument.
Test: Add unit tests, investigate crashes from logcat
Change-Id: I42d1e26dbc2fa9db8b7bd95ce449cb2bd93f93f8
"presubmit" will continue to handle x86_64 virtual device and host tests
"presubmit-rust" will run the test on a pool of physical arm64 devices
Bug: 204332926
Test: regenerated a few TEST_MAPPING files
Change-Id: Idd5cad5107a96031f67305b63875034b2e5a5c60
With b/196306316 hopefully fixed, we should be able to use a single
rust_test entry for both device and host tests. This modifies
cargo2android.py so it generates these shared tests.
Test: Run on crates with simple tests, those with defaults, host-only,
and device-only tests.
Change-Id: Icfe8d1fb26a61bc9ed65b8a7b116a4ebcd782ce4
This script currently computes all transitive reverse dependencies for
a given crate and adds them to the generated TEST_MAPPING. This
creates a very large file and makes it difficult to rename/remove
tests, as a given test can be in many TEST_MAPPING files in other
directories. We fix this by instead importing the TEST_MAPPING files
of other third-party crates.
Note that we cannot do this for tests defined by this crate (as they
need to be in some TEST_MAPPING file) and for tests outside of
external. For the latter, we do not auto-generate those TEST_MAPPING
files, so they might contain extra tests we do not want or not contain
the tests we do want. We thus continue to list such tests
individually, which is suboptimal but at least is a strict improvement
over the current system.
Test: Run on a few crates.
Change-Id: Ibdf36e7844f5946c9e321ac60558792abd691b42