2 This file is part of GNUnet.
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
21 * @file rps/test_service_rps_peers.c
22 * @brief testcase for gnunet-service-rps_peers.c
25 #include "gnunet-service-rps_peers.h"
27 #define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); Peers_terminate (); return 1; }
28 #define CHECK(c) { if (! (c)) ABORT(); }
32 * @brief Dummy implementation of #PeerOp (Operation on peer)
37 void peer_op (void *cls, const struct GNUNET_PeerIdentity *peer)
39 GNUNET_assert (NULL != peer);
43 * @brief Function that is called on a peer for later execution
46 * @param peer peer to execute function upon
49 peer_op (void *cls, const struct GNUNET_PeerIdentity *peer);
55 struct GNUNET_PeerIdentity k1;
56 struct GNUNET_PeerIdentity own_id;
58 memset (&k1, 0, sizeof (k1));
59 memset (&own_id, 1, sizeof (own_id));
62 Peers_initialise (NULL, &own_id);
67 Peers_initialise (NULL, &own_id);
68 CHECK (GNUNET_YES == Peers_insert_peer (&k1));
73 Peers_initialise (NULL, &own_id);
74 CHECK (GNUNET_YES == Peers_insert_peer (&k1));
75 CHECK (GNUNET_YES == Peers_remove_peer (&k1));
79 /* Insertion and Removal */
80 Peers_initialise (NULL, &own_id);
81 CHECK (GNUNET_NO == Peers_check_peer_known (&k1));
83 CHECK (GNUNET_YES == Peers_insert_peer (&k1));
84 CHECK (GNUNET_NO == Peers_insert_peer (&k1));
85 CHECK (GNUNET_YES == Peers_check_peer_known (&k1));
87 CHECK (GNUNET_YES == Peers_remove_peer (&k1));
88 CHECK (GNUNET_NO == Peers_remove_peer (&k1));
89 CHECK (GNUNET_NO == Peers_check_peer_known (&k1));
93 Peers_insert_peer (&k1);
95 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_PULL_REPLY_PENDING));
96 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_VALID));
97 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_ONLINE));
98 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
100 Peers_set_peer_flag (&k1, Peers_VALID);
101 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_VALID));
102 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_ONLINE));
103 Peers_unset_peer_flag (&k1, Peers_VALID);
104 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_VALID));
106 Peers_set_peer_flag (&k1, Peers_VALID);
107 Peers_set_peer_flag (&k1, Peers_ONLINE);
108 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_VALID));
109 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_ONLINE));
110 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1,
111 Peers_ONLINE | Peers_VALID));
112 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
113 Peers_unset_peer_flag (&k1, Peers_VALID);
114 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_VALID));
115 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1, Peers_ONLINE));
116 CHECK (GNUNET_YES == Peers_check_peer_flag (&k1,
117 Peers_ONLINE | Peers_VALID));
118 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1,
119 Peers_ONLINE & Peers_VALID));
120 CHECK (GNUNET_NO == Peers_check_peer_flag (&k1, Peers_TO_DESTROY));
122 /* Check send intention */
123 CHECK (GNUNET_NO == Peers_check_peer_send_intention (&k1));
125 /* Check existence of sending channel */
126 CHECK (GNUNET_NO == Peers_check_sending_channel_exists (&k1));
128 /* Check role of channels */
129 CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
131 Peers_CHANNEL_ROLE_SENDING));
132 CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
134 Peers_CHANNEL_ROLE_RECEIVING));
136 CHECK (GNUNET_YES == Peers_schedule_operation (&k1, peer_op));
144 main (int argc, char *argv[])
146 GNUNET_log_setup ("test_service_rps_peers",
152 /* end of test_service_rps_peers.c */