endef
$(foreach target,$(CFG_TARGET), \
- $(if $(findstring $(target),"arm-linux-androideabi"), \
+ $(if $(or $(findstring $(target),"arm-linux-androideabi"),$(findstring $(target),"aarch64-linux-android")), \
$(if $(findstring adb,$(CFG_ADB)), \
$(if $(findstring device,$(shell $(CFG_ADB) devices 2>/dev/null | grep -E '^[_A-Za-z0-9-]+[[:blank:]]+device')), \
$(info install: install-runtime-target for $(target) enabled \
$$(call ADB_SHELL,rm,$$(CFG_RUNTIME_PUSH_DIR)/$$(call CFG_LIB_GLOB_$(1),$$(crate)));)
endef
-$(eval $(call INSTALL_RUNTIME_TARGET_N,arm-linux-androideabi,$(CFG_BUILD)))
-$(eval $(call INSTALL_RUNTIME_TARGET_CLEANUP_N,arm-linux-androideabi))
+$(foreach target,$(CFG_TARGET), \
+ $(if $(findstring $(CFG_ADB_DEVICE_STATUS),"true"), \
+ $(eval $(call INSTALL_RUNTIME_TARGET_N,$(taget),$(CFG_BUILD))) \
+ $(eval $(call INSTALL_RUNTIME_TARGET_CLEANUP_N,arm-linux-$(target))) \
+ ))
install-runtime-target: \
install-runtime-target-arm-linux-androideabi-cleanup \
# for arm-linux-androidabi
define DEF_ADB_DEVICE_STATUS
CFG_ADB_DEVICE_STATUS=$(1)
+CFG_ANDROID_TARGET_TRIPLE=$(2)
endef
$(foreach target,$(CFG_TARGET), \
- $(if $(findstring $(target),"arm-linux-androideabi"), \
+ $(if $(or $(findstring $(target),"arm-linux-androideabi"),$(findstring $(target),"aarch64-linux-android")), \
$(if $(findstring adb,$(CFG_ADB)), \
$(if $(findstring device,$(shell $(CFG_ADB) devices 2>/dev/null | grep -E '^[:_A-Za-z0-9-]+[[:blank:]]+device')), \
$(info check: android device attached) \
- $(eval $(call DEF_ADB_DEVICE_STATUS, true)), \
+ $(eval $(call DEF_ADB_DEVICE_STATUS, true, $(target))), \
$(info check: android device not attached) \
$(eval $(call DEF_ADB_DEVICE_STATUS, false)) \
), \
$(shell $(CFG_ADB) shell mkdir $(CFG_ADB_TEST_DIR)/tmp) \
$(shell $(CFG_ADB) push $(S)src/etc/adb_run_wrapper.sh $(CFG_ADB_TEST_DIR) 1>/dev/null) \
$(foreach crate,$(TARGET_CRATES), \
- $(shell $(CFG_ADB) push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD))/$(call CFG_LIB_GLOB_arm-linux-androideabi,$(crate)) \
+ $(shell $(CFG_ADB) push $(TLIB2_T_$(CFG_ANDROID_TARGET_TRIPLE)_H_$(CFG_BUILD))/$(call CFG_LIB_GLOB_$(CFG_ANDROID_TARGET_TRIPLE),$(crate)) \
$(CFG_ADB_TEST_DIR))) \
)
else
&& touch $$@
endef
-define DEF_TEST_CRATE_RULES_arm-linux-androideabi
+define DEF_TEST_CRATE_RULES_android
check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4))
$$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \
$(foreach crate, $(TEST_CRATES), \
$(if $(findstring $(target),$(CFG_BUILD)), \
$(eval $(call DEF_TEST_CRATE_RULES,$(stage),$(target),$(host),$(crate))), \
- $(if $(findstring $(target),"arm-linux-androideabi"), \
+ $(if $(or $(findstring $(target),"arm-linux-androideabi"), $(findstring $(target),"aarch64-linux-android")), \
$(if $(findstring $(CFG_ADB_DEVICE_STATUS),"true"), \
- $(eval $(call DEF_TEST_CRATE_RULES_arm-linux-androideabi,$(stage),$(target),$(host),$(crate))), \
+ $(eval $(call DEF_TEST_CRATE_RULES_android,$(stage),$(target),$(host),$(crate))), \
$(eval $(call DEF_TEST_CRATE_RULES_null,$(stage),$(target),$(host),$(crate))) \
), \
$(eval $(call DEF_TEST_CRATE_RULES,$(stage),$(target),$(host),$(crate))) \
adb_path: opt_str2(matches.opt_str("adb-path")),
adb_test_dir: opt_str2(matches.opt_str("adb-test-dir")),
adb_device_status:
- "arm-linux-androideabi" ==
- opt_str2(matches.opt_str("target")) &&
- "(none)" !=
- opt_str2(matches.opt_str("adb-test-dir")) &&
+ opt_str2(matches.opt_str("target")).contains("android") &&
+ "(none)" != opt_str2(matches.opt_str("adb-test-dir")) &&
!opt_str2(matches.opt_str("adb-test-dir")).is_empty(),
lldb_python_dir: matches.opt_str("lldb-python-dir"),
verbose: matches.opt_present("verbose"),
}
pub fn run_tests(config: &Config) {
- if config.target == "arm-linux-androideabi" {
+ if config.target.contains("android") {
match config.mode {
DebugInfoGdb => {
- println!("arm-linux-androideabi debug-info \
- test uses tcp 5039 port. please reserve it");
+ println!("{} debug-info test uses tcp 5039 port.\
+ please reserve it", config.target);
}
_ =>{}
}
- //arm-linux-androideabi debug-info test uses remote debugger
- //so, we test 1 task at once.
+ // android debug-info test uses remote debugger
+ // so, we test 1 task at once.
// also trying to isolate problems with adb_run_wrapper.sh ilooping
env::set_var("RUST_TEST_TASKS","1");
}
pub fn run(config: Config, testfile: String) {
match &*config.target {
- "arm-linux-androideabi" => {
+ "arm-linux-androideabi" | "aarch64-linux-android" => {
if !config.adb_device_status {
panic!("android device not available");
}
let debugger_run_result;
match &*config.target {
- "arm-linux-androideabi" => {
+ "arm-linux-androideabi" | "aarch64-linux-android" => {
cmds = cmds.replace("run", "continue").to_string();
format!("-command={}", debugger_script.as_str().unwrap()));
let mut gdb_path = tool_path;
- gdb_path.push_str("/bin/arm-linux-androideabi-gdb");
+ gdb_path.push_str(&format!("/bin/{}-gdb", config.target));
let procsrv::Result {
out,
err,
.expect(&format!("failed to exec `{:?}`", gdb_path));
let cmdline = {
let cmdline = make_cmdline("",
- "arm-linux-androideabi-gdb",
+ &format!("{}-gdb", config.target),
&debugger_opts);
logv(config, format!("executing {}", cmdline));
cmdline
match &*config.target {
- "arm-linux-androideabi" => {
+ "arm-linux-androideabi" | "aarch64-linux-android" => {
_arm_exec_compiled_test(config, props, testfile, env)
}
}
match &*config.target {
- "arm-linux-androideabi" => {
+ "arm-linux-androideabi" | "aarch64-linux-android" => {
_arm_push_aux_shared_library(config, testfile);
}
_ => {}
mips_unknown_linux_gnu,
mipsel_unknown_linux_gnu,
powerpc_unknown_linux_gnu,
- arm_linux_androideabi,
arm_unknown_linux_gnueabi,
arm_unknown_linux_gnueabihf,
aarch64_unknown_linux_gnu,
+ arm_linux_androideabi,
+ aarch64_linux_android,
+
x86_64_unknown_freebsd,
i686_unknown_dragonfly,
i386_apple_ios,
x86_64_apple_ios,
aarch64_apple_ios,
- aarch64_linux_android,
armv7_apple_ios,
armv7s_apple_ios,