aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2016-04-08 18:27:52 +0000
committerJulius Bünger <buenger@mytum.de>2016-04-08 18:27:52 +0000
commit298ab1efc669836811f5a0234e65cf0fb5313ace (patch)
tree6f75ebf2de6dbc7b90d5eb4481bcd04c1c1b2055 /src
parent3329003cb2aa8105a885a00867159effd23208b4 (diff)
downloadgnunet-298ab1efc669836811f5a0234e65cf0fb5313ace.tar.gz
gnunet-298ab1efc669836811f5a0234e65cf0fb5313ace.zip
rps: add test for gnunet-service-rps_peers
Diffstat (limited to 'src')
-rw-r--r--src/rps/Makefile.am6
-rw-r--r--src/rps/test_service_rps_peers.c152
2 files changed, 158 insertions, 0 deletions
diff --git a/src/rps/Makefile.am b/src/rps/Makefile.am
index f08ded57a..91efc3a55 100644
--- a/src/rps/Makefile.am
+++ b/src/rps/Makefile.am
@@ -73,6 +73,7 @@ if HAVE_TESTING
73check_PROGRAMS = \ 73check_PROGRAMS = \
74 test_service_rps_view \ 74 test_service_rps_view \
75 test_service_rps_custommap \ 75 test_service_rps_custommap \
76 test_service_rps_peers \
76 test_rps_malicious_1 \ 77 test_rps_malicious_1 \
77 test_rps_malicious_2 \ 78 test_rps_malicious_2 \
78 test_rps_malicious_3 \ 79 test_rps_malicious_3 \
@@ -102,6 +103,11 @@ test_service_rps_view_SOURCES = gnunet-service-rps_view.h gnunet-service-rps_vie
102 test_service_rps_view.c 103 test_service_rps_view.c
103test_service_rps_view_LDADD = $(top_builddir)/src/util/libgnunetutil.la 104test_service_rps_view_LDADD = $(top_builddir)/src/util/libgnunetutil.la
104 105
106test_service_rps_peers_SOURCES = gnunet-service-rps_peers.h gnunet-service-rps_peers.c \
107 test_service_rps_peers.c
108test_service_rps_peers_LDADD = $(top_builddir)/src/util/libgnunetutil.la \
109 $(top_builddir)/src/cadet/libgnunetcadet.la
110
105test_service_rps_custommap_SOURCES = gnunet-service-rps_custommap.h gnunet-service-rps_custommap.c \ 111test_service_rps_custommap_SOURCES = gnunet-service-rps_custommap.h gnunet-service-rps_custommap.c \
106 test_service_rps_custommap.c 112 test_service_rps_custommap.c
107test_service_rps_custommap_LDADD = $(top_builddir)/src/util/libgnunetutil.la 113test_service_rps_custommap_LDADD = $(top_builddir)/src/util/libgnunetutil.la
diff --git a/src/rps/test_service_rps_peers.c b/src/rps/test_service_rps_peers.c
new file mode 100644
index 000000000..f5191facc
--- /dev/null
+++ b/src/rps/test_service_rps_peers.c
@@ -0,0 +1,152 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C)
4
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.
9
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.
14
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.
19*/
20/**
21 * @file rps/test_service_rps_peers.c
22 * @brief testcase for gnunet-service-rps_peers.c
23 */
24#include <platform.h>
25#include "gnunet-service-rps_peers.h"
26
27#define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); Peers_terminate (); return 1; }
28#define CHECK(c) { if (! (c)) ABORT(); }
29
30
31/**
32 * @brief Dummy implementation of #PeerOp (Operation on peer)
33 *
34 * @param cls closure
35 * @param peer peer
36 */
37void peer_op (void *cls, const struct GNUNET_PeerIdentity *peer)
38{
39 GNUNET_assert (NULL != peer);
40}
41
42/**
43 * @brief Function that is called on a peer for later execution
44 *
45 * @param cls closure
46 * @param peer peer to execute function upon
47 */
48void
49peer_op (void *cls, const struct GNUNET_PeerIdentity *peer);
50
51
52static int
53check ()
54{
55 struct GNUNET_PeerIdentity k1;
56 struct GNUNET_PeerIdentity own_id;
57
58 memset (&k1, 0, sizeof (k1));
59 memset (&own_id, 1, sizeof (own_id));
60
61 /* Do nothing */
62 Peers_initialise (NULL, &own_id);
63 Peers_terminate ();
64
65
66 /* Create peer */
67 Peers_initialise (NULL, &own_id);
68 CHECK (GNUNET_YES == Peers_insert_peer (&k1));
69 Peers_terminate ();
70
71
72 /* Create peer */
73 Peers_initialise (NULL, &own_id);
74 CHECK (GNUNET_YES == Peers_insert_peer (&k1));
75 CHECK (GNUNET_YES == Peers_remove_peer (&k1));
76 Peers_terminate ();
77
78
79 /* Insertion and Removal */
80 Peers_initialise (NULL, &own_id);
81 CHECK (GNUNET_NO == Peers_check_peer_known (&k1));
82
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));
86
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));
90
91
92 /* Flags */
93 Peers_insert_peer (&k1);
94
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));
99
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));
105
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));
121
122 /* Check send intention */
123 CHECK (GNUNET_NO == Peers_check_peer_send_intention (&k1));
124
125 /* Check existence of sending channel */
126 CHECK (GNUNET_NO == Peers_check_sending_channel_exists (&k1));
127
128 /* Check role of channels */
129 CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
130 NULL,
131 Peers_CHANNEL_ROLE_SENDING));
132 CHECK (GNUNET_YES == Peers_check_channel_role (&k1,
133 NULL,
134 Peers_CHANNEL_ROLE_RECEIVING));
135
136 CHECK (GNUNET_YES == Peers_schedule_operation (&k1, peer_op));
137
138 Peers_terminate ();
139 return 0;
140}
141
142
143int
144main (int argc, char *argv[])
145{
146 GNUNET_log_setup ("test_service_rps_peers",
147 "WARNING",
148 NULL);
149 return check ();
150}
151
152/* end of test_service_rps_peers.c */