@@ -24,7 +24,10 @@ fn start(argc: int, argv: *const *const u8) -> int {
24
24
25
25
#[ inline( never) ]
26
26
fn foo ( ) {
27
- fail ! ( )
27
+ let _v = vec ! [ 1 i, 2 , 3 ] ;
28
+ if os:: getenv ( "IS_TEST" ) . is_some ( ) {
29
+ fail ! ( )
30
+ }
28
31
}
29
32
30
33
#[ inline( never) ]
@@ -37,32 +40,35 @@ fn double() {
37
40
}
38
41
39
42
fn runtest ( me : & str ) {
43
+ let mut template = Command :: new ( me) ;
44
+ template. env ( "IS_TEST" , "1" ) ;
45
+
40
46
// Make sure that the stack trace is printed
41
- let mut p = Command :: new ( me ) . arg ( "fail" ) . env ( "RUST_BACKTRACE" , "1" ) . spawn ( ) . unwrap ( ) ;
47
+ let p = template . clone ( ) . arg ( "fail" ) . env ( "RUST_BACKTRACE" , "1" ) . spawn ( ) . unwrap ( ) ;
42
48
let out = p. wait_with_output ( ) . unwrap ( ) ;
43
49
assert ! ( !out. status. success( ) ) ;
44
50
let s = str:: from_utf8 ( out. error . as_slice ( ) ) . unwrap ( ) ;
45
51
assert ! ( s. contains( "stack backtrace" ) && s. contains( "foo::h" ) ,
46
52
"bad output: {}" , s) ;
47
53
48
54
// Make sure the stack trace is *not* printed
49
- let mut p = Command :: new ( me ) . arg ( "fail" ) . spawn ( ) . unwrap ( ) ;
55
+ let p = template . clone ( ) . arg ( "fail" ) . spawn ( ) . unwrap ( ) ;
50
56
let out = p. wait_with_output ( ) . unwrap ( ) ;
51
57
assert ! ( !out. status. success( ) ) ;
52
58
let s = str:: from_utf8 ( out. error . as_slice ( ) ) . unwrap ( ) ;
53
59
assert ! ( !s. contains( "stack backtrace" ) && !s. contains( "foo::h" ) ,
54
60
"bad output2: {}" , s) ;
55
61
56
62
// Make sure a stack trace is printed
57
- let mut p = Command :: new ( me ) . arg ( "double-fail" ) . spawn ( ) . unwrap ( ) ;
63
+ let p = template . clone ( ) . arg ( "double-fail" ) . spawn ( ) . unwrap ( ) ;
58
64
let out = p. wait_with_output ( ) . unwrap ( ) ;
59
65
assert ! ( !out. status. success( ) ) ;
60
66
let s = str:: from_utf8 ( out. error . as_slice ( ) ) . unwrap ( ) ;
61
67
assert ! ( s. contains( "stack backtrace" ) && s. contains( "double::h" ) ,
62
68
"bad output3: {}" , s) ;
63
69
64
70
// Make sure a stack trace isn't printed too many times
65
- let mut p = Command :: new ( me ) . arg ( "double-fail" )
71
+ let p = template . clone ( ) . arg ( "double-fail" )
66
72
. env ( "RUST_BACKTRACE" , "1" ) . spawn ( ) . unwrap ( ) ;
67
73
let out = p. wait_with_output ( ) . unwrap ( ) ;
68
74
assert ! ( !out. status. success( ) ) ;
0 commit comments