@@ -67,32 +67,46 @@ pub(crate) fn do_test_data_migration<S: MigratableKVStore, T: MigratableKVStore>
6767) {
6868 // We fill the source with some bogus keys.
6969 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 ;
7272 let num_keys = 3 ;
73+ let mut expected_keys = Vec :: new ( ) ;
7374 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+ } ;
7680 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+ } ;
7986 for k in 0 ..num_keys {
8087 let key =
8188 format ! ( "testkey{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( k) . unwrap( ) ) ;
8289 source_store
8390 . write ( & primary_namespace, & secondary_namespace, & key, & dummy_data)
8491 . unwrap ( ) ;
92+ expected_keys. push ( ( primary_namespace. clone ( ) , secondary_namespace. clone ( ) , key) ) ;
8593 }
8694 }
8795 }
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) ;
91102
92103 migrate_kv_store_data ( source_store, target_store) . unwrap ( ) ;
93104
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 ( ) {
96110 assert_eq ! ( target_store. read( p, s, k) . unwrap( ) , dummy_data) ;
97111 }
98112}
0 commit comments