diff options
author | Julius Bünger <buenger@mytum.de> | 2015-11-29 20:44:44 +0000 |
---|---|---|
committer | Julius Bünger <buenger@mytum.de> | 2015-11-29 20:44:44 +0000 |
commit | d72d8e05401ace44b57432463f136bcfe55cee03 (patch) | |
tree | 8d1374ae5ebd8aa7eb7b5be6ee4d88b7fa78c298 /src/rps/test_service_rps_view.c | |
parent | a0e27c0bd09fc4b0d70295baa5d7e052c46fe4ff (diff) | |
download | gnunet-d72d8e05401ace44b57432463f136bcfe55cee03.tar.gz gnunet-d72d8e05401ace44b57432463f136bcfe55cee03.zip |
added helper for handling the "view" in rps
Signed-off-by: Julius Bünger <buenger@mytum.de>
Diffstat (limited to 'src/rps/test_service_rps_view.c')
-rw-r--r-- | src/rps/test_service_rps_view.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/rps/test_service_rps_view.c b/src/rps/test_service_rps_view.c new file mode 100644 index 000000000..8e018cba5 --- /dev/null +++ b/src/rps/test_service_rps_view.c | |||
@@ -0,0 +1,121 @@ | |||
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_view.c | ||
22 | * @brief testcase for gnunet-service-rps_view.c | ||
23 | */ | ||
24 | #include <gnunet/platform.h> | ||
25 | #include "gnunet-service-rps_view.h" | ||
26 | |||
27 | #define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); View_destroy(); return 1; } | ||
28 | #define CHECK(c) { if (! (c)) ABORT(); } | ||
29 | |||
30 | |||
31 | static int | ||
32 | check () | ||
33 | { | ||
34 | struct GNUNET_PeerIdentity k1; | ||
35 | struct GNUNET_PeerIdentity k2; | ||
36 | const struct GNUNET_PeerIdentity *array; | ||
37 | int j; | ||
38 | |||
39 | View_create (3); | ||
40 | memset (&k1, 0, sizeof (k1)); | ||
41 | memset (&k2, 1, sizeof (k2)); | ||
42 | CHECK (GNUNET_NO == View_contains_peer (&k1)); | ||
43 | CHECK (GNUNET_NO == View_contains_peer (&k2)); | ||
44 | CHECK (GNUNET_NO == View_remove_peer (&k1)); | ||
45 | CHECK (GNUNET_NO == View_remove_peer (&k2)); | ||
46 | CHECK (NULL == View_get_peer_by_index (0)); | ||
47 | CHECK (NULL == View_get_peer_by_index (1)); | ||
48 | View_clear (); /* See if assertions trigger */ | ||
49 | CHECK (0 == View_size ()); | ||
50 | |||
51 | CHECK (GNUNET_OK == View_put (&k1)); | ||
52 | CHECK (1 == View_size ()); | ||
53 | CHECK (GNUNET_NO == View_put (&k1)); | ||
54 | CHECK (1 == View_size ()); | ||
55 | CHECK (GNUNET_YES == View_contains_peer (&k1)); | ||
56 | CHECK (GNUNET_OK == View_remove_peer (&k1)); | ||
57 | CHECK (0 == View_size ()); | ||
58 | CHECK (GNUNET_NO == View_contains_peer (&k1)); | ||
59 | CHECK (GNUNET_NO == View_contains_peer (&k2)); | ||
60 | |||
61 | CHECK (GNUNET_OK == View_put (&k1)); | ||
62 | CHECK (1 == View_size ()); | ||
63 | for (j = 0; j < 16; j++) | ||
64 | { | ||
65 | CHECK (GNUNET_NO == View_put (&k1)); | ||
66 | } | ||
67 | CHECK (1 == View_size ()); | ||
68 | CHECK (GNUNET_OK == View_put (&k2)); | ||
69 | CHECK (2 == View_size ()); | ||
70 | for (j = 0; j < 16; j++) | ||
71 | { | ||
72 | CHECK (GNUNET_NO == View_put (&k2)); | ||
73 | } | ||
74 | CHECK (2 == View_size ()); | ||
75 | |||
76 | /* iterate */ | ||
77 | for (j = 0; j < View_size (); j++) | ||
78 | { | ||
79 | CHECK (NULL != View_get_peer_by_index (j)); | ||
80 | } | ||
81 | CHECK ((0 == memcmp (View_get_peer_by_index (0), | ||
82 | &k1, sizeof (k1)))); | ||
83 | CHECK ((0 == memcmp (View_get_peer_by_index (1), | ||
84 | &k2, sizeof (k2)))); | ||
85 | CHECK (GNUNET_OK == View_remove_peer (&k1)); | ||
86 | CHECK (1 == View_size ()); | ||
87 | CHECK (GNUNET_NO == View_contains_peer (&k1)); | ||
88 | CHECK (GNUNET_YES == View_contains_peer (&k2)); | ||
89 | CHECK (NULL != View_get_peer_by_index (0)); | ||
90 | |||
91 | View_clear (); | ||
92 | CHECK (0 == View_size ()); | ||
93 | |||
94 | CHECK (GNUNET_OK == View_put (&k1)); | ||
95 | CHECK (1 == View_size ()); | ||
96 | CHECK (GNUNET_OK == View_put (&k2)); | ||
97 | CHECK (2 == View_size ()); | ||
98 | array = View_get_as_array (); | ||
99 | CHECK (0 == memcmp (&array[0], &k1, sizeof (k1))); | ||
100 | CHECK (0 == memcmp (&array[1], &k2, sizeof (k2))); | ||
101 | View_clear (); | ||
102 | CHECK (0 == View_size ()); | ||
103 | |||
104 | /*View_change_len () */ | ||
105 | |||
106 | View_destroy (); | ||
107 | |||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | |||
112 | int | ||
113 | main (int argc, char *argv[]) | ||
114 | { | ||
115 | GNUNET_log_setup ("test_service_rps_peers", | ||
116 | "WARNING", | ||
117 | NULL); | ||
118 | return check (); | ||
119 | } | ||
120 | |||
121 | /* end of test_service_rps_view.c */ | ||