@@ -23,25 +23,30 @@ fn unknown_param() -> Result<(), Box<dyn std::error::Error>> {
2323}
2424
2525#[ test]
26- fn cannot_read_from_file ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
26+ fn cannot_read_files ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
27+ let file = NamedTempFile :: new ( ) ?;
28+
2729 let mut cmd = Command :: cargo_bin ( "diffutils" ) ?;
28- cmd. arg ( "foo.txt" ) . arg ( "bar.txt" ) ;
30+ cmd. arg ( "foo.txt" ) . arg ( file . path ( ) ) ;
2931 cmd. assert ( )
3032 . code ( predicate:: eq ( 2 ) )
3133 . failure ( )
3234 . stderr ( predicate:: str:: starts_with ( "Failed to read from-file" ) ) ;
33- Ok ( ( ) )
34- }
3535
36- #[ test]
37- fn cannot_read_to_file ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
38- let file = NamedTempFile :: new ( ) ?;
3936 let mut cmd = Command :: cargo_bin ( "diffutils" ) ?;
40- cmd. arg ( file. path ( ) ) . arg ( "bar .txt" ) ;
37+ cmd. arg ( file. path ( ) ) . arg ( "foo .txt" ) ;
4138 cmd. assert ( )
4239 . code ( predicate:: eq ( 2 ) )
4340 . failure ( )
4441 . stderr ( predicate:: str:: starts_with ( "Failed to read to-file" ) ) ;
42+
43+ let mut cmd = Command :: cargo_bin ( "diffutils" ) ?;
44+ cmd. arg ( "foo.txt" ) . arg ( "foo.txt" ) ;
45+ cmd. assert ( )
46+ . code ( predicate:: eq ( 2 ) )
47+ . failure ( )
48+ . stderr ( predicate:: str:: starts_with ( "Failed to read from-file" ) ) ;
49+
4550 Ok ( ( ) )
4651}
4752
@@ -180,7 +185,7 @@ fn read_from_stdin() -> Result<(), Box<dyn std::error::Error>> {
180185 assert_diff_eq ! (
181186 output,
182187 format!(
183- "--- {}\t \n +++ /dev/stdin \t \n @@ -1 +1 @@\n -foo\n +bar\n " ,
188+ "--- {}\t \n +++ - \t \n @@ -1 +1 @@\n -foo\n +bar\n " ,
184189 file1. path( ) . to_string_lossy( )
185190 )
186191 ) ;
@@ -196,17 +201,36 @@ fn read_from_stdin() -> Result<(), Box<dyn std::error::Error>> {
196201 assert_diff_eq ! (
197202 output,
198203 format!(
199- "--- /dev/stdin \t \n +++ {}\t \n @@ -1 +1 @@\n -foo\n +bar\n " ,
204+ "--- - \t \n +++ {}\t \n @@ -1 +1 @@\n -foo\n +bar\n " ,
200205 file2. path( ) . to_string_lossy( )
201206 )
202207 ) ;
203208
204209 let mut cmd = Command :: cargo_bin ( "diffutils" ) ?;
205- cmd. arg ( "-u" ) . arg ( "-" ) . arg ( "-" ) . write_stdin ( "foo \n " ) ;
210+ cmd. arg ( "-u" ) . arg ( "-" ) . arg ( "-" ) ;
206211 cmd. assert ( )
207212 . code ( predicate:: eq ( 0 ) )
208213 . success ( )
209214 . stdout ( predicate:: str:: is_empty ( ) ) ;
210215
216+ #[ cfg( unix) ]
217+ {
218+ let mut cmd = Command :: cargo_bin ( "diffutils" ) ?;
219+ cmd. arg ( "-u" )
220+ . arg ( file1. path ( ) )
221+ . arg ( "/dev/stdin" )
222+ . write_stdin ( "bar\n " ) ;
223+ cmd. assert ( ) . code ( predicate:: eq ( 1 ) ) . failure ( ) ;
224+
225+ let output = cmd. output ( ) . unwrap ( ) . stdout ;
226+ assert_diff_eq ! (
227+ output,
228+ format!(
229+ "--- {}\t \n +++ /dev/stdin\t \n @@ -1 +1 @@\n -foo\n +bar\n " ,
230+ file1. path( ) . to_string_lossy( )
231+ )
232+ ) ;
233+ }
234+
211235 Ok ( ( ) )
212236}
0 commit comments