@@ -67,32 +67,46 @@ pub(crate) fn do_test_data_migration<S: MigratableKVStore, T: MigratableKVStore>
67
67
) {
68
68
// We fill the source with some bogus keys.
69
69
let dummy_data = [ 42u8 ; 32 ] ;
70
- let num_primary_namespaces = 2 ;
71
- let num_secondary_namespaces = 2 ;
70
+ let num_primary_namespaces = 3 ;
71
+ let num_secondary_namespaces = 3 ;
72
72
let num_keys = 3 ;
73
+ let mut expected_keys = Vec :: new ( ) ;
73
74
for i in 0 ..num_primary_namespaces {
74
- let primary_namespace =
75
- format ! ( "testspace{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( i) . unwrap( ) ) ;
75
+ let primary_namespace = if i == 0 {
76
+ String :: new ( )
77
+ } else {
78
+ format ! ( "testspace{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( i) . unwrap( ) )
79
+ } ;
76
80
for j in 0 ..num_secondary_namespaces {
77
- let secondary_namespace =
78
- format ! ( "testsubspace{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( j) . unwrap( ) ) ;
81
+ let secondary_namespace = if i == 0 || j == 0 {
82
+ String :: new ( )
83
+ } else {
84
+ format ! ( "testsubspace{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( j) . unwrap( ) )
85
+ } ;
79
86
for k in 0 ..num_keys {
80
87
let key =
81
88
format ! ( "testkey{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( k) . unwrap( ) ) ;
82
89
source_store
83
90
. write ( & primary_namespace, & secondary_namespace, & key, & dummy_data)
84
91
. unwrap ( ) ;
92
+ expected_keys. push ( ( primary_namespace. clone ( ) , secondary_namespace. clone ( ) , key) ) ;
85
93
}
86
94
}
87
95
}
88
- let total_num_entries = num_primary_namespaces * num_secondary_namespaces * num_keys;
89
- let all_keys = source_store. list_all_keys ( ) . unwrap ( ) ;
90
- assert_eq ! ( all_keys. len( ) , total_num_entries) ;
96
+ expected_keys. sort ( ) ;
97
+ expected_keys. dedup ( ) ;
98
+
99
+ let mut source_list = source_store. list_all_keys ( ) . unwrap ( ) ;
100
+ source_list. sort ( ) ;
101
+ assert_eq ! ( source_list, expected_keys) ;
91
102
92
103
migrate_kv_store_data ( source_store, target_store) . unwrap ( ) ;
93
104
94
- assert_eq ! ( target_store. list_all_keys( ) . unwrap( ) . len( ) , total_num_entries) ;
95
- for ( p, s, k) in & all_keys {
105
+ let mut target_list = target_store. list_all_keys ( ) . unwrap ( ) ;
106
+ target_list. sort ( ) ;
107
+ assert_eq ! ( target_list, expected_keys) ;
108
+
109
+ for ( p, s, k) in expected_keys. iter ( ) {
96
110
assert_eq ! ( target_store. read( p, s, k) . unwrap( ) , dummy_data) ;
97
111
}
98
112
}
0 commit comments