@@ -5,7 +5,7 @@ use std::{
55} ;
66
77enum Output < ' a > {
8- FullStdout ( & ' a str ) ,
8+ FullStdout ( & ' a [ u8 ] ) ,
99 PartialStdout ( & ' a str ) ,
1010 PartialStderr ( & ' a str ) ,
1111}
@@ -61,32 +61,27 @@ impl<'a> Cmd<'a> {
6161
6262 cmd. args ( self . args ) . stdin ( Stdio :: null ( ) ) ;
6363
64- let output = match self . output {
65- None => cmd. output ( ) . unwrap ( ) ,
64+ let output = cmd. output ( ) . unwrap ( ) ;
65+ match self . output {
66+ None => ( ) ,
6667 Some ( FullStdout ( stdout) ) => {
67- let output = cmd. stderr ( Stdio :: null ( ) ) . output ( ) . unwrap ( ) ;
68- assert_eq ! ( from_utf8( & output. stdout) . unwrap( ) , stdout) ;
69- output
68+ assert_eq ! ( output. stdout, stdout) ;
7069 }
7170 Some ( PartialStdout ( stdout) ) => {
72- let output = cmd. stderr ( Stdio :: null ( ) ) . output ( ) . unwrap ( ) ;
7371 assert ! ( from_utf8( & output. stdout) . unwrap( ) . contains( stdout) ) ;
74- output
7572 }
7673 Some ( PartialStderr ( stderr) ) => {
77- let output = cmd. stdout ( Stdio :: null ( ) ) . output ( ) . unwrap ( ) ;
7874 assert ! ( from_utf8( & output. stderr) . unwrap( ) . contains( stderr) ) ;
79- output
8075 }
8176 } ;
8277
83- assert_eq ! (
84- output . status . success ( ) ,
85- success ,
86- "{cmd:?} \n \n stdout: \n {} \n stderr: \n {}" ,
87- from_utf8( & output. stdout ) . unwrap( ) ,
88- from_utf8 ( & output . stderr ) . unwrap ( ) ,
89- ) ;
78+ if output . status . success ( ) != success {
79+ panic ! (
80+ "{cmd:?} \n \n stdout: \n {} \n \n stderr: \n {}" ,
81+ from_utf8 ( & output . stdout ) . unwrap ( ) ,
82+ from_utf8( & output. stderr ) . unwrap( ) ,
83+ ) ;
84+ }
9085 }
9186
9287 #[ inline]
@@ -153,7 +148,7 @@ fn hint() {
153148 Cmd :: default ( )
154149 . current_dir ( "tests/test_exercises" )
155150 . args ( & [ "hint" , "test_failure" ] )
156- . output ( FullStdout ( "The answer to everything: 42\n " ) )
151+ . output ( FullStdout ( b "The answer to everything: 42\n ") )
157152 . success ( ) ;
158153}
159154
0 commit comments