cargo test
поддерживает два типа тестов: один - это обычные тесты (#[test] fn
s и файлы внутри tests/
), другой - это тесты документации.
Обычные тесты так же просты, как запуск всех двоичных файлов. Тест считается успешным, если он завершился с кодом ошибки 0.
Документ-тесты не могут подвергаться перекрестному тестированию. Док-тесты компилируются и выполняются непосредственно rustdoc
с использованием библиотек компилятора, поэтому компилятор должен быть установлен на машине ARM для запуска тестов документации. Фактически, запуск cargo test --doc
, когда HOST ≠ TARGET ничего не даст.
Итак, ответ на ваш последний вопрос - да, если вы не полагаетесь на док-тесты для покрытия.
Начиная с Rust 1.19, cargo
поддерживает целевых конкретных исполнителей, что позволяет указать сценарий для загрузки и выполнения тестовой программы на машине ARM.
#!/bin/sh
set -e
adb push "$1" "/sdcard/somewhere/$1"
adb shell "chmod 755 /sdcard/somewhere/$1 && /sdcard/somewhere/$1"
# ^ note: may need to change this line, see https://stackoverflow.com/q/9379400
Поместите это в свой .cargo/config
:
[target.arm-linux-androideabi]
runner = ["/path/to/your/run/script.sh"]
тогда cargo test --target=arm-linux-androideabi
should Just Work ™.
Если ваш проект размещен на GitHub и использует Travis CI, вы также можете попробовать trust
. Он предоставляет готовое решение для тестирования на многих архитектурах, включая ARMv7 Linux на CI (к сожалению, без Android).
person
kennytm
schedule
06.07.2017
cargo
иrustc
на машине. - person fghj   schedule 06.07.2017