1
1
// run-pass
2
- // ignore-cloudabi no processes
3
- // ignore-emscripten no processes
4
- // ignore-sgx no processes
2
+ // check-run-results
5
3
6
4
// Tests ensuring that `dbg!(expr)` has the expected run-time behavior.
7
5
// as well as some compile time properties we expect.
@@ -18,7 +16,7 @@ struct Point<T> {
18
16
#[ derive( Debug , PartialEq ) ]
19
17
struct NoCopy ( usize ) ;
20
18
21
- fn test ( ) {
19
+ fn main ( ) {
22
20
let a: Unit = dbg ! ( Unit ) ;
23
21
let _: Unit = dbg ! ( a) ;
24
22
// We can move `a` because it's Copy.
@@ -67,81 +65,3 @@ fn test() {
67
65
assert_eq ! ( ( 1u8 , 2u32 , "Yeah" ) , dbg!( 1u8 , 2u32 ,
68
66
"Yeah" , ) ) ;
69
67
}
70
-
71
- fn validate_stderr ( stderr : Vec < String > ) {
72
- assert_eq ! ( stderr, & [
73
- ":22] Unit = Unit" ,
74
-
75
- ":23] a = Unit" ,
76
-
77
- ":29] Point{x: 42, y: 24,} = Point {" ,
78
- " x: 42," ,
79
- " y: 24," ,
80
- "}" ,
81
-
82
- ":30] b = Point {" ,
83
- " x: 42," ,
84
- " y: 24," ,
85
- "}" ,
86
-
87
- ":38]" ,
88
-
89
- ":42] &a = NoCopy(" ,
90
- " 1337," ,
91
- ")" ,
92
-
93
- ":42] dbg!(& a) = NoCopy(" ,
94
- " 1337," ,
95
- ")" ,
96
- ":47] f(&42) = 42" ,
97
-
98
- "before" ,
99
- ":52] { foo += 1; eprintln!(\" before\" ); 7331 } = 7331" ,
100
-
101
- ":60] (\" Yeah\" ,) = (" ,
102
- " \" Yeah\" ," ,
103
- ")" ,
104
-
105
- ":63] 1 = 1" ,
106
- ":63] 2 = 2" ,
107
-
108
- ":67] 1u8 = 1" ,
109
- ":67] 2u32 = 2" ,
110
- ":67] \" Yeah\" = \" Yeah\" " ,
111
- ] ) ;
112
- }
113
-
114
- fn main ( ) {
115
- // The following is a hack to deal with compiletest's inability
116
- // to check the output (to stdout) of run-pass tests.
117
- use std:: env;
118
- use std:: process:: Command ;
119
-
120
- let mut args = env:: args ( ) ;
121
- let prog = args. next ( ) . unwrap ( ) ;
122
- let child = args. next ( ) ;
123
- if let Some ( "child" ) = child. as_ref ( ) . map ( |s| & * * s) {
124
- // Only run the test if we've been spawned as 'child'
125
- test ( )
126
- } else {
127
- // This essentially spawns as 'child' to run the tests
128
- // and then it collects output of stderr and checks the output
129
- // against what we expect.
130
- let out = Command :: new ( & prog) . arg ( "child" ) . output ( ) . unwrap ( ) ;
131
- assert ! ( out. status. success( ) ) ;
132
- assert ! ( out. stdout. is_empty( ) ) ;
133
-
134
- let stderr = String :: from_utf8 ( out. stderr ) . unwrap ( ) ;
135
- let stderr = stderr. lines ( ) . map ( |mut s| {
136
- if s. starts_with ( "[" ) {
137
- // Strip `[` and file path:
138
- s = s. trim_start_matches ( "[" ) ;
139
- assert ! ( s. starts_with( file!( ) ) ) ;
140
- s = s. trim_start_matches ( file ! ( ) ) ;
141
- }
142
- s. to_owned ( )
143
- } ) . collect ( ) ;
144
-
145
- validate_stderr ( stderr) ;
146
- }
147
- }
0 commit comments