@@ -14,7 +14,7 @@ pub fn verify() -> Result<(), ()> {
14
14
compile_only ( "exercises/functions/functions3.rs" ) ?;
15
15
compile_only ( "exercises/functions/functions4.rs" ) ?;
16
16
compile_only ( "exercises/functions/functions5.rs" ) ?;
17
- compile_only ( "exercises/test1.rs" ) ?;
17
+ test ( "exercises/test1.rs" ) ?;
18
18
compile_only ( "exercises/primitive_types/primitive_types1.rs" ) ?;
19
19
compile_only ( "exercises/primitive_types/primitive_types2.rs" ) ?;
20
20
compile_only ( "exercises/primitive_types/primitive_types3.rs" ) ?;
@@ -87,19 +87,36 @@ pub fn test(filename: &str) -> Result<(), ()> {
87
87
. args ( & [ "--test" , filename, "-o" , "temp" , "--color" , "always" ] )
88
88
. output ( )
89
89
. expect ( "fail" ) ;
90
- bar. finish_and_clear ( ) ;
91
90
if testcmd. status . success ( ) {
92
- let formatstr = format ! ( "{} Successfully tested {}!" , Emoji ( "✅" , "✓" ) , filename) ;
93
- println ! ( "{}" , style( formatstr) . green( ) ) ;
94
- clean ( ) ;
95
- Ok ( ( ) )
91
+ bar. set_message ( format ! ( "Running {}..." , filename) . as_str ( ) ) ;
92
+ let runcmd = Command :: new ( "./temp" ) . output ( ) . expect ( "fail" ) ;
93
+ bar. finish_and_clear ( ) ;
94
+
95
+ if runcmd. status . success ( ) {
96
+ let formatstr = format ! ( "{} Successfully tested {}!" , Emoji ( "✅" , "✓" ) , filename) ;
97
+ println ! ( "{}" , style( formatstr) . green( ) ) ;
98
+ clean ( ) ;
99
+ Ok ( ( ) )
100
+ } else {
101
+ let formatstr = format ! (
102
+ "{} Testing of {} failed! Please try again. Here's the output:" ,
103
+ Emoji ( "⚠️ " , "!" ) ,
104
+ filename
105
+ ) ;
106
+ println ! ( "{}" , style( formatstr) . red( ) ) ;
107
+ println ! ( "{}" , String :: from_utf8_lossy( & runcmd. stdout) ) ;
108
+ clean ( ) ;
109
+ Err ( ( ) )
110
+ }
96
111
} else {
112
+ bar. finish_and_clear ( ) ;
97
113
let formatstr = format ! (
98
- "{} Testing of {} failed! Please try again." ,
114
+ "{} Compiling of {} failed! Please try again. Here's the output: " ,
99
115
Emoji ( "⚠️ " , "!" ) ,
100
116
filename
101
117
) ;
102
118
println ! ( "{}" , style( formatstr) . red( ) ) ;
119
+ println ! ( "{}" , String :: from_utf8_lossy( & testcmd. stderr) ) ;
103
120
clean ( ) ;
104
121
Err ( ( ) )
105
122
}
0 commit comments