]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
test_pt_configure_proxy(): verify the internals of the managed proxy.
authorGeorge Kadianakis <desnacked@riseup.net>
Mon, 5 Aug 2013 13:30:21 +0000 (16:30 +0300)
committerGeorge Kadianakis <desnacked@riseup.net>
Mon, 5 Aug 2013 18:05:35 +0000 (21:05 +0300)
src/test/test_pt.c

index f969457d0e45bd19aa2096a936fdc581064aca4f..e4aa39f86611dfeb3f6abbe22305dbcf6738b791 100644 (file)
@@ -321,7 +321,7 @@ get_or_state_replacement(void)
 static void
 test_pt_configure_proxy(void *arg)
 {
-  int i;
+  int i, retval;
   managed_proxy_t *mp = NULL;
   (void) arg;
 
@@ -346,9 +346,21 @@ test_pt_configure_proxy(void *arg)
      times while it is uninitialized and then finally finalizing its
      configuration. */
   for (i = 0 ; i < 5 ; i++) {
-    test_assert(configure_proxy(mp) == 0);
+    retval = configure_proxy(mp);
+    /* retval should be zero because proxy hasn't finished configuring yet */
+    test_assert(retval == 0);
+    /* check the number of registered transports */
+    test_assert(smartlist_len(mp->transports) == i+1);
+    /* check that the mp is still waiting for transports */
+    test_assert(mp->conf_state == PT_PROTO_ACCEPTING_METHODS);
   }
-  test_assert(configure_proxy(mp) == 1);
+
+  /* this last configure_proxy() should finalize the proxy configuration. */
+  retval = configure_proxy(mp);
+  /* retval should be 1 since the proxy finished configuring */
+  test_assert(retval == 1);
+  /* check the mp state */
+  test_assert(mp->conf_state == PT_PROTO_COMPLETED);
 
  done:
   tor_free(dummy_state);