Browse Source

Add test to check that loading a 2nd file replaces the 1st

Signed-off-by: Isis Lovecruft <isis@torproject.org>
juga0 6 years ago
parent
commit
8be1ac8abe
1 changed files with 28 additions and 0 deletions
  1. 28 0
      src/test/test_geoip.c

+ 28 - 0
src/test/test_geoip.c

@@ -506,6 +506,33 @@ test_geoip6_load_file(void *arg)
   tor_free(dhex);
 }
 
+static void
+test_geoip_load_2nd_file(void *arg)
+{
+  (void)arg;
+
+  /* Load 1nd geoip file */
+  const char FNAME[] = SRCDIR "/src/config/geoip";
+  tt_int_op(0, OP_EQ, geoip_load_file(AF_INET, FNAME));
+
+  int num_countries_geoip = geoip_get_n_countries();
+
+  /* Load 2st geoip (empty) file */
+  const char FNAME2[] = SRCDIR "/src/test/geoip_dummy";
+  tt_int_op(0, OP_EQ, geoip_load_file(AF_INET, FNAME2));
+
+  int num_countries_geoip2 = geoip_get_n_countries();
+  /* FIXME: should not this be different? */
+  /* tt_int_op(num_countries_geoip, OP_NE, num_countries_geoip2); */
+
+  /* Check that there is no geoip information for 8.8.8.8, */
+  /* since loading the empty 2nd file should have delete it. */
+  int country = geoip_get_country_by_ipv4(0x08080808);
+  tt_int_op(country, OP_EQ, 0);
+
+  done: ;
+}
+
 #define ENT(name)                                                       \
   { #name, test_ ## name , 0, NULL, NULL }
 #define FORK(name)                                                      \
@@ -522,6 +549,7 @@ struct testcase_t geoip_tests[] = {
   { "geoip_with_pt", test_geoip_with_pt, TT_FORK, NULL, NULL },
   { "load_file", test_geoip_load_file, TT_FORK|SKIP_ON_WINDOWS, NULL, NULL },
   { "load_file6", test_geoip6_load_file, TT_FORK, NULL, NULL },
+  { "load_2nd_file", test_geoip_load_2nd_file, TT_FORK, NULL, NULL },
 
   END_OF_TESTCASES
 };