@@ -189,6 +189,36 @@ pub fn setup(s: Scenario, f: &dyn Fn(&mut Config)) {
189
189
assert ! ( !PathBuf :: from( "./bogus-cargo-home" ) . exists( ) ) ;
190
190
}
191
191
192
+ fn create_local_update_server ( self_dist : & Path , config : & mut Config , version : & str ) {
193
+ let trip = this_host_triple ( ) ;
194
+ let dist_dir = self_dist. join ( & format ! ( "archive/{}/{}" , version, trip) ) ;
195
+ let dist_exe = dist_dir. join ( & format ! ( "rustup-init{}" , EXE_SUFFIX ) ) ;
196
+ let rustup_bin = config. exedir . join ( & format ! ( "rustup-init{}" , EXE_SUFFIX ) ) ;
197
+
198
+ fs:: create_dir_all ( dist_dir) . unwrap ( ) ;
199
+ output_release_file ( & self_dist, "1" , version) ;
200
+ fs:: copy ( & rustup_bin, & dist_exe) . unwrap ( ) ;
201
+
202
+ let root_url = format ! ( "file://{}" , self_dist. display( ) ) ;
203
+ config. rustup_update_root = Some ( root_url) ;
204
+ }
205
+
206
+ pub fn check_update_setup ( f : & dyn Fn ( & mut Config ) ) {
207
+ let version = env ! ( "CARGO_PKG_VERSION" ) ;
208
+
209
+ setup ( Scenario :: ArchivesV2 , & |config| {
210
+ let self_dist_tmp = tempfile:: Builder :: new ( )
211
+ . prefix ( "self_dist" )
212
+ . tempdir ( )
213
+ . unwrap ( ) ;
214
+ let self_dist = self_dist_tmp. path ( ) ;
215
+
216
+ create_local_update_server ( self_dist, config, version) ;
217
+
218
+ f ( config) ;
219
+ } ) ;
220
+ }
221
+
192
222
pub fn self_update_setup ( f : & dyn Fn ( & Config , & Path ) , version : & str ) {
193
223
setup ( Scenario :: SimpleV2 , & |config| {
194
224
// Create a mock self-update server
@@ -198,21 +228,16 @@ pub fn self_update_setup(f: &dyn Fn(&Config, &Path), version: &str) {
198
228
. unwrap ( ) ;
199
229
let self_dist = self_dist_tmp. path ( ) ;
200
230
231
+ create_local_update_server ( self_dist, config, version) ;
232
+
201
233
let trip = this_host_triple ( ) ;
202
234
let dist_dir = self_dist. join ( & format ! ( "archive/{}/{}" , version, trip) ) ;
203
235
let dist_exe = dist_dir. join ( & format ! ( "rustup-init{}" , EXE_SUFFIX ) ) ;
204
- let rustup_bin = config. exedir . join ( & format ! ( "rustup-init{}" , EXE_SUFFIX ) ) ;
205
236
206
- fs:: create_dir_all ( dist_dir) . unwrap ( ) ;
207
- output_release_file ( self_dist, "1" , version) ;
208
- fs:: copy ( & rustup_bin, & dist_exe) . unwrap ( ) ;
209
237
// Modify the exe so it hashes different
210
238
raw:: append_file ( & dist_exe, "" ) . unwrap ( ) ;
211
239
212
- let root_url = format ! ( "file://{}" , self_dist. display( ) ) ;
213
- config. rustup_update_root = Some ( root_url) ;
214
-
215
- f ( config, self_dist) ;
240
+ f ( config, & self_dist) ;
216
241
} ) ;
217
242
}
218
243
0 commit comments