plugin datastore mysql
[oweals/gnunet.git] / src / rps / test_service_rps_peers.c
index 43d9362009b266897924fd0605eae8a81dc75205..ede3d05a51cfa6d4ac0027b7debb3955a6f82e4d 100644 (file)
 #include <platform.h>
 #include "gnunet-service-rps_peers.h"
 
-#define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); if (NULL != c_m) CustomPeerMap_destroy(c_m); return 1; }
+#define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); Peers_terminate (); return 1; }
 #define CHECK(c) { if (! (c)) ABORT(); }
 
 
+/**
+ * @brief Dummy implementation of #PeerOp (Operation on peer)
+ *
+ * @param cls closure
+ * @param peer peer
+ */
+void peer_op (void *cls, const struct GNUNET_PeerIdentity *peer)
+{
+  GNUNET_assert (NULL != peer);
+}
+
+/**
+ * @brief Function that is called on a peer for later execution
+ *
+ * @param cls closure
+ * @param peer peer to execute function upon
+ */
+void
+peer_op (void *cls, const struct GNUNET_PeerIdentity *peer);
+
+
 static int
 check ()
 {
-
-  struct CustomPeerMap *c_m;
   struct GNUNET_PeerIdentity k1;
-  struct GNUNET_PeerIdentity k2;
-  int j;
-
-  CHECK (NULL != (c_m = CustomPeerMap_create (4)));
+  struct GNUNET_PeerIdentity own_id;
+  
   memset (&k1, 0, sizeof (k1));
-  memset (&k2, 1, sizeof (k2));
-  CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
-  CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k2));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer (c_m, &k1));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer (c_m, &k2));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 0));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 0));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 1));
-  CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 1));
-  CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 0));
-  CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 0));
-  CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 1));
-  CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 1));
-  CustomPeerMap_clear (c_m); /* See if assertions trigger */
-  CHECK (0 == CustomPeerMap_size (c_m));
-
-  CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
-  CHECK (1 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k1));
-  CHECK (1 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_YES == CustomPeerMap_contains_peer (c_m, &k1));
-  CHECK (GNUNET_OK == CustomPeerMap_remove_peer (c_m, &k1));
-  CHECK (0 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
-  CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k2));
-
-  CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
-  CHECK (1 == CustomPeerMap_size (c_m));
-  for (j = 0; j < 16; j++)
-  {
-    CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k1));
-  }
-  CHECK (1 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k2));
-  CHECK (2 == CustomPeerMap_size (c_m));
-  for (j = 0; j < 16; j++)
-  {
-    CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k2));
-  }
-  CHECK (2 == CustomPeerMap_size (c_m));
-
-  /* iterate */
-  for (j = 0; j < CustomPeerMap_size (c_m); j++)
-  {
-    CHECK (NULL != CustomPeerMap_get_peer_by_index (c_m, j));
-  }
-  CHECK ((0 == memcmp (CustomPeerMap_get_peer_by_index (c_m, 0),
-                       &k1, sizeof (k1))));
-  CHECK ((0 == memcmp (CustomPeerMap_get_peer_by_index (c_m, 1),
-                       &k2, sizeof (k2))));
-  CHECK (GNUNET_OK == CustomPeerMap_remove_peer (c_m, &k1));
-  CHECK (1 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
-  CHECK (GNUNET_YES == CustomPeerMap_contains_peer (c_m, &k2));
-  CHECK (NULL != CustomPeerMap_get_peer_by_index (c_m, 0));
-
-  CustomPeerMap_clear (c_m);
-  CHECK (0 == CustomPeerMap_size (c_m));
-
-  CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
-  CHECK (1 == CustomPeerMap_size (c_m));
-  CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k2));
-  CHECK (2 == CustomPeerMap_size (c_m));
-  CustomPeerMap_clear (c_m);
-  CHECK (0 == CustomPeerMap_size (c_m));
-
-  CustomPeerMap_destroy (c_m);
+  memset (&own_id, 1, sizeof (own_id));
+
+  /* Do nothing */
+  Peers_initialise ("", NULL, &own_id);
+  Peers_terminate ();
+
+
+  /* Create peer */
+  Peers_initialise ("", NULL, &own_id);
+  CHECK (GNUNET_YES == Peers_insert_peer (&k1));
+  Peers_terminate ();
+
+
+  /* Create peer */
+  Peers_initialise ("", NULL, &own_id);
+  CHECK (GNUNET_YES == Peers_insert_peer (&k1));
+  CHECK (GNUNET_YES == Peers_remove_peer (&k1));
+  Peers_terminate ();
+
+
+  /* Insertion and Removal */
+  Peers_initialise ("", NULL, &own_id);
+  CHECK (GNUNET_NO  == Peers_check_peer_known (&k1));
+
+  CHECK (GNUNET_YES == Peers_insert_peer (&k1));
+  CHECK (GNUNET_NO  == Peers_insert_peer (&k1));
+  CHECK (GNUNET_YES == Peers_check_peer_known (&k1));
+
+  CHECK (GNUNET_YES == Peers_remove_peer (&k1));
+  CHECK (GNUNET_NO  == Peers_remove_peer (&k1));
+  CHECK (GNUNET_NO  == Peers_check_peer_known (&k1));
+
+
+  /* Flags */
+  Peers_insert_peer (&k1);
+
+  CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_PULL_REPLY_PENDING));
+  CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_ONLINE));
+  CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
+
+  CHECK (GNUNET_NO  == Peers_check_peer_flag (&k1, Peers_ONLINE));
+
+  Peers_set_peer_flag (&k1, Peers_ONLINE);
+  CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_ONLINE));
+  CHECK (GNUNET_NO  == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
+  CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_ONLINE));
+  CHECK (GNUNET_NO  == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
+
+  /* Check send intention */
+  CHECK (GNUNET_NO == Peers_check_peer_send_intention (&k1));
+
+  /* Check existence of sending channel */
+  CHECK (GNUNET_NO == Peers_check_sending_channel_exists (&k1));
+
+  /* Check role of channels */
+  CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
+                                                 NULL,
+                                                 Peers_CHANNEL_ROLE_SENDING));
+  CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
+                                                 NULL,
+                                                 Peers_CHANNEL_ROLE_RECEIVING));
+
+  CHECK (GNUNET_YES == Peers_schedule_operation (&k1, peer_op));
 
+  Peers_terminate ();
   return 0;
 }
 
@@ -120,4 +134,4 @@ main (int argc, char *argv[])
   return check ();
 }
 
-/* end of test_rps_api.c */
+/* end of test_service_rps_peers.c */