| 
					
				 | 
			
			
				@@ -3611,6 +3611,50 @@ test_util_di_ops(void *arg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+test_util_di_map(void *arg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (void)arg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  di_digest256_map_t *dimap = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  uint8_t key1[] = "Robert Anton Wilson            "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  uint8_t key2[] = "Martin Gardner, _Fads&fallacies"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  uint8_t key3[] = "Tom Lehrer, _Be Prepared_.     "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  uint8_t key4[] = "Ursula Le Guin,_A Wizard of... "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  char dflt_entry[] = "'You have made a good beginning', but no more"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(32, ==, sizeof(key1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(32, ==, sizeof(key2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(32, ==, sizeof(key3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_ptr_op(dflt_entry, ==, dimap_search(dimap, key1, dflt_entry)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  char *str1 = tor_strdup("You are precisely as big as what you love" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " and precisely as small as what you allow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " to annoy you."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  char *str2 = tor_strdup("Let us hope that Lysenko's success in Russia will" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " serve for many generations to come as another" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " reminder to the world of how quickly and easily" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " a science can be corrupted when ignorant" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " political leaders deem themselves competent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          " to arbitrate scientific disputes"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  char *str3 = tor_strdup("Don't write naughty words on walls " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          "if you can't spell."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dimap_add_entry(&dimap, key1, str1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dimap_add_entry(&dimap, key2, str2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dimap_add_entry(&dimap, key3, str3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_ptr_op(str1, ==, dimap_search(dimap, key1, dflt_entry)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_ptr_op(str3, ==, dimap_search(dimap, key3, dflt_entry)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_ptr_op(str2, ==, dimap_search(dimap, key2, dflt_entry)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_ptr_op(dflt_entry, ==, dimap_search(dimap, key4, dflt_entry)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ done: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dimap_free(dimap, tor_free_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Test counting high bits 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4395,6 +4439,7 @@ struct testcase_t util_tests[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_LEGACY(path_is_relative), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_LEGACY(strtok), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_LEGACY(di_ops), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  UTIL_TEST(di_map, 0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_TEST(round_to_next_multiple_of, 0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_TEST(laplace, 0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UTIL_TEST(find_str_at_start_of_line, 0), 
			 |