about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorsh8281.kim <sh8281.kim@samsung.com>2013-11-04 15:53:01 +0900
committersh8281.kim <sh8281.kim@samsung.com>2013-11-06 09:41:59 +0900
commit4e54828b0d474f210eb4ab4587427dcb158fd955 (patch)
tree9f630ca9d1859d77435feca613bf303066affe13 /src
parent7fb583be7b0df80c91df026c6a2bde550bc27a7c (diff)
downloadrust-4e54828b0d474f210eb4ab4587427dcb158fd955.tar.gz
rust-4e54828b0d474f210eb4ab4587427dcb158fd955.zip
Add make check support(arm-linux-androideabi debuginfo)
Diffstat (limited to 'src')
-rw-r--r--src/compiletest/compiletest.rs13
-rw-r--r--src/compiletest/procsrv.rs23
-rw-r--r--src/compiletest/runtest.rs134
-rw-r--r--src/test/debug-info/basic-types-metadata.rs2
-rw-r--r--src/test/debug-info/basic-types.rs2
-rw-r--r--src/test/debug-info/borrowed-basic.rs2
-rw-r--r--src/test/debug-info/borrowed-c-style-enum.rs2
-rw-r--r--src/test/debug-info/borrowed-enum.rs2
-rw-r--r--src/test/debug-info/boxed-vec.rs2
-rw-r--r--src/test/debug-info/by-value-non-immediate-argument.rs2
-rw-r--r--src/test/debug-info/by-value-self-argument-in-trait-impl.rs2
-rw-r--r--src/test/debug-info/c-style-enum.rs2
-rw-r--r--src/test/debug-info/closure-in-generic-function.rs2
-rw-r--r--src/test/debug-info/destructured-fn-argument.rs2
-rw-r--r--src/test/debug-info/evec-in-struct.rs2
-rw-r--r--src/test/debug-info/generic-function.rs2
-rw-r--r--src/test/debug-info/generic-functions-nested.rs2
-rw-r--r--src/test/debug-info/generic-method-on-generic-struct.rs2
-rw-r--r--src/test/debug-info/generic-static-method-on-struct-and-enum.rs2
-rw-r--r--src/test/debug-info/generic-struct-style-enum.rs2
-rw-r--r--src/test/debug-info/generic-struct.rs2
-rw-r--r--src/test/debug-info/generic-tuple-style-enum.rs2
-rw-r--r--src/test/debug-info/lexical-scope-in-for-loop.rs1
-rw-r--r--src/test/debug-info/lexical-scope-in-if.rs1
-rw-r--r--src/test/debug-info/lexical-scope-in-match.rs1
-rw-r--r--src/test/debug-info/lexical-scope-in-parameterless-closure.rs2
-rw-r--r--src/test/debug-info/lexical-scope-in-stack-closure.rs2
-rw-r--r--src/test/debug-info/lexical-scope-in-unique-closure.rs2
-rw-r--r--src/test/debug-info/lexical-scope-in-while.rs2
-rw-r--r--src/test/debug-info/lexical-scope-with-macro.rs2
-rw-r--r--src/test/debug-info/lexical-scopes-in-block-expression.rs1
-rw-r--r--src/test/debug-info/method-on-enum.rs2
-rw-r--r--src/test/debug-info/method-on-generic-struct.rs2
-rw-r--r--src/test/debug-info/method-on-struct.rs2
-rw-r--r--src/test/debug-info/method-on-trait.rs2
-rw-r--r--src/test/debug-info/method-on-tuple-struct.rs2
-rw-r--r--src/test/debug-info/multiple-functions-equal-var-names.rs2
-rw-r--r--src/test/debug-info/multiple-functions.rs2
-rw-r--r--src/test/debug-info/name-shadowing-and-scope-nesting.rs2
-rw-r--r--src/test/debug-info/nil-enum.rs2
-rw-r--r--src/test/debug-info/option-like-enum.rs2
-rw-r--r--src/test/debug-info/packed-struct.rs2
-rw-r--r--src/test/debug-info/recursive-struct.rs2
-rw-r--r--src/test/debug-info/self-in-default-method.rs2
-rw-r--r--src/test/debug-info/self-in-generic-default-method.rs2
-rw-r--r--src/test/debug-info/shadowed-argument.rs2
-rw-r--r--src/test/debug-info/shadowed-variable.rs2
-rw-r--r--src/test/debug-info/simple-lexical-scope.rs2
-rw-r--r--src/test/debug-info/simple-struct.rs2
-rw-r--r--src/test/debug-info/simple-tuple.rs2
-rw-r--r--src/test/debug-info/static-method-on-struct-and-enum.rs2
-rw-r--r--src/test/debug-info/struct-in-enum.rs2
-rw-r--r--src/test/debug-info/struct-in-struct.rs2
-rw-r--r--src/test/debug-info/struct-style-enum.rs2
-rw-r--r--src/test/debug-info/trait-pointers.rs2
-rw-r--r--src/test/debug-info/tuple-in-struct.rs2
-rw-r--r--src/test/debug-info/tuple-in-tuple.rs2
-rw-r--r--src/test/debug-info/tuple-struct.rs2
-rw-r--r--src/test/debug-info/tuple-style-enum.rs2
-rw-r--r--src/test/debug-info/var-captured-in-nested-closure.rs2
-rw-r--r--src/test/debug-info/var-captured-in-stack-closure.rs2
-rw-r--r--src/test/debug-info/vec-slices.rs2
-rw-r--r--src/test/debug-info/vec.rs2
63 files changed, 264 insertions, 22 deletions
diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs
index f4bd668690e..e464e0e687c 100644
--- a/src/compiletest/compiletest.rs
+++ b/src/compiletest/compiletest.rs
@@ -220,6 +220,19 @@ pub fn mode_str(mode: mode) -> ~str {
 }
 
 pub fn run_tests(config: &config) {
+    if config.target == ~"arm-linux-androideabi" {
+        match config.mode{
+            mode_debug_info => {
+                println("arm-linux-androideabi debug-info \
+                        test uses tcp 5039 port. please reserve it");
+                //arm-linux-androideabi debug-info test uses remote debugger
+                //so, we test 1 task at once
+                os::setenv("RUST_TEST_TASKS","1");
+            }
+            _ =>{}
+        }
+    }
+
     let opts = test_opts(config);
     let tests = make_tests(config);
     // sadly osx needs some file descriptor limits raised for running tests in
diff --git a/src/compiletest/procsrv.rs b/src/compiletest/procsrv.rs
index f8123d7b05c..6b15e21b70a 100644
--- a/src/compiletest/procsrv.rs
+++ b/src/compiletest/procsrv.rs
@@ -67,3 +67,26 @@ pub fn run(lib_path: &str,
         err: str::from_utf8(output.error)
     }
 }
+
+pub fn run_background(lib_path: &str,
+           prog: &str,
+           args: &[~str],
+           env: ~[(~str, ~str)],
+           input: Option<~str>) -> run::Process {
+
+    let env = env + target_env(lib_path, prog);
+    let mut process = run::Process::new(prog, args, run::ProcessOptions {
+        env: Some(env),
+        dir: None,
+        in_fd: None,
+        out_fd: None,
+        err_fd: None
+    });
+
+    for input in input.iter() {
+        process.input().write(input.as_bytes());
+    }
+
+    return process;
+}
+
diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs
index 1b3e34ad819..1701961b293 100644
--- a/src/compiletest/runtest.rs
+++ b/src/compiletest/runtest.rs
@@ -26,6 +26,10 @@ use std::rt::io::File;
 use std::os;
 use std::str;
 use std::vec;
+use std::rt::io::net::tcp;
+use std::rt::io::net::ip::{Ipv4Addr, SocketAddr};
+use std::task;
+use std::rt::io::timer;
 
 use extra::test::MetricMap;
 
@@ -245,6 +249,7 @@ actual:\n\
 }
 
 fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
+
     // do not optimize debuginfo tests
     let mut config = match config.rustcflags {
         Some(ref flags) => config {
@@ -254,8 +259,8 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
         None => (*config).clone()
     };
     let config = &mut config;
-    let cmds = props.debugger_cmds.connect("\n");
     let check_lines = &props.check_lines;
+    let mut cmds = props.debugger_cmds.connect("\n");
 
     // compile test file (it shoud have 'compile-flags:-g' in the header)
     let mut ProcRes = compile_test(config, props, testfile);
@@ -263,30 +268,116 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
         fatal_ProcRes(~"compilation failed!", &ProcRes);
     }
 
-    // write debugger script
-    let script_str = [~"set charset UTF-8",
-                      cmds,
-                      ~"quit\n"].connect("\n");
-    debug!("script_str = {}", script_str);
-    dump_output_file(config, testfile, script_str, "debugger.script");
-
-    // run debugger script with gdb
-    #[cfg(windows)]
-    fn debugger() -> ~str { ~"gdb.exe" }
-    #[cfg(unix)]
-    fn debugger() -> ~str { ~"gdb" }
-    let debugger_script = make_out_name(config, testfile, "debugger.script");
     let exe_file = make_exe_name(config, testfile);
-    // FIXME (#9639): This needs to handle non-utf8 paths
-    let debugger_opts = ~[~"-quiet", ~"-batch", ~"-nx",
-                          ~"-command=" + debugger_script.as_str().unwrap().to_owned(),
-                          exe_file.as_str().unwrap().to_owned()];
-    let ProcArgs = ProcArgs {prog: debugger(), args: debugger_opts};
-    ProcRes = compose_and_run(config, testfile, ProcArgs, ~[], "", None);
+
+    let mut ProcArgs;
+    match config.target {
+        ~"arm-linux-androideabi" => {
+            if (config.adb_device_status) {
+
+                cmds = cmds.replace("run","continue");
+
+                // write debugger script
+                let script_str = [~"set charset UTF-8",
+                    format!("file {}",exe_file.as_str().unwrap().to_owned()),
+                    ~"target remote :5039",
+                    cmds,
+                    ~"quit"].connect("\n");
+                debug!("script_str = {}", script_str);
+                dump_output_file(config, testfile, script_str, "debugger.script");
+
+
+                procsrv::run("", config.adb_path.clone(),
+                    [~"push", exe_file.as_str().unwrap().to_owned(), config.adb_test_dir.clone()],
+                    ~[(~"",~"")], Some(~""));
+
+                procsrv::run("", config.adb_path,
+                    [~"forward", ~"tcp:5039", ~"tcp:5039"],
+                    ~[(~"",~"")], Some(~""));
+
+                let adb_arg = format!("export LD_LIBRARY_PATH={}; gdbserver :5039 {}/{}",
+                         config.adb_test_dir.clone(), config.adb_test_dir.clone(),
+                         str::from_utf8(exe_file.filename().unwrap())).clone();
+
+                let mut process = procsrv::run_background("", config.adb_path.clone(),
+                        [~"shell",adb_arg.clone()],~[(~"",~"")], Some(~""));
+                loop {
+                    //waiting 1 second for gdbserver start
+                    timer::sleep(1000);
+                    let result = do task::try {
+                        tcp::TcpStream::connect(
+                        SocketAddr { ip: Ipv4Addr(127, 0, 0, 1), port: 5039 });
+                    };
+                    if result.is_err() {
+                        continue;
+                    }
+                    break;
+                }
+
+                let args = split_maybe_args(&config.rustcflags);
+                let mut tool_path:~str = ~"";
+                for arg in args.iter() {
+                    if arg.contains("--android-cross-path=") {
+                        tool_path = arg.replace("--android-cross-path=","");
+                        break;
+                    }
+                }
+
+                if tool_path.equals(&~"") {
+                    fatal(~"cannot found android cross path");
+                }
+
+                let debugger_script = make_out_name(config, testfile, "debugger.script");
+                // FIXME (#9639): This needs to handle non-utf8 paths
+                let debugger_opts = ~[~"-quiet", ~"-batch", ~"-nx",
+                    "-command=" + debugger_script.as_str().unwrap().to_owned()];
+
+                let procsrv::Result{ out, err, status }=
+                    procsrv::run("",
+                            tool_path.append("/bin/arm-linux-androideabi-gdb"),
+                            debugger_opts, ~[(~"",~"")], None);
+                let cmdline = {
+                    let cmdline = make_cmdline("", "arm-linux-androideabi-gdb", debugger_opts);
+                    logv(config, format!("executing {}", cmdline));
+                    cmdline
+                };
+
+                ProcRes = ProcRes {status: status,
+                    stdout: out,
+                    stderr: err,
+                    cmdline: cmdline};
+                process.force_destroy();
+            }
+        }
+
+        _=> {
+            // write debugger script
+            let script_str = [~"set charset UTF-8",
+                cmds,
+                ~"quit\n"].connect("\n");
+            debug!("script_str = {}", script_str);
+            dump_output_file(config, testfile, script_str, "debugger.script");
+
+            // run debugger script with gdb
+            #[cfg(windows)]
+            fn debugger() -> ~str { ~"gdb.exe" }
+            #[cfg(unix)]
+            fn debugger() -> ~str { ~"gdb" }
+
+            let debugger_script = make_out_name(config, testfile, "debugger.script");
+
+            // FIXME (#9639): This needs to handle non-utf8 paths
+            let debugger_opts = ~[~"-quiet", ~"-batch", ~"-nx",
+                "-command=" + debugger_script.as_str().unwrap().to_owned(),
+                exe_file.as_str().unwrap().to_owned()];
+            ProcArgs = ProcArgs {prog: debugger(), args: debugger_opts};
+            ProcRes = compose_and_run(config, testfile, ProcArgs, ~[], "", None);
+        }
+    }
+
     if ProcRes.status != 0 {
         fatal(~"gdb failed to execute");
     }
-
     let num_check_lines = check_lines.len();
     if num_check_lines > 0 {
         // Allow check lines to leave parts unspecified (e.g., uninitialized
@@ -834,7 +925,6 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps,
     for tv in args.args.iter() {
         runargs.push(tv.to_owned());
     }
-
     procsrv::run("", config.adb_path, runargs, ~[(~"",~"")], Some(~""));
 
     // get exitcode of result
diff --git a/src/test/debug-info/basic-types-metadata.rs b/src/test/debug-info/basic-types-metadata.rs
index b1f83fa24dc..86a42ca5f5b 100644
--- a/src/test/debug-info/basic-types-metadata.rs
+++ b/src/test/debug-info/basic-types-metadata.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/basic-types.rs b/src/test/debug-info/basic-types.rs
index 010d3aada3d..27b0a200b40 100644
--- a/src/test/debug-info/basic-types.rs
+++ b/src/test/debug-info/basic-types.rs
@@ -14,6 +14,8 @@
 // about UTF-32 character encoding and will print a rust char as only
 // its numerical value.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/borrowed-basic.rs b/src/test/debug-info/borrowed-basic.rs
index cdc4ce51b87..abdc9557f04 100644
--- a/src/test/debug-info/borrowed-basic.rs
+++ b/src/test/debug-info/borrowed-basic.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // Gdb doesn't know about UTF-32 character encoding and will print a rust char as only
 // its numerical value.
 
diff --git a/src/test/debug-info/borrowed-c-style-enum.rs b/src/test/debug-info/borrowed-c-style-enum.rs
index 2461eb4887e..40d3c6f13cb 100644
--- a/src/test/debug-info/borrowed-c-style-enum.rs
+++ b/src/test/debug-info/borrowed-c-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/borrowed-enum.rs b/src/test/debug-info/borrowed-enum.rs
index c77804c38bb..3b5d8b65988 100644
--- a/src/test/debug-info/borrowed-enum.rs
+++ b/src/test/debug-info/borrowed-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/boxed-vec.rs b/src/test/debug-info/boxed-vec.rs
index 2752d57d898..94ab91e7f1c 100644
--- a/src/test/debug-info/boxed-vec.rs
+++ b/src/test/debug-info/boxed-vec.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 #[feature(managed_boxes)];
 
 // compile-flags:-Z extra-debug-info
diff --git a/src/test/debug-info/by-value-non-immediate-argument.rs b/src/test/debug-info/by-value-non-immediate-argument.rs
index 45c7cb2a192..b712873a93e 100644
--- a/src/test/debug-info/by-value-non-immediate-argument.rs
+++ b/src/test/debug-info/by-value-non-immediate-argument.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
index 3c9a41f4125..d5551ea6da1 100644
--- a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
+++ b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 #[feature(managed_boxes)];
 
 // compile-flags:-Z extra-debug-info
diff --git a/src/test/debug-info/c-style-enum.rs b/src/test/debug-info/c-style-enum.rs
index f1bb42ac5f0..3cfb374680b 100644
--- a/src/test/debug-info/c-style-enum.rs
+++ b/src/test/debug-info/c-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/closure-in-generic-function.rs b/src/test/debug-info/closure-in-generic-function.rs
index 83a2c456ae6..3cde152ddee 100644
--- a/src/test/debug-info/closure-in-generic-function.rs
+++ b/src/test/debug-info/closure-in-generic-function.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/destructured-fn-argument.rs b/src/test/debug-info/destructured-fn-argument.rs
index 0485cc82209..6a1732cb6d4 100644
--- a/src/test/debug-info/destructured-fn-argument.rs
+++ b/src/test/debug-info/destructured-fn-argument.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 #[feature(managed_boxes)];
 
 // compile-flags:-Z extra-debug-info
diff --git a/src/test/debug-info/evec-in-struct.rs b/src/test/debug-info/evec-in-struct.rs
index a00e1318967..e06b60b2148 100644
--- a/src/test/debug-info/evec-in-struct.rs
+++ b/src/test/debug-info/evec-in-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/generic-function.rs b/src/test/debug-info/generic-function.rs
index 91bf29f5597..219cba5f613 100644
--- a/src/test/debug-info/generic-function.rs
+++ b/src/test/debug-info/generic-function.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/generic-functions-nested.rs b/src/test/debug-info/generic-functions-nested.rs
index 051b2054219..d3b4c49f2f1 100644
--- a/src/test/debug-info/generic-functions-nested.rs
+++ b/src/test/debug-info/generic-functions-nested.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/generic-method-on-generic-struct.rs b/src/test/debug-info/generic-method-on-generic-struct.rs
index f97a3cea566..79cccdc4f0b 100644
--- a/src/test/debug-info/generic-method-on-generic-struct.rs
+++ b/src/test/debug-info/generic-method-on-generic-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs b/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
index 2e69dd11323..5e5a7a7c9ad 100644
--- a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
+++ b/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/generic-struct-style-enum.rs b/src/test/debug-info/generic-struct-style-enum.rs
index 672ddc8fc45..93822969fbf 100644
--- a/src/test/debug-info/generic-struct-style-enum.rs
+++ b/src/test/debug-info/generic-struct-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print union on
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/generic-struct.rs b/src/test/debug-info/generic-struct.rs
index cf6286e9541..a1f810ebfb1 100644
--- a/src/test/debug-info/generic-struct.rs
+++ b/src/test/debug-info/generic-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/generic-tuple-style-enum.rs b/src/test/debug-info/generic-tuple-style-enum.rs
index 0b9f9350547..73ef9430c33 100644
--- a/src/test/debug-info/generic-tuple-style-enum.rs
+++ b/src/test/debug-info/generic-tuple-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print union on
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/lexical-scope-in-for-loop.rs b/src/test/debug-info/lexical-scope-in-for-loop.rs
index 0a2cb953f00..4d1e0c54cf7 100644
--- a/src/test/debug-info/lexical-scope-in-for-loop.rs
+++ b/src/test/debug-info/lexical-scope-in-for-loop.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // xfail-win32
+// xfail-android
 
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/lexical-scope-in-if.rs b/src/test/debug-info/lexical-scope-in-if.rs
index 29eaf98dca8..56d6547811e 100644
--- a/src/test/debug-info/lexical-scope-in-if.rs
+++ b/src/test/debug-info/lexical-scope-in-if.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // xfail-win32
+// xfail-android
 
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/lexical-scope-in-match.rs b/src/test/debug-info/lexical-scope-in-match.rs
index 1216e9fde1e..2eeddc21471 100644
--- a/src/test/debug-info/lexical-scope-in-match.rs
+++ b/src/test/debug-info/lexical-scope-in-match.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // xfail-win32
+// xfail-android
 
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/lexical-scope-in-parameterless-closure.rs b/src/test/debug-info/lexical-scope-in-parameterless-closure.rs
index a8846247f6f..3e3e7fc9661 100644
--- a/src/test/debug-info/lexical-scope-in-parameterless-closure.rs
+++ b/src/test/debug-info/lexical-scope-in-parameterless-closure.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z debug-info
 // debugger:run
 
diff --git a/src/test/debug-info/lexical-scope-in-stack-closure.rs b/src/test/debug-info/lexical-scope-in-stack-closure.rs
index 744c77b2735..14955a69d7f 100644
--- a/src/test/debug-info/lexical-scope-in-stack-closure.rs
+++ b/src/test/debug-info/lexical-scope-in-stack-closure.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/lexical-scope-in-unique-closure.rs b/src/test/debug-info/lexical-scope-in-unique-closure.rs
index 6d8ca457efe..284db7a69ee 100644
--- a/src/test/debug-info/lexical-scope-in-unique-closure.rs
+++ b/src/test/debug-info/lexical-scope-in-unique-closure.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/lexical-scope-in-while.rs b/src/test/debug-info/lexical-scope-in-while.rs
index 80010bdd262..8b681e86823 100644
--- a/src/test/debug-info/lexical-scope-in-while.rs
+++ b/src/test/debug-info/lexical-scope-in-while.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/lexical-scope-with-macro.rs b/src/test/debug-info/lexical-scope-with-macro.rs
index 6e23797e10d..96dbeacfd44 100644
--- a/src/test/debug-info/lexical-scope-with-macro.rs
+++ b/src/test/debug-info/lexical-scope-with-macro.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/lexical-scopes-in-block-expression.rs b/src/test/debug-info/lexical-scopes-in-block-expression.rs
index 652561c6aef..4206429d428 100644
--- a/src/test/debug-info/lexical-scopes-in-block-expression.rs
+++ b/src/test/debug-info/lexical-scopes-in-block-expression.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // xfail-win32
+// xfail-android
 
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/method-on-enum.rs b/src/test/debug-info/method-on-enum.rs
index a6aacdf8e66..c613f8fce95 100644
--- a/src/test/debug-info/method-on-enum.rs
+++ b/src/test/debug-info/method-on-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/method-on-generic-struct.rs b/src/test/debug-info/method-on-generic-struct.rs
index 63fd6c996ff..48ef346260f 100644
--- a/src/test/debug-info/method-on-generic-struct.rs
+++ b/src/test/debug-info/method-on-generic-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/method-on-struct.rs b/src/test/debug-info/method-on-struct.rs
index 249c3a073a2..4f8cb9515f4 100644
--- a/src/test/debug-info/method-on-struct.rs
+++ b/src/test/debug-info/method-on-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/method-on-trait.rs b/src/test/debug-info/method-on-trait.rs
index 07a29f3ece3..1ab03315b18 100644
--- a/src/test/debug-info/method-on-trait.rs
+++ b/src/test/debug-info/method-on-trait.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/method-on-tuple-struct.rs b/src/test/debug-info/method-on-tuple-struct.rs
index 36aded40ca5..70124b7071e 100644
--- a/src/test/debug-info/method-on-tuple-struct.rs
+++ b/src/test/debug-info/method-on-tuple-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/multiple-functions-equal-var-names.rs b/src/test/debug-info/multiple-functions-equal-var-names.rs
index 881e2547cfc..dbbbfb8b82e 100644
--- a/src/test/debug-info/multiple-functions-equal-var-names.rs
+++ b/src/test/debug-info/multiple-functions-equal-var-names.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/multiple-functions.rs b/src/test/debug-info/multiple-functions.rs
index 880954ce531..f8f71e1f3ba 100644
--- a/src/test/debug-info/multiple-functions.rs
+++ b/src/test/debug-info/multiple-functions.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/name-shadowing-and-scope-nesting.rs b/src/test/debug-info/name-shadowing-and-scope-nesting.rs
index 273ca255061..62f9a6afa38 100644
--- a/src/test/debug-info/name-shadowing-and-scope-nesting.rs
+++ b/src/test/debug-info/name-shadowing-and-scope-nesting.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/nil-enum.rs b/src/test/debug-info/nil-enum.rs
index 9dc4edfb159..961112ab071 100644
--- a/src/test/debug-info/nil-enum.rs
+++ b/src/test/debug-info/nil-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/option-like-enum.rs b/src/test/debug-info/option-like-enum.rs
index 093b59a2bfe..9b8359d58fb 100644
--- a/src/test/debug-info/option-like-enum.rs
+++ b/src/test/debug-info/option-like-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/packed-struct.rs b/src/test/debug-info/packed-struct.rs
index 8d3fc4babb8..69a1dddb74c 100644
--- a/src/test/debug-info/packed-struct.rs
+++ b/src/test/debug-info/packed-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/recursive-struct.rs b/src/test/debug-info/recursive-struct.rs
index 29b15ad91c5..d06ed8b87a1 100644
--- a/src/test/debug-info/recursive-struct.rs
+++ b/src/test/debug-info/recursive-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 #[feature(managed_boxes)];
 
 // compile-flags:-Z extra-debug-info
diff --git a/src/test/debug-info/self-in-default-method.rs b/src/test/debug-info/self-in-default-method.rs
index fde58f76acc..a539fc47d05 100644
--- a/src/test/debug-info/self-in-default-method.rs
+++ b/src/test/debug-info/self-in-default-method.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/self-in-generic-default-method.rs b/src/test/debug-info/self-in-generic-default-method.rs
index 3daf7afd4b1..5f0993a972e 100644
--- a/src/test/debug-info/self-in-generic-default-method.rs
+++ b/src/test/debug-info/self-in-generic-default-method.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/shadowed-argument.rs b/src/test/debug-info/shadowed-argument.rs
index adc240e40d5..3f89f85aca5 100644
--- a/src/test/debug-info/shadowed-argument.rs
+++ b/src/test/debug-info/shadowed-argument.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/shadowed-variable.rs b/src/test/debug-info/shadowed-variable.rs
index acc8cf3b654..4415666c4d2 100644
--- a/src/test/debug-info/shadowed-variable.rs
+++ b/src/test/debug-info/shadowed-variable.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/simple-lexical-scope.rs b/src/test/debug-info/simple-lexical-scope.rs
index fbcee4f0ae2..72dc2d7827b 100644
--- a/src/test/debug-info/simple-lexical-scope.rs
+++ b/src/test/debug-info/simple-lexical-scope.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/simple-struct.rs b/src/test/debug-info/simple-struct.rs
index a47472af1ef..f708713fe8c 100644
--- a/src/test/debug-info/simple-struct.rs
+++ b/src/test/debug-info/simple-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/simple-tuple.rs b/src/test/debug-info/simple-tuple.rs
index 1e4c53427b2..5c870bf1dc8 100644
--- a/src/test/debug-info/simple-tuple.rs
+++ b/src/test/debug-info/simple-tuple.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/static-method-on-struct-and-enum.rs b/src/test/debug-info/static-method-on-struct-and-enum.rs
index 062cbdd4859..e83d50978a8 100644
--- a/src/test/debug-info/static-method-on-struct-and-enum.rs
+++ b/src/test/debug-info/static-method-on-struct-and-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/struct-in-enum.rs b/src/test/debug-info/struct-in-enum.rs
index a821ce21d50..208a2f4bd23 100644
--- a/src/test/debug-info/struct-in-enum.rs
+++ b/src/test/debug-info/struct-in-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print union on
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/struct-in-struct.rs b/src/test/debug-info/struct-in-struct.rs
index f1690fba354..df90842c258 100644
--- a/src/test/debug-info/struct-in-struct.rs
+++ b/src/test/debug-info/struct-in-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/struct-style-enum.rs b/src/test/debug-info/struct-style-enum.rs
index 90072367bc5..c4ec56aff78 100644
--- a/src/test/debug-info/struct-style-enum.rs
+++ b/src/test/debug-info/struct-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print union on
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/trait-pointers.rs b/src/test/debug-info/trait-pointers.rs
index d93d2b30f81..5d726296fad 100644
--- a/src/test/debug-info/trait-pointers.rs
+++ b/src/test/debug-info/trait-pointers.rs
@@ -10,6 +10,8 @@
 
 #[feature(managed_boxes)];
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:run
 
diff --git a/src/test/debug-info/tuple-in-struct.rs b/src/test/debug-info/tuple-in-struct.rs
index 25a08b3f57a..ea9d1c632c9 100644
--- a/src/test/debug-info/tuple-in-struct.rs
+++ b/src/test/debug-info/tuple-in-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/tuple-in-tuple.rs b/src/test/debug-info/tuple-in-tuple.rs
index 14dd671bb94..bd56014dfcf 100644
--- a/src/test/debug-info/tuple-in-tuple.rs
+++ b/src/test/debug-info/tuple-in-tuple.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/tuple-struct.rs b/src/test/debug-info/tuple-struct.rs
index 63a74ecbe4a..59d487f0353 100644
--- a/src/test/debug-info/tuple-struct.rs
+++ b/src/test/debug-info/tuple-struct.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/tuple-style-enum.rs b/src/test/debug-info/tuple-style-enum.rs
index fef6b449a9b..3401992728f 100644
--- a/src/test/debug-info/tuple-style-enum.rs
+++ b/src/test/debug-info/tuple-style-enum.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print union on
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/var-captured-in-nested-closure.rs b/src/test/debug-info/var-captured-in-nested-closure.rs
index 152ba57ddba..e4748f4deb1 100644
--- a/src/test/debug-info/var-captured-in-nested-closure.rs
+++ b/src/test/debug-info/var-captured-in-nested-closure.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/var-captured-in-stack-closure.rs b/src/test/debug-info/var-captured-in-stack-closure.rs
index 987d19911c4..4a148c88472 100644
--- a/src/test/debug-info/var-captured-in-stack-closure.rs
+++ b/src/test/debug-info/var-captured-in-stack-closure.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:rbreak zzz
 // debugger:run
diff --git a/src/test/debug-info/vec-slices.rs b/src/test/debug-info/vec-slices.rs
index 1b6dfaecfcd..2157b21e038 100644
--- a/src/test/debug-info/vec-slices.rs
+++ b/src/test/debug-info/vec-slices.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz
diff --git a/src/test/debug-info/vec.rs b/src/test/debug-info/vec.rs
index bc10b5ec8b7..2da9d5186cc 100644
--- a/src/test/debug-info/vec.rs
+++ b/src/test/debug-info/vec.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// xfail-android
+
 // compile-flags:-Z extra-debug-info
 // debugger:set print pretty off
 // debugger:rbreak zzz