@@ -28,7 +28,7 @@ use tempdir::TempDir;
28
28
// Creates a mock dist server populated with some test data
29
29
pub fn create_mock_dist_server (
30
30
path : & Path ,
31
- edit : Option < & dyn Fn ( & str , & mut [ MockPackage ] ) > ,
31
+ edit : Option < & dyn Fn ( & str , & mut Vec < MockPackage > ) > ,
32
32
) -> MockDistServer {
33
33
MockDistServer {
34
34
path : path. to_owned ( ) ,
@@ -42,7 +42,7 @@ pub fn create_mock_dist_server(
42
42
pub fn create_mock_channel (
43
43
channel : & str ,
44
44
date : & str ,
45
- edit : Option < & dyn Fn ( & str , & mut [ MockPackage ] ) > ,
45
+ edit : Option < & dyn Fn ( & str , & mut Vec < MockPackage > ) > ,
46
46
) -> MockChannel {
47
47
// Put the date in the files so they can be differentiated
48
48
let contents = Arc :: new ( date. as_bytes ( ) . to_vec ( ) ) ;
@@ -303,7 +303,7 @@ fn rename_component() {
303
303
let dist_tempdir = TempDir :: new ( "rustup" ) . unwrap ( ) ;
304
304
let ref url = Url :: parse ( & format ! ( "file://{}" , dist_tempdir. path( ) . to_string_lossy( ) ) ) . unwrap ( ) ;
305
305
306
- let edit_1 = & |_: & str , pkgs : & mut [ MockPackage ] | {
306
+ let edit_1 = & |_: & str , pkgs : & mut Vec < MockPackage > | {
307
307
let tpkg = pkgs[ 0 ]
308
308
. targets
309
309
. iter_mut ( )
@@ -314,7 +314,7 @@ fn rename_component() {
314
314
target : "x86_64-apple-darwin" . to_string ( ) ,
315
315
} ) ;
316
316
} ;
317
- let edit_2 = & |_: & str , pkgs : & mut [ MockPackage ] | {
317
+ let edit_2 = & |_: & str , pkgs : & mut Vec < MockPackage > | {
318
318
let tpkg = pkgs[ 0 ]
319
319
. targets
320
320
. iter_mut ( )
@@ -363,7 +363,7 @@ fn rename_component_new() {
363
363
let dist_tempdir = TempDir :: new ( "rustup" ) . unwrap ( ) ;
364
364
let ref url = Url :: parse ( & format ! ( "file://{}" , dist_tempdir. path( ) . to_string_lossy( ) ) ) . unwrap ( ) ;
365
365
366
- let edit_2 = & |_: & str , pkgs : & mut [ MockPackage ] | {
366
+ let edit_2 = & |_: & str , pkgs : & mut Vec < MockPackage > | {
367
367
let tpkg = pkgs[ 0 ]
368
368
. targets
369
369
. iter_mut ( )
@@ -498,7 +498,7 @@ fn uninstall(
498
498
}
499
499
500
500
fn setup (
501
- edit : Option < & dyn Fn ( & str , & mut [ MockPackage ] ) > ,
501
+ edit : Option < & dyn Fn ( & str , & mut Vec < MockPackage > ) > ,
502
502
enable_xz : bool ,
503
503
f : & dyn Fn ( & Url , & ToolchainDesc , & InstallPrefix , & DownloadCfg < ' _ > , & temp:: Cfg ) ,
504
504
) {
@@ -623,7 +623,7 @@ fn upgrade() {
623
623
#[ test]
624
624
fn unavailable_component ( ) {
625
625
// On day 2 the bonus component is no longer available
626
- let edit = & |date : & str , pkgs : & mut [ MockPackage ] | {
626
+ let edit = & |date : & str , pkgs : & mut Vec < MockPackage > | {
627
627
// Require the bonus component every dat
628
628
{
629
629
let tpkg = pkgs[ 0 ]
@@ -671,7 +671,7 @@ fn unavailable_component() {
671
671
#[ test]
672
672
fn removed_component ( ) {
673
673
// On day 1 install the 'bonus' component, on day 2 its no longer a component
674
- let edit = & |date : & str , pkgs : & mut [ MockPackage ] | {
674
+ let edit = & |date : & str , pkgs : & mut Vec < MockPackage > | {
675
675
if date == "2016-02-01" {
676
676
let tpkg = pkgs[ 0 ]
677
677
. targets
@@ -682,6 +682,8 @@ fn removed_component() {
682
682
name : "bonus" . to_string ( ) ,
683
683
target : "x86_64-apple-darwin" . to_string ( ) ,
684
684
} ) ;
685
+ } else {
686
+ pkgs. retain ( |p| p. name != "bonus" ) ;
685
687
}
686
688
} ;
687
689
@@ -702,17 +704,20 @@ fn removed_component() {
702
704
} ,
703
705
} ;
704
706
705
- change_channel_date ( url, "nightly" , "2016-02-01" ) ;
707
+ let adds = [ Component :: new (
708
+ "bonus" . to_string ( ) ,
709
+ Some ( TargetTriple :: from_str ( "x86_64-apple-darwin" ) ) ,
710
+ ) ] ;
711
+
706
712
// Update with bonus.
707
- update_from_dist ( url, toolchain, prefix, & [ ] , & [ ] , & download_cfg, temp_cfg) . unwrap ( ) ;
713
+ change_channel_date ( url, "nightly" , "2016-02-01" ) ;
714
+ update_from_dist ( url, toolchain, prefix, & adds, & [ ] , & download_cfg, temp_cfg) . unwrap ( ) ;
708
715
assert ! ( utils:: path_exists( & prefix. path( ) . join( "bin/bonus" ) ) ) ;
709
- change_channel_date ( url , "nightly" , "2016-02-02" ) ;
716
+ assert ! ( !received_notification . get ( ) ) ;
710
717
711
718
// Update without bonus, should emit a notify and remove the bonus component
712
- update_from_dist ( url, toolchain, prefix, & [ ] , & [ ] , & download_cfg, temp_cfg) . unwrap ( ) ;
713
- assert ! ( !utils:: path_exists( & prefix. path( ) . join( "bin/bonus" ) ) ) ;
714
-
715
- assert ! ( received_notification. get( ) ) ;
719
+ change_channel_date ( url, "nightly" , "2016-02-02" ) ;
720
+ assert ! ( update_from_dist( url, toolchain, prefix, & [ ] , & [ ] , & download_cfg, temp_cfg) . is_err( ) ) ;
716
721
} ,
717
722
) ;
718
723
}
@@ -759,7 +764,7 @@ fn update_preserves_extensions() {
759
764
760
765
#[ test]
761
766
fn update_preserves_extensions_that_became_components ( ) {
762
- let edit = & |date : & str , pkgs : & mut [ MockPackage ] | {
767
+ let edit = & |date : & str , pkgs : & mut Vec < MockPackage > | {
763
768
if date == "2016-02-01" {
764
769
let tpkg = pkgs[ 0 ]
765
770
. targets
@@ -806,7 +811,7 @@ fn update_preserves_extensions_that_became_components() {
806
811
807
812
#[ test]
808
813
fn update_preserves_components_that_became_extensions ( ) {
809
- let edit = & |date : & str , pkgs : & mut [ MockPackage ] | {
814
+ let edit = & |date : & str , pkgs : & mut Vec < MockPackage > | {
810
815
if date == "2016-02-01" {
811
816
let tpkg = pkgs[ 0 ]
812
817
. targets
@@ -1139,7 +1144,7 @@ fn remove_extension_not_in_manifest() {
1139
1144
#[ test]
1140
1145
#[ should_panic]
1141
1146
fn remove_extension_not_in_manifest_but_is_already_installed ( ) {
1142
- let edit = & |date : & str , pkgs : & mut [ MockPackage ] | {
1147
+ let edit = & |date : & str , pkgs : & mut Vec < MockPackage > | {
1143
1148
if date == "2016-02-01" {
1144
1149
let tpkg = pkgs[ 0 ]
1145
1150
. targets
0 commit comments