55
66use regex:: Regex ;
77
8- // use crate::params::parse_params;
98use crate :: side_diff;
109use crate :: utils;
1110use std:: env:: ArgsOs ;
@@ -227,17 +226,21 @@ mod tests {
227226 assert_eq ! (
228227 Ok ( Params {
229228 executable: os( "sdiff" ) ,
230- from: os( "foo " ) ,
231- to: os( "bar " ) ,
229+ from: os( "- " ) ,
230+ to: os( "- " ) ,
232231 ..Default :: default ( )
233232 } ) ,
234- parse_params(
235- [ os( "sdiff" ) , os( "foo" ) , os( "bar" ) ]
236- . iter( )
237- . cloned( )
238- . peekable( )
239- )
233+ parse_params( [ os( "sdiff" ) , os( "-" ) , os( "-" ) ] . iter( ) . cloned( ) . peekable( ) )
240234 ) ;
235+
236+ assert ! ( parse_params(
237+ [ os( "sdiff" ) , os( "foo" ) , os( "bar" ) , os( "-" ) , os( "-" ) ]
238+ . iter( )
239+ . cloned( )
240+ . peekable( )
241+ )
242+ . is_err( ) ) ;
243+
241244 for option in [ "-t" , "--expand-tabs" ] {
242245 assert_eq ! (
243246 Ok ( Params {
@@ -255,6 +258,39 @@ mod tests {
255258 )
256259 ) ;
257260 }
261+
262+ assert_eq ! (
263+ Ok ( Params {
264+ executable: os( "sdiff" ) ,
265+ from: os( "foo" ) ,
266+ to: os( "bar" ) ,
267+ width: 10 ,
268+ ..Default :: default ( )
269+ } ) ,
270+ parse_params(
271+ [ os( "sdiff" ) , os( "--width=10" ) , os( "foo" ) , os( "bar" ) ]
272+ . iter( )
273+ . cloned( )
274+ . peekable( )
275+ )
276+ ) ;
277+
278+ assert ! ( parse_params(
279+ [ os( "sdiff" ) , os( "--width=0" ) , os( "foo" ) , os( "bar" ) ]
280+ . iter( )
281+ . cloned( )
282+ . peekable( )
283+ )
284+ . is_err( ) ) ;
285+
286+ assert ! ( parse_params(
287+ [ os( "sdiff" ) , os( "--width=.1" ) , os( "foo" ) , os( "bar" ) ]
288+ . iter( )
289+ . cloned( )
290+ . peekable( )
291+ )
292+ . is_err( ) ) ;
293+
258294 assert_eq ! (
259295 Ok ( Params {
260296 executable: os( "sdiff" ) ,
@@ -269,6 +305,7 @@ mod tests {
269305 . peekable( )
270306 )
271307 ) ;
308+
272309 assert_eq ! (
273310 Ok ( Params {
274311 executable: os( "sdiff" ) ,
@@ -284,6 +321,15 @@ mod tests {
284321 . peekable( )
285322 )
286323 ) ;
324+
325+ assert ! ( parse_params(
326+ [ os( "sdiff" ) , os( "--tabsize=0" ) , os( "foo" ) , os( "bar" ) ]
327+ . iter( )
328+ . cloned( )
329+ . peekable( )
330+ )
331+ . is_err( ) ) ;
332+
287333 assert_eq ! (
288334 Ok ( Params {
289335 executable: os( "sdiff" ) ,
@@ -299,41 +345,49 @@ mod tests {
299345 . peekable( )
300346 )
301347 ) ;
348+
349+ assert ! ( parse_params( [ os( "sdiff" ) ] . iter( ) . cloned( ) . peekable( ) ) . is_err( ) ) ;
350+
302351 assert ! ( parse_params(
303352 [ os( "sdiff" ) , os( "--tabsize" ) , os( "foo" ) , os( "bar" ) ]
304353 . iter( )
305354 . cloned( )
306355 . peekable( )
307356 )
308357 . is_err( ) ) ;
358+
309359 assert ! ( parse_params(
310360 [ os( "sdiff" ) , os( "--tabsize=" ) , os( "foo" ) , os( "bar" ) ]
311361 . iter( )
312362 . cloned( )
313363 . peekable( )
314364 )
315365 . is_err( ) ) ;
366+
316367 assert ! ( parse_params(
317368 [ os( "sdiff" ) , os( "--tabsize=r2" ) , os( "foo" ) , os( "bar" ) ]
318369 . iter( )
319370 . cloned( )
320371 . peekable( )
321372 )
322373 . is_err( ) ) ;
374+
323375 assert ! ( parse_params(
324376 [ os( "sdiff" ) , os( "--tabsize=-1" ) , os( "foo" ) , os( "bar" ) ]
325377 . iter( )
326378 . cloned( )
327379 . peekable( )
328380 )
329381 . is_err( ) ) ;
382+
330383 assert ! ( parse_params(
331384 [ os( "sdiff" ) , os( "--tabsize=r2" ) , os( "foo" ) , os( "bar" ) ]
332385 . iter( )
333386 . cloned( )
334387 . peekable( )
335388 )
336389 . is_err( ) ) ;
390+
337391 assert ! ( parse_params(
338392 [
339393 os( "sdiff" ) ,
0 commit comments