@@ -37,6 +37,18 @@ use std::vec;
3737use extra:: test:: MetricMap ;
3838
3939pub fn run ( config : config , testfile : ~str ) {
40+
41+ match config. target {
42+
43+ ~"arm-linux-androideabi" => {
44+ if !config. adb_device_status {
45+ fail ! ( "android device not available" ) ;
46+ }
47+ }
48+
49+ _=> { }
50+ }
51+
4052 let mut _mm = MetricMap :: new ( ) ;
4153 run_metrics ( config, testfile, & mut _mm) ;
4254}
@@ -99,20 +111,8 @@ fn run_rfail_test(config: &config, props: &TestProps, testfile: &Path) {
99111 fatal_ProcRes(~" run-fail test isn' t valgrind-clean!", &ProcRes);
100112 }
101113
102- match config.target {
103-
104- ~" arm-linux-androideabi " => {
105- if ( config. adb_device_status ) {
106- check_correct_failure_status ( & ProcRes ) ;
107- check_error_patterns ( props, testfile, & ProcRes ) ;
108- }
109- }
110-
111- _=> {
112- check_correct_failure_status ( & ProcRes ) ;
113- check_error_patterns ( props, testfile, & ProcRes ) ;
114- }
115- }
114+ check_correct_failure_status(&ProcRes);
115+ check_error_patterns(props, testfile, &ProcRes);
116116}
117117
118118fn check_correct_failure_status(ProcRes: &ProcRes) {
@@ -275,86 +275,86 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
275275 let mut ProcArgs ;
276276 match config. target {
277277 ~"arm-linux-androideabi" => {
278- if ( config. adb_device_status) {
279-
280- cmds = cmds. replace( "run", "continue ") ;
281-
282- // write debugger script
283- let script_str = [ ~"set charset UTF-8 ",
284- format!( "file { } ", exe_file. as_str( ) . unwrap( ) . to_owned( ) ) ,
285- ~"target remote : 5039 ",
286- cmds,
287- ~"quit"] . connect( "\n ") ;
288- debug!( "script_str = { } ", script_str) ;
289- dump_output_file( config, testfile, script_str, "debugger. script") ;
290-
291-
292- procsrv : : run( "" , config. adb_path,
293- [ ~"push", exe_file. as_str( ) . unwrap( ) . to_owned( ) , config. adb_test_dir. clone( ) ] ,
294- ~[ ( ~"", ~"") ] , Some ( ~"") )
295- . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
296-
297- procsrv:: run( "" , config. adb_path,
298- [ ~"forward", ~"tcp: 5039 ", ~"tcp: 5039 "] ,
299- ~[ ( ~"", ~"") ] , Some ( ~"") )
300- . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
301-
302- let adb_arg = format ! ( "export LD_LIBRARY_PATH={}; gdbserver :5039 {}/{}" ,
303- config. adb_test_dir. clone( ) , config. adb_test_dir. clone( ) ,
304- str :: from_utf8( exe_file. filename( ) . unwrap( ) ) ) ;
305-
306- let mut process = procsrv:: run_background( "" , config. adb_path,
307- [ ~"shell", adb_arg. clone( ) ] , ~[ ( ~"", ~"") ] , Some ( ~"") )
308- . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
309- loop {
310- //waiting 1 second for gdbserver start
311- timer:: sleep( 1000 ) ;
312- let result = do task:: try {
313- tcp : : TcpStream :: connect(
314- SocketAddr { ip : Ipv4Addr ( 127 , 0 , 0 , 1 ) , port : 5039 } ) ;
315- } ;
316- if result. is_err ( ) {
317- continue;
318- }
319- break;
320- }
321278
322- let args = split_maybe_args( & config. rustcflags) ;
323- let mut tool_path: ~str = ~"";
324- for arg in args. iter( ) {
325- if arg. contains ( "--android-cross-path=" ) {
326- tool_path = arg. replace ( "--android-cross-path=" , "" ) ;
327- break ;
328- }
329- }
279+ cmds = cmds. replace( "run", "continue ") ;
330280
331- if tool_path. equals ( & ~"") {
332- fatal ( ~"cannot found android cross path") ;
333- }
281+ // write debugger script
282+ let script_str = [ ~"set charset UTF-8 ",
283+ format!( "file { } ", exe_file. as_str( ) . unwrap( ) . to_owned( ) ) ,
284+ ~"target remote : 5039 ",
285+ cmds,
286+ ~"quit"] . connect( "\n ") ;
287+ debug!( "script_str = { } ", script_str) ;
288+ dump_output_file( config, testfile, script_str, "debugger. script") ;
334289
335- let debugger_script = make_out_name ( config, testfile, "debugger.script" ) ;
336- // FIXME (#9639): This needs to handle non-utf8 paths
337- let debugger_opts = ~[ ~"-quiet", ~"-batch", ~"-nx",
338- "-command=" + debugger_script. as_str ( ) . unwrap ( ) . to_owned ( ) ] ;
339-
340- let gdb_path = tool_path. append ( "/bin/arm-linux-androideabi-gdb" ) ;
341- let procsrv:: Result { out, err, status } =
342- procsrv:: run ( "" ,
343- gdb_path,
344- debugger_opts, ~[ ( ~"", ~"") ] , None )
345- . expect ( format ! ( "failed to exec `{}`" , gdb_path) ) ;
346- let cmdline = {
347- let cmdline = make_cmdline ( "" , "arm-linux-androideabi-gdb" , debugger_opts) ;
348- logv ( config, format ! ( "executing {}" , cmdline) ) ;
349- cmdline
290+
291+ procsrv: : run( "" , config. adb_path,
292+ [ ~"push", exe_file. as_str( ) . unwrap( ) . to_owned( ) ,
293+ config. adb_test_dir. clone( ) ] ,
294+ ~[ ( ~"", ~"") ] , Some ( ~"") )
295+ . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
296+
297+ procsrv:: run( "" , config. adb_path,
298+ [ ~"forward", ~"tcp: 5039 ", ~"tcp: 5039 "] ,
299+ ~[ ( ~"", ~"") ] , Some ( ~"") )
300+ . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
301+
302+ let adb_arg = format ! ( "export LD_LIBRARY_PATH={}; gdbserver :5039 {}/{}" ,
303+ config. adb_test_dir. clone( ) , config. adb_test_dir. clone( ) ,
304+ str :: from_utf8( exe_file. filename( ) . unwrap( ) ) ) ;
305+
306+ let mut process = procsrv:: run_background( "" , config. adb_path,
307+ [ ~"shell", adb_arg. clone( ) ] ,
308+ ~[ ( ~"", ~"") ] , Some ( ~"") )
309+ . expect( format ! ( "failed to exec `{}`" , config. adb_path) ) ;
310+ loop {
311+ //waiting 1 second for gdbserver start
312+ timer:: sleep( 1000 ) ;
313+ let result = do task:: try {
314+ tcp : : TcpStream :: connect(
315+ SocketAddr { ip : Ipv4Addr ( 127 , 0 , 0 , 1 ) , port : 5039 } ) ;
350316 } ;
317+ if result. is_err ( ) {
318+ continue;
319+ }
320+ break;
321+ }
322+
323+ let args = split_maybe_args( & config. rustcflags) ;
324+ let mut tool_path: ~str = ~"";
325+ for arg in args. iter( ) {
326+ if arg. contains( "--android-cross-path=" ) {
327+ tool_path = arg. replace( "--android-cross-path=" , "" ) ;
328+ break ;
329+ }
330+ }
351331
352- ProcRes = ProcRes { status : status,
353- stdout : out,
354- stderr : err,
355- cmdline : cmdline} ;
356- process. force_destroy ( ) ;
332+ if tool_path. equals( & ~"") {
333+ fatal( ~"cannot found android cross path") ;
357334 }
335+
336+ let debugger_script = make_out_name( config, testfile, "debugger.script" ) ;
337+ // FIXME (#9639): This needs to handle non-utf8 paths
338+ let debugger_opts = ~[ ~"-quiet", ~"-batch", ~"-nx",
339+ "-command=" + debugger_script. as_str( ) . unwrap( ) . to_owned( ) ] ;
340+
341+ let gdb_path = tool_path. append( "/bin/arm-linux-androideabi-gdb" ) ;
342+ let procsrv:: Result { out, err, status } =
343+ procsrv:: run( "" ,
344+ gdb_path,
345+ debugger_opts, ~[ ( ~"", ~"") ] , None )
346+ . expect( format ! ( "failed to exec `{}`" , gdb_path) ) ;
347+ let cmdline = {
348+ let cmdline = make_cmdline( "" , "arm-linux-androideabi-gdb" , debugger_opts) ;
349+ logv( config, format ! ( "executing {}" , cmdline) ) ;
350+ cmdline
351+ } ;
352+
353+ ProcRes = ProcRes { status : status,
354+ stdout : out,
355+ stderr : err,
356+ cmdline : cmdline} ;
357+ process. force_destroy( ) ;
358358 }
359359
360360 _=> {
@@ -662,11 +662,7 @@ fn exec_compiled_test(config: &config, props: &TestProps,
662662 match config. target {
663663
664664 ~"arm-linux-androideabi" => {
665- if ( config. adb_device_status ) {
666- _arm_exec_compiled_test ( config, props, testfile, env)
667- } else {
668- _dummy_exec_compiled_test ( config, props, testfile)
669- }
665+ _arm_exec_compiled_test ( config, props, testfile, env)
670666 }
671667
672668 _=> {
@@ -710,9 +706,7 @@ fn compose_and_run_compiler(
710706 match config. target {
711707
712708 ~"arm-linux-androideabi" => {
713- if ( config. adb_device_status ) {
714- _arm_push_aux_shared_library ( config, testfile) ;
715- }
709+ _arm_push_aux_shared_library ( config, testfile) ;
716710 }
717711
718712 _=> { }
@@ -992,20 +986,6 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps,
992986 }
993987}
994988
995- fn _dummy_exec_compiled_test ( config : & config , props : & TestProps ,
996- testfile : & Path ) -> ProcRes {
997-
998- let args = make_run_args ( config, props, testfile) ;
999- let cmdline = make_cmdline ( "" , args. prog , args. args ) ;
1000-
1001- match config. mode {
1002- mode_run_fail => ProcRes { status : process:: ExitStatus ( 101 ) , stdout: ~"",
1003- stderr: ~"", cmdline : cmdline} ,
1004- _ => ProcRes { status : process:: ExitStatus ( 0 ) , stdout: ~"",
1005- stderr: ~"", cmdline : cmdline}
1006- }
1007- }
1008-
1009989fn _arm_push_aux_shared_library ( config : & config , testfile : & Path ) {
1010990 let tdir = aux_output_dir_name ( config, testfile) ;
1011991
0 commit comments