@@ -558,55 +558,75 @@ mod test {
558
558
559
559
use crate :: { test:: run_named_fifo_try_acquire_tests, Client } ;
560
560
561
- use std:: sync:: Arc ;
561
+ use std:: {
562
+ fs:: File ,
563
+ io:: { self , Write } ,
564
+ os:: unix:: io:: AsRawFd ,
565
+ sync:: Arc ,
566
+ } ;
562
567
563
568
fn from_imp_client ( imp : ClientImp ) -> Client {
564
569
Client {
565
570
inner : Arc :: new ( imp) ,
566
571
}
567
572
}
568
573
569
- #[ test]
570
- fn test_try_acquire_named_fifo ( ) {
574
+ fn new_client_from_fifo ( ) -> ( Client , String ) {
571
575
let file = tempfile:: NamedTempFile :: new ( ) . unwrap ( ) ;
572
576
let fifo_path = file. path ( ) . to_owned ( ) ;
573
577
file. close ( ) . unwrap ( ) ; // Remove the NamedTempFile to create fifo
574
578
575
579
nix:: unistd:: mkfifo ( & fifo_path, nix:: sys:: stat:: Mode :: S_IRWXU ) . unwrap ( ) ;
576
580
577
- let client = ClientImp :: from_fifo ( & format ! ( "fifo:{}" , fifo_path. to_str( ) . unwrap( ) ) )
578
- . unwrap ( )
579
- . map ( from_imp_client)
580
- . unwrap ( ) ;
581
+ let arg = format ! ( "fifo:{}" , fifo_path. to_str( ) . unwrap( ) ) ;
581
582
582
- run_named_fifo_try_acquire_tests ( & client) ;
583
+ (
584
+ ClientImp :: from_fifo ( & arg)
585
+ . unwrap ( )
586
+ . map ( from_imp_client)
587
+ . unwrap ( ) ,
588
+ arg,
589
+ )
583
590
}
584
591
585
- #[ cfg( not( target_os = "linux" ) ) ]
586
- #[ test]
587
- fn test_try_acquire_annoymous_pipe_linux_specific_optimization ( ) {
588
- use std:: {
589
- fs:: File ,
590
- io:: { self , Write } ,
591
- os:: unix:: io:: AsRawFd ,
592
- } ;
593
-
592
+ fn new_client_from_pipe ( ) -> ( Client , String ) {
594
593
let ( read, write) = nix:: unistd:: pipe ( ) . unwrap ( ) ;
595
594
let read = File :: from ( read) ;
596
595
let mut write = File :: from ( write) ;
597
596
598
597
write. write_all ( b"1" ) . unwrap ( ) ;
599
598
600
- let client = unsafe {
601
- ClientImp :: from_pipe ( & format ! ( "{},{}" , read. as_raw_fd( ) , write. as_raw_fd( ) ) , true )
602
- }
603
- . unwrap ( )
604
- . map ( from_imp_client)
605
- . unwrap ( ) ;
599
+ let arg = format ! ( "{},{}" , read. as_raw_fd( ) , write. as_raw_fd( ) ) ;
606
600
601
+ (
602
+ unsafe { ClientImp :: from_pipe ( & arg, true ) }
603
+ . unwrap ( )
604
+ . map ( from_imp_client)
605
+ . unwrap ( ) ,
606
+ arg,
607
+ )
608
+ }
609
+
610
+ #[ test]
611
+ fn test_try_acquire_named_fifo ( ) {
612
+ run_named_fifo_try_acquire_tests ( & new_client_from_fifo ( ) . 0 ) ;
613
+ }
614
+
615
+ #[ cfg( not( target_os = "linux" ) ) ]
616
+ #[ test]
617
+ fn test_try_acquire_annoymous_pipe_linux_specific_optimization ( ) {
607
618
assert_eq ! (
608
- client . try_acquire( ) . unwrap_err( ) . kind( ) ,
619
+ new_client_from_pipe ( ) . 0 . try_acquire( ) . unwrap_err( ) . kind( ) ,
609
620
io:: ErrorKind :: Unsupported
610
621
) ;
611
622
}
623
+
624
+ #[ test]
625
+ fn test_string_arg ( ) {
626
+ let ( client, arg) = new_client_from_fifo ( ) ;
627
+ assert_eq ! ( client. inner. string_arg( ) , arg) ;
628
+
629
+ let ( client, arg) = new_client_from_pipe ( ) ;
630
+ assert_eq ! ( client. inner. string_arg( ) , arg) ;
631
+ }
612
632
}
0 commit comments