|
@@ -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),
|