@@ -791,15 +791,6 @@ mod tests {
791
791
Engine :: from_path ( get_container_engine ( ) ?, Some ( false ) , msg_info)
792
792
}
793
793
794
- fn get_workspace_root ( subdir : bool ) -> Result < PathBuf > {
795
- let path = match subdir {
796
- true => get_cwd ( ) ?. join ( "member" ) ,
797
- false => get_cwd ( ) ?. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
798
- } ;
799
- fs:: create_dir_all ( & path) ?;
800
- Ok ( path)
801
- }
802
-
803
794
fn cargo_metadata ( subdir : bool , msg_info : MessageInfo ) -> Result < CargoMetadata > {
804
795
let mut metadata = cargo_metadata_with_args (
805
796
Some ( Path :: new ( env ! ( "CARGO_MANIFEST_DIR" ) ) ) ,
@@ -808,7 +799,12 @@ mod tests {
808
799
) ?
809
800
. ok_or_else ( || eyre:: eyre!( "could not find cross workspace" ) ) ?;
810
801
811
- metadata. workspace_root = get_workspace_root ( subdir) ?;
802
+ let root = match subdir {
803
+ true => get_cwd ( ) ?. join ( "member" ) ,
804
+ false => get_cwd ( ) ?. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
805
+ } ;
806
+ fs:: create_dir_all ( & root) ?;
807
+ metadata. workspace_root = root;
812
808
metadata. target_directory = metadata. workspace_root . join ( "target" ) ;
813
809
814
810
Ok ( metadata)
@@ -832,12 +828,13 @@ mod tests {
832
828
. join ( "stable-x86_64-unknown-linux-gnu" ) )
833
829
}
834
830
835
- fn get_directories ( subdir : bool , mount_finder : & MountFinder ) -> Result < Directories > {
836
- let msg_info = MessageInfo :: default ( ) ;
837
- let metadata = cargo_metadata ( subdir, msg_info) ?;
831
+ fn get_directories (
832
+ metadata : & CargoMetadata ,
833
+ mount_finder : & MountFinder ,
834
+ ) -> Result < Directories > {
838
835
let cwd = get_cwd ( ) ?;
839
836
let sysroot = get_sysroot ( ) ?;
840
- Directories :: create ( mount_finder, & metadata, & cwd, & sysroot)
837
+ Directories :: create ( mount_finder, metadata, & cwd, & sysroot)
841
838
}
842
839
843
840
fn path_to_posix ( path : & Path ) -> Result < String > {
@@ -861,13 +858,14 @@ mod tests {
861
858
fn test_host ( ) -> Result < ( ) > {
862
859
let vars = unset_env ( ) ;
863
860
let mount_finder = MountFinder :: new ( vec ! [ ] ) ;
864
- let directories = get_directories ( false , & mount_finder) ?;
861
+ let metadata = cargo_metadata ( false , MessageInfo :: default ( ) ) ?;
862
+ let directories = get_directories ( & metadata, & mount_finder) ?;
865
863
paths_equal ( & directories. cargo , & home ( ) ?. join ( ".cargo" ) ) ?;
866
864
paths_equal ( & directories. xargo , & home ( ) ?. join ( ".xargo" ) ) ?;
867
- paths_equal ( & directories. host_root , & get_workspace_root ( false ) ? ) ?;
865
+ paths_equal ( & directories. host_root , & metadata . workspace_root ) ?;
868
866
assert_eq ! (
869
867
& directories. mount_root,
870
- & path_to_posix( & get_workspace_root ( false ) ? ) ?
868
+ & path_to_posix( & metadata . workspace_root ) ?
871
869
) ;
872
870
assert_eq ! ( & directories. mount_cwd, & path_to_posix( & get_cwd( ) ?) ?) ;
873
871
@@ -876,16 +874,14 @@ mod tests {
876
874
}
877
875
878
876
#[ test]
877
+ #[ cfg_attr( not( target_os = "linux" ) , ignore) ]
879
878
fn test_docker_in_docker ( ) -> Result < ( ) > {
880
- if !cfg ! ( target_os = "linux" ) {
881
- return Ok ( ( ) ) ;
882
- }
883
-
884
879
let vars = unset_env ( ) ;
885
880
886
881
let engine = create_engine ( MessageInfo :: default ( ) ) ;
887
882
let hostname = env:: var ( "HOSTNAME" ) ;
888
883
if engine. is_err ( ) || hostname. is_err ( ) {
884
+ eprintln ! ( "could not get container engine or no hostname found" ) ;
889
885
reset_env ( vars) ;
890
886
return Ok ( ( ) ) ;
891
887
}
@@ -895,12 +891,14 @@ mod tests {
895
891
. arg ( hostname)
896
892
. run_and_get_output ( MessageInfo :: default ( ) ) ?;
897
893
if !output. status . success ( ) {
894
+ eprintln ! ( "inspect failed" ) ;
898
895
reset_env ( vars) ;
899
896
return Ok ( ( ) ) ;
900
897
}
901
898
902
899
let mount_finder = MountFinder :: create ( & engine, true ) ?;
903
- let directories = get_directories ( true , & mount_finder) ?;
900
+ let metadata = cargo_metadata ( true , MessageInfo :: default ( ) ) ?;
901
+ let directories = get_directories ( & metadata, & mount_finder) ?;
904
902
let mount_finder = MountFinder :: new ( docker_read_mount_paths ( & engine) ?) ;
905
903
let mount_path = |p| mount_finder. find_mount_path ( p) ;
906
904
0 commit comments