* @file rps/test_service_rps_peers.c
* @brief testcase for gnunet-service-rps_peers.c
*/
-#include <gnunet/platform.h>
+#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));
- /*ret = GNUNET_CONTAINER_multipeermap_get (m, &k1);
- GNUNET_assert (ret != NULL);
- CHECK (0 == strcmp ("v1", ret));*/
- 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));
- 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));
- 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_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;
}
return check ();
}
-/* end of test_rps_api.c */
+/* end of test_service_rps_peers.c */