lockmanager testcase new testing library
authorSree Harsha Totakura <totakura@in.tum.de>
Wed, 20 Jun 2012 19:24:26 +0000 (19:24 +0000)
committerSree Harsha Totakura <totakura@in.tum.de>
Wed, 20 Jun 2012 19:24:26 +0000 (19:24 +0000)
src/lockmanager/Makefile.am
src/lockmanager/gnunet-service-lockmanager.c
src/lockmanager/lockmanager_api.c
src/lockmanager/test_lockmanager_api.c
src/lockmanager/test_lockmanager_api_acquireretry.c
src/lockmanager/test_lockmanager_api_lockrelease.c
src/lockmanager/test_lockmanager_api_servercrash.c

index bf2ad5d38e3a51f599594b2aa7a80caad8b1a4ba..b1743e3081e1c59ffe934d0d0df5b50448f7759d 100644 (file)
@@ -62,16 +62,19 @@ test_lockmanager_api_lockrelease_SOURCES = \
   test_lockmanager_api_lockrelease.c
 test_lockmanager_api_lockrelease_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
   libgnunetlockmanager.la
 
 test_lockmanager_api_servercrash_SOURCES = \
   test_lockmanager_api_servercrash.c
 test_lockmanager_api_servercrash_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
   libgnunetlockmanager.la
 
 test_lockmanager_api_acquireretry_SOURCES = \
   test_lockmanager_api_acquireretry.c
 test_lockmanager_api_acquireretry_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
   libgnunetlockmanager.la
\ No newline at end of file
index b5126ba20e748417b6a7aa1c59f52f5df11ec27d..c0a32e79cd87bdbb19babfb00abf995bff95133e 100644 (file)
@@ -897,3 +897,5 @@ int main (int argc, char *const *argv)
                          &lockmanager_run,
                          NULL)) ? 0 : 1;
 }
+
+/* end of gnunet-service-lockmanager.c */
index 77773ed36d68fe4aabd30ba8c76d2a66c90b6f4a..7a47da65b3170bb34087808f16f2c9b99ca45131 100644 (file)
@@ -734,3 +734,5 @@ GNUNET_LOCKMANAGER_cancel_request (struct GNUNET_LOCKMANAGER_LockingRequest
   GNUNET_free (request);
   LOG (GNUNET_ERROR_TYPE_DEBUG, "%s() END\n", __func__);
 }
+
+/* end of lockmanager_api.c */
index 91772e39cbc613f8206ad7e8f1b921328c0e4f6a..7d8e75814ecbe7a680b25df6d18a209bbd608c6a 100644 (file)
@@ -202,8 +202,10 @@ int main (int argc, char **argv)
 {
 
   if (0 != GNUNET_TESTING_peer_run ("test_lockmanager_api",
-                                   "test_lockmanager_api.conf",                                                   
+                                   "test_lockmanager_api.conf",
                                    &run, NULL))
     return 1;
   return (TEST_FAIL == result) ? 1 : 0;
 }
+
+/* end of test_lockmanager_api.c */
index a75476442c16a83cc51d4d3ba68a3633fc533689..2ceb6eef418da3cc66694192b429ca80ad4d31bc 100644 (file)
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_lockmanager_service.h"
+#include "gnunet_testing_lib-new.h"
 
 /**
- * Generic logging shortcut
+ * Generic logging shorthand
  */
 #define LOG(kind,...)                           \
   GNUNET_log (kind, __VA_ARGS__)
 
-#define TIME_REL_SECS(sec)                                      \
+/**
+ * Relative seconds shorthand
+ */
+#define TIME_REL_SECS(sec)                                   \
   GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, sec)
 
 /**
@@ -69,11 +73,6 @@ enum Test
     TEST_CLIENT_LOCK_AGAIN_SUCCESS
   };
 
-/**
- * The process id of the GNUNET ARM process
- */
-static struct GNUNET_OS_Process *arm_pid = NULL;
-
 /**
  * Configuration Handle
  */
@@ -99,6 +98,11 @@ static GNUNET_SCHEDULER_TaskIdentifier abort_task_id;
  */
 enum Test result;
 
+/**
+ * Our peer
+ */
+static struct GNUNET_TESTING_Peer *self;
+
 
 /**
  * Shutdown nicely
@@ -116,16 +120,6 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
   }
   if (NULL != handle)
     GNUNET_LOCKMANAGER_disconnect (handle);
-  if (NULL != arm_pid)
-  {
-    if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
-    {
-      LOG (GNUNET_ERROR_TYPE_DEBUG,
-           "Kill gnunet-service-arm manually\n");
-    }
-    GNUNET_OS_process_wait (arm_pid);
-    GNUNET_OS_process_destroy (arm_pid);
-  }
 }
 
 /**
@@ -172,25 +166,14 @@ status_cb (void *cls,
     GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status);
     result = TEST_CLIENT_LOCK_SUCCESS;
     /* We should kill the lockmanager process */
-    if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
-    {
-      LOG (GNUNET_ERROR_TYPE_DEBUG,
-           "Kill gnunet-service-arm manually\n");
-    }
-    GNUNET_OS_process_wait (arm_pid);
-    GNUNET_OS_process_destroy (arm_pid);
-    arm_pid =NULL;
+    GNUNET_TESTING_peer_stop (self);
     break;
   case TEST_CLIENT_LOCK_SUCCESS:
     GNUNET_assert (handle == cls);
     GNUNET_assert (GNUNET_LOCKMANAGER_RELEASE == status);
     result = TEST_CLIENT_LOCK_RELEASE;
     /* Now we should start again the lockmanager process */
-    arm_pid = 
-      GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
-                               "gnunet-service-arm",
-                               "-c", "test_lockmanager_api.conf", NULL);
-    GNUNET_assert (NULL != arm_pid);
+    GNUNET_TESTING_peer_start (self);
     break;
   case TEST_CLIENT_LOCK_RELEASE:
     GNUNET_assert (handle == cls);
@@ -207,14 +190,15 @@ status_cb (void *cls,
 
 
 /**
- * Testing function
- *
- * @param cls NULL
- * @param tc the task context
+ * Main point of test execution
  */
 static void
-test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{ 
+run (void *cls,
+     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     struct GNUNET_TESTING_Peer *peer)
+{
+  config = cfg;
+  self = peer;
   result = TEST_INIT;
   handle = GNUNET_LOCKMANAGER_connect (config);
   GNUNET_assert (NULL != handle);
@@ -226,24 +210,7 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   GNUNET_assert (NULL != request);
   abort_task_id = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS (30),
                                                 &do_abort,
-                                                NULL);  
-}
-
-
-/**
- * Main point of test execution
- */
-static void
-run (void *cls, char *const *args, const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  config = cfg;
-  arm_pid = 
-    GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
-                             "gnunet-service-arm",
-                             "-c", "test_lockmanager_api.conf", NULL);
-  GNUNET_assert (NULL != arm_pid);
-  GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS(3), &test, NULL);
+                                                NULL);
 }
 
 
@@ -252,31 +219,9 @@ run (void *cls, char *const *args, const char *cfgfile,
  */
 int main (int argc, char **argv)
 {
-  int ret;
-
-  char *const argv2[] = { "test_lockmanager_api_servercrash",
-                          "-c", "test_lockmanager_api.conf",
-                          NULL
-  };  
-  struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_END
-  };
-  
-  ret =
-    GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
-                        "test_lockmanager_api_servercrash",
-                        "nohelp", options, &run, NULL);
-  if (GNUNET_OK != ret)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "run failed with error code %d\n",
-         ret);
+  if (0 != GNUNET_TESTING_peer_run ("test_lockmanager_api_servercrash",
+                                   "test_lockmanager_api.conf",
+                                   &run, NULL))
     return 1;
-  }
-  if (TEST_CLIENT_LOCK_AGAIN_SUCCESS != result)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "test failed\n");
-    return 1;
-  }
-  LOG (GNUNET_ERROR_TYPE_INFO, "test OK\n");
-  return 0;
+  return (TEST_CLIENT_LOCK_AGAIN_SUCCESS != result) ? 1 : 0;
 }
index 64e328ba03ad2ee4eb8ecfeca37395838fe4dda5..dafba954e15a9d655e59c3d2f2b060e38756db25 100644 (file)
 
 #include "platform.h"
 #include "gnunet_util_lib.h"
+#include "gnunet_testing_lib-new.h"
 #include "gnunet_lockmanager_service.h"
 
-#define VERBOSE GNUNET_YES
-
-#define VERBOSE_ARM 1
-
+/**
+ * Generic Logging shorthand
+ */
 #define LOG(kind,...)                           \
   GNUNET_log (kind, __VA_ARGS__)
 
+/**
+ * Relative seconds shorthand
+ */
 #define TIME_REL_SECONDS(min)                                   \
   GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, min)
 
@@ -70,15 +73,10 @@ enum Test
  */
 static enum Test result;
 
-/**
- * The process id of the GNUNET ARM process
- */
-static struct GNUNET_OS_Process *arm_pid = NULL;
-
 /**
  * Configuration Handle
  */
-static struct GNUNET_CONFIGURATION_Handle *config;
+static const struct GNUNET_CONFIGURATION_Handle *config;
 
 /**
  * The handle to the lockmanager service
@@ -119,20 +117,9 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_SCHEDULER_cancel (abort_task_id);
     abort_task_id = GNUNET_SCHEDULER_NO_TASK;
-  }
-  
+  }  
   GNUNET_LOCKMANAGER_disconnect (handle);
   GNUNET_LOCKMANAGER_disconnect (handle2);
-  if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
-  {
-    LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Kill gnunet-service-arm manually\n");
-  }
-  GNUNET_OS_process_wait (arm_pid);
-  GNUNET_OS_process_destroy (arm_pid);
-
-  if (NULL != config)
-    GNUNET_CONFIGURATION_destroy (config);
 }
 
 
@@ -204,14 +191,15 @@ status_cb (void *cls,
 
 
 /**
- * Testing function
- *
- * @param cls NULL
- * @param tc the task context
+ * Main point of test execution
  */
 static void
-test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{ 
+run (void *cls,
+     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     struct GNUNET_TESTING_Peer *peer)
+{
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting test...\n");
+  config = cfg;
   result = TEST_INIT;
   handle = GNUNET_LOCKMANAGER_connect (config);
   GNUNET_assert (NULL != handle);
@@ -229,73 +217,14 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 }
 
 
-/**
- * Main point of test execution
- */
-static void
-run (void *cls, char *const *args, const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting test...\n");
-  config = GNUNET_CONFIGURATION_dup (cfg);
-  arm_pid = 
-    GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
-                             "gnunet-service-arm",
-#if VERBOSE_ARM
-                             "-L", "DEBUG",
-#endif
-                             "-c", "test_lockmanager_api.conf", NULL);
-
-  GNUNET_assert (NULL != arm_pid);
-  GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (3),
-                                &test,
-                                NULL);
-}
-
-
 /**
  * Main function
  */
 int main (int argc, char **argv)
 {
-  int ret;
-
-  char *const argv2[] = { "test_lockmanager_api_lockrelease",
-                          "-c", "test_lockmanager_api.conf",
-#if VERBOSE
-                          "-L", "DEBUG",
-#endif
-                          NULL
-  };
-  
-  struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_END
-  };
-  
-  GNUNET_log_setup ("test_lockmanager_api_lockrelease",
-#if VERBOSE
-                    "DEBUG",
-#else
-                    "WARNING",
-#endif
-                    NULL);
-
-  ret =
-    GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
-                        "test_lockmanager_api_lockrelease",
-                        "nohelp", options, &run, NULL);
-
-  if (GNUNET_OK != ret)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "run failed with error code %d\n",
-         ret);
+  if (0 != GNUNET_TESTING_peer_run ("test_lockmanager_api_lockrelease",
+                                   "test_lockmanager_api.conf",
+                                   &run, NULL))
     return 1;
-  }
-  if (TEST_CLIENT2_LOCK_SUCCESS != result)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "test failed\n");
-    return 1;
-  }
-  LOG (GNUNET_ERROR_TYPE_INFO, "test OK\n");
-  return 0;
+  return (TEST_CLIENT2_LOCK_SUCCESS != result) ? 1 : 0;
 }
index 974a31f7ed6aa7c53d5cea24b1defa241c0d13c9..b471dc3b35286de5dc001f4363a7b0f019e47ade 100644 (file)
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_lockmanager_service.h"
+#include "gnunet_testing_lib-new.h"
 
-#define VERBOSE GNUNET_YES
-
-#define VERBOSE_ARM 1
-
+/**
+ * Generic logging shorthand
+ */
 #define LOG(kind,...)                           \
   GNUNET_log (kind, __VA_ARGS__)
 
+/**
+ * Relative seconds shorthand
+ */
 #define TIME_REL_SECONDS(min)                                   \
   GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, min)
 
@@ -76,15 +79,10 @@ enum Test
  */
 static enum Test result;
 
-/**
- * The process id of the GNUNET ARM process
- */
-static struct GNUNET_OS_Process *arm_pid = NULL;
-
 /**
  * Configuration Handle
  */
-static struct GNUNET_CONFIGURATION_Handle *config;
+static const struct GNUNET_CONFIGURATION_Handle *config;
 
 /**
  * The handle to the lockmanager service
@@ -111,6 +109,11 @@ static struct GNUNET_LOCKMANAGER_LockingRequest *request2;
  */
 static GNUNET_SCHEDULER_TaskIdentifier abort_task_id;
 
+/**
+ * Our peer
+ */
+static struct GNUNET_TESTING_Peer *self;
+
 
 /**
  * Shutdown nicely
@@ -130,18 +133,6 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
     GNUNET_LOCKMANAGER_disconnect (handle);
   if (NULL != handle2)
     GNUNET_LOCKMANAGER_disconnect (handle2);
-  if (NULL != arm_pid)
-  {
-    if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
-    {
-      LOG (GNUNET_ERROR_TYPE_DEBUG,
-           "Kill gnunet-service-arm manually\n");
-    }
-    GNUNET_OS_process_wait (arm_pid);
-    GNUNET_OS_process_destroy (arm_pid);
-  }
-  if (NULL != config)
-    GNUNET_CONFIGURATION_destroy (config);
 }
 
 
@@ -201,15 +192,8 @@ status_cb (void *cls,
     GNUNET_assert (handle2 == cls);
     GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status);
     result = TEST_CLIENT2_LOCK_SUCCESS;
-    /* We should kill the lockmanager process */
-    if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
-    {
-      LOG (GNUNET_ERROR_TYPE_DEBUG,
-           "Kill gnunet-service-arm manually\n");
-    }
-    GNUNET_OS_process_wait (arm_pid);
-    GNUNET_OS_process_destroy (arm_pid);
-    arm_pid =NULL;
+    /* We should stop our peer to simulate crash in lockmanager service */
+    GNUNET_TESTING_peer_stop (self);
     break;
   case TEST_CLIENT2_LOCK_SUCCESS:
     GNUNET_assert (handle2 == cls);
@@ -226,19 +210,19 @@ status_cb (void *cls,
   default:
     GNUNET_assert (0);          /* We should never reach here */
   }
-
 }
 
 
 /**
- * Testing function
- *
- * @param cls NULL
- * @param tc the task context
+ * Main point of test execution
  */
 static void
-test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{ 
+run (void *cls,
+     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     struct GNUNET_TESTING_Peer *peer)
+{
+  config = cfg;
+  self = peer;
   result = TEST_INIT;
   handle = GNUNET_LOCKMANAGER_connect (config);
   GNUNET_assert (NULL != handle);
@@ -256,73 +240,14 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 }
 
 
-/**
- * Main point of test execution
- */
-static void
-run (void *cls, char *const *args, const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting test...\n");
-  config = GNUNET_CONFIGURATION_dup (cfg);
-  arm_pid = 
-    GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
-                             "gnunet-service-arm",
-#if VERBOSE_ARM
-                             "-L", "DEBUG",
-#endif
-                             "-c", "test_lockmanager_api.conf", NULL);
-
-  GNUNET_assert (NULL != arm_pid);
-  GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (3),
-                                &test,
-                                NULL);
-}
-
-
 /**
  * Main function
  */
 int main (int argc, char **argv)
 {
-  int ret;
-
-  char *const argv2[] = { "test_lockmanager_api_servercrash",
-                          "-c", "test_lockmanager_api.conf",
-#if VERBOSE
-                          "-L", "DEBUG",
-#endif
-                          NULL
-  };
-  
-  struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_END
-  };
-  
-  GNUNET_log_setup ("test_lockmanager_api_servercrash",
-#if VERBOSE
-                    "DEBUG",
-#else
-                    "WARNING",
-#endif
-                    NULL);
-
-  ret =
-    GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
-                        "test_lockmanager_api_servercrash",
-                        "nohelp", options, &run, NULL);
-
-  if (GNUNET_OK != ret)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "run failed with error code %d\n",
-         ret);
+  if (0 != GNUNET_TESTING_peer_run ("test_lockmanager_api_servercrash",
+                                   "test_lockmanager_api.conf",
+                                   &run, NULL))
     return 1;
-  }
-  if (TEST_CLIENT2_SERVER_CRASH_SUCCESS != result)
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, "test failed\n");
-    return 1;
-  }
-  LOG (GNUNET_ERROR_TYPE_INFO, "test OK\n");
-  return 0;
+  return (TEST_CLIENT2_SERVER_CRASH_SUCCESS != result) ? 1 : 0;
 }