@@ -86,11 +86,13 @@ impl Config {
8686mod test {
8787 use super :: * ;
8888
89+ use crate :: test:: TestEnv ;
8990 use std:: io:: Write as _;
9091
9192 #[ test_log:: test]
9293 fn booleans_from_cli ( ) {
93- let shader_crate_path = crate :: test:: shader_crate_test_path ( ) ;
94+ let _env = TestEnv :: new ( ) ;
95+ let shader_crate_path = _env. setup_shader_crate ( ) . unwrap ( ) ;
9496
9597 let args = Config :: clap_command_with_cargo_config (
9698 & shader_crate_path,
@@ -108,55 +110,66 @@ mod test {
108110
109111 #[ test_log:: test]
110112 fn booleans_from_cargo ( ) {
111- let shader_crate_path = crate :: test:: shader_crate_test_path ( ) ;
112- let mut file = crate :: test:: overwrite_shader_cargo_toml ( & shader_crate_path) ;
113- file. write_all (
114- [
115- "[package.metadata.rust-gpu.build]" ,
116- "release = false" ,
117- "[package.metadata.rust-gpu.install]" ,
118- "auto-install-rust-toolchain = true" ,
119- ]
120- . join ( "\n " )
121- . as_bytes ( ) ,
122- )
123- . unwrap ( ) ;
113+ let _env = TestEnv :: new ( ) ;
114+ let shader_crate_path = _env
115+ . setup_shader_crate_with_cargo_toml ( |file| {
116+ file. write_all (
117+ [
118+ "[package.metadata.rust-gpu.build]" ,
119+ "release = false" ,
120+ "[package.metadata.rust-gpu.install]" ,
121+ "auto-install-rust-toolchain = true" ,
122+ ]
123+ . join ( "\n " )
124+ . as_bytes ( ) ,
125+ )
126+ } )
127+ . unwrap ( ) ;
124128
125129 let args = Config :: clap_command_with_cargo_config ( & shader_crate_path, vec ! [ ] ) . unwrap ( ) ;
126130 assert ! ( !args. build. spirv_builder. release) ;
127131 assert ! ( args. install. auto_install_rust_toolchain) ;
128132 }
129133
130- fn update_cargo_output_dir ( ) -> std:: path:: PathBuf {
131- let shader_crate_path = crate :: test:: shader_crate_test_path ( ) ;
132- let mut file = crate :: test:: overwrite_shader_cargo_toml ( & shader_crate_path) ;
133- file. write_all (
134- [
135- "[package.metadata.rust-gpu.build]" ,
136- "output-dir = \" /the/moon\" " ,
137- ]
138- . join ( "\n " )
139- . as_bytes ( ) ,
140- )
141- . unwrap ( ) ;
142- shader_crate_path
134+ fn update_cargo_output_dir ( _env : & TestEnv ) -> std:: path:: PathBuf {
135+ _env. setup_shader_crate_with_cargo_toml ( |file| {
136+ file. write_all (
137+ [
138+ "[package.metadata.rust-gpu.build]" ,
139+ "output-dir = \" /the/moon\" " ,
140+ ]
141+ . join ( "\n " )
142+ . as_bytes ( ) ,
143+ )
144+ } )
145+ . unwrap ( )
143146 }
144147
145148 #[ test_log:: test]
146149 fn string_from_cargo ( ) {
147- let shader_crate_path = update_cargo_output_dir ( ) ;
150+ let _env = TestEnv :: new ( ) ;
151+ let shader_crate_path = update_cargo_output_dir ( & _env) ;
148152
149153 let args = Config :: clap_command_with_cargo_config ( & shader_crate_path, vec ! [ ] ) . unwrap ( ) ;
150154 if cfg ! ( target_os = "windows" ) {
151- assert_eq ! ( args. build. output_dir, std:: path:: Path :: new( "C:/the/moon" ) ) ;
155+ assert ! (
156+ args. build
157+ . output_dir
158+ . to_str( )
159+ . unwrap( )
160+ . ends_with( "/the/moon" ) ,
161+ "Actual: {:?}" ,
162+ args. build. output_dir
163+ ) ;
152164 } else {
153165 assert_eq ! ( args. build. output_dir, std:: path:: Path :: new( "/the/moon" ) ) ;
154166 }
155167 }
156168
157169 #[ test_log:: test]
158170 fn string_from_cargo_overwritten_by_cli ( ) {
159- let shader_crate_path = update_cargo_output_dir ( ) ;
171+ let _env = TestEnv :: new ( ) ;
172+ let shader_crate_path = update_cargo_output_dir ( & _env) ;
160173
161174 let args = Config :: clap_command_with_cargo_config (
162175 & shader_crate_path,
@@ -173,17 +186,19 @@ mod test {
173186
174187 #[ test_log:: test]
175188 fn arrays_from_cargo ( ) {
176- let shader_crate_path = crate :: test:: shader_crate_test_path ( ) ;
177- let mut file = crate :: test:: overwrite_shader_cargo_toml ( & shader_crate_path) ;
178- file. write_all (
179- [
180- "[package.metadata.rust-gpu.build]" ,
181- "capabilities = [\" AtomicStorage\" , \" Matrix\" ]" ,
182- ]
183- . join ( "\n " )
184- . as_bytes ( ) ,
185- )
186- . unwrap ( ) ;
189+ let _env = TestEnv :: new ( ) ;
190+ let shader_crate_path = _env
191+ . setup_shader_crate_with_cargo_toml ( |file| {
192+ file. write_all (
193+ [
194+ "[package.metadata.rust-gpu.build]" ,
195+ "capabilities = [\" AtomicStorage\" , \" Matrix\" ]" ,
196+ ]
197+ . join ( "\n " )
198+ . as_bytes ( ) ,
199+ )
200+ } )
201+ . unwrap ( ) ;
187202
188203 let args = Config :: clap_command_with_cargo_config ( & shader_crate_path, vec ! [ ] ) . unwrap ( ) ;
189204 assert_eq ! (
@@ -197,7 +212,8 @@ mod test {
197212
198213 #[ test_log:: test]
199214 fn rename_manifest_parse ( ) {
200- let shader_crate_path = crate :: test:: shader_crate_test_path ( ) ;
215+ let _env = TestEnv :: new ( ) ;
216+ let shader_crate_path = _env. setup_shader_crate ( ) . unwrap ( ) ;
201217
202218 let args = Config :: clap_command_with_cargo_config (
203219 & shader_crate_path,
0 commit comments