diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2010-10-27 09:21:14 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2010-10-27 09:21:14 +0000 |
commit | 71f77f1be3d6e2da1b88fe4a4fdd44c3c69b5325 (patch) | |
tree | 5570130fdab90ad02f4b5bfda414d13161f0f3d1 /src/util/test_time.c | |
parent | 1d7368a52af332af35ec6de22affef4f5f0c1da4 (diff) | |
download | gnunet-71f77f1be3d6e2da1b88fe4a4fdd44c3c69b5325.tar.gz gnunet-71f77f1be3d6e2da1b88fe4a4fdd44c3c69b5325.zip |
Changed GNUNET_TIME_Absolute and GNUNET_TIME_Relative to allow safe comparisons between time values
Diffstat (limited to 'src/util/test_time.c')
-rw-r--r-- | src/util/test_time.c | 152 |
1 files changed, 76 insertions, 76 deletions
diff --git a/src/util/test_time.c b/src/util/test_time.c index eecbbafae..13f5e58a0 100644 --- a/src/util/test_time.c +++ b/src/util/test_time.c | |||
@@ -45,12 +45,12 @@ check () | |||
45 | forever = GNUNET_TIME_absolute_get_forever (); | 45 | forever = GNUNET_TIME_absolute_get_forever (); |
46 | relForever = GNUNET_TIME_relative_get_forever (); | 46 | relForever = GNUNET_TIME_relative_get_forever (); |
47 | relUnit = GNUNET_TIME_relative_get_unit (); | 47 | relUnit = GNUNET_TIME_relative_get_unit (); |
48 | zero.value = 0; | 48 | zero.abs_value = 0; |
49 | 49 | ||
50 | last = now = GNUNET_TIME_absolute_get (); | 50 | last = now = GNUNET_TIME_absolute_get (); |
51 | while (now.value == last.value) | 51 | while (now.abs_value == last.abs_value) |
52 | now = GNUNET_TIME_absolute_get (); | 52 | now = GNUNET_TIME_absolute_get (); |
53 | GNUNET_assert (now.value > last.value); | 53 | GNUNET_assert (now.abs_value > last.abs_value); |
54 | 54 | ||
55 | /* test overflow checking in multiply */ | 55 | /* test overflow checking in multiply */ |
56 | rel = GNUNET_TIME_UNIT_SECONDS; | 56 | rel = GNUNET_TIME_UNIT_SECONDS; |
@@ -58,169 +58,169 @@ check () | |||
58 | for (i = 0; i < 55; i++) | 58 | for (i = 0; i < 55; i++) |
59 | rel = GNUNET_TIME_relative_multiply (rel, 2); | 59 | rel = GNUNET_TIME_relative_multiply (rel, 2); |
60 | GNUNET_log_skip (0, GNUNET_NO); | 60 | GNUNET_log_skip (0, GNUNET_NO); |
61 | GNUNET_assert (rel.value == GNUNET_TIME_UNIT_FOREVER_REL.value); | 61 | GNUNET_assert (rel.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value); |
62 | /*check zero*/ | 62 | /*check zero*/ |
63 | rel.value = (UINT64_MAX) - 1024; | 63 | rel.rel_value = (UINT64_MAX) - 1024; |
64 | GNUNET_assert (GNUNET_TIME_relative_get_zero ().value == GNUNET_TIME_relative_multiply (rel,0).value); | 64 | GNUNET_assert (GNUNET_TIME_relative_get_zero ().rel_value == GNUNET_TIME_relative_multiply (rel,0).rel_value); |
65 | 65 | ||
66 | /* test infinity-check for relative to absolute */ | 66 | /* test infinity-check for relative to absolute */ |
67 | GNUNET_log_skip (1, GNUNET_NO); | 67 | GNUNET_log_skip (1, GNUNET_NO); |
68 | last = GNUNET_TIME_relative_to_absolute (rel); | 68 | last = GNUNET_TIME_relative_to_absolute (rel); |
69 | GNUNET_assert (last.value == GNUNET_TIME_UNIT_FOREVER_ABS.value); | 69 | GNUNET_assert (last.abs_value == GNUNET_TIME_UNIT_FOREVER_ABS.abs_value); |
70 | GNUNET_log_skip (0, GNUNET_YES); | 70 | GNUNET_log_skip (0, GNUNET_YES); |
71 | 71 | ||
72 | /*check relative to absolute*/ | 72 | /*check relative to absolute*/ |
73 | rel.value = 0; | 73 | rel.rel_value = 0; |
74 | GNUNET_assert (GNUNET_TIME_absolute_get ().value == | 74 | GNUNET_assert (GNUNET_TIME_absolute_get ().abs_value == |
75 | GNUNET_TIME_relative_to_absolute(rel).value); | 75 | GNUNET_TIME_relative_to_absolute(rel).abs_value); |
76 | /*check forever*/ | 76 | /*check forever*/ |
77 | rel.value = UINT64_MAX; | 77 | rel.rel_value = UINT64_MAX; |
78 | GNUNET_assert (GNUNET_TIME_absolute_get_forever ().value == | 78 | GNUNET_assert (GNUNET_TIME_absolute_get_forever ().abs_value == |
79 | GNUNET_TIME_relative_to_absolute(rel).value); | 79 | GNUNET_TIME_relative_to_absolute(rel).abs_value); |
80 | /* check overflow for r2a */ | 80 | /* check overflow for r2a */ |
81 | rel.value = (UINT64_MAX) - 1024; | 81 | rel.rel_value = (UINT64_MAX) - 1024; |
82 | GNUNET_log_skip (1, GNUNET_NO); | 82 | GNUNET_log_skip (1, GNUNET_NO); |
83 | last = GNUNET_TIME_relative_to_absolute (rel); | 83 | last = GNUNET_TIME_relative_to_absolute (rel); |
84 | GNUNET_log_skip (0, GNUNET_NO); | 84 | GNUNET_log_skip (0, GNUNET_NO); |
85 | GNUNET_assert (last.value == GNUNET_TIME_UNIT_FOREVER_ABS.value); | 85 | GNUNET_assert (last.abs_value == GNUNET_TIME_UNIT_FOREVER_ABS.abs_value); |
86 | 86 | ||
87 | /* check overflow for relative add */ | 87 | /* check overflow for relative add */ |
88 | GNUNET_log_skip (1, GNUNET_NO); | 88 | GNUNET_log_skip (1, GNUNET_NO); |
89 | rel = GNUNET_TIME_relative_add (rel, rel); | 89 | rel = GNUNET_TIME_relative_add (rel, rel); |
90 | GNUNET_log_skip (0, GNUNET_NO); | 90 | GNUNET_log_skip (0, GNUNET_NO); |
91 | GNUNET_assert (rel.value == GNUNET_TIME_UNIT_FOREVER_REL.value); | 91 | GNUNET_assert (rel.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value); |
92 | 92 | ||
93 | GNUNET_log_skip (1, GNUNET_NO); | 93 | GNUNET_log_skip (1, GNUNET_NO); |
94 | rel = GNUNET_TIME_relative_add (relForever, relForever); | 94 | rel = GNUNET_TIME_relative_add (relForever, relForever); |
95 | GNUNET_log_skip (0, GNUNET_NO); | 95 | GNUNET_log_skip (0, GNUNET_NO); |
96 | GNUNET_assert (rel.value == relForever.value); | 96 | GNUNET_assert (rel.rel_value == relForever.rel_value); |
97 | 97 | ||
98 | GNUNET_log_skip (1, GNUNET_NO); | 98 | GNUNET_log_skip (1, GNUNET_NO); |
99 | rel = GNUNET_TIME_relative_add (relUnit, relUnit); | 99 | rel = GNUNET_TIME_relative_add (relUnit, relUnit); |
100 | GNUNET_assert (rel.value == 2 * relUnit.value); | 100 | GNUNET_assert (rel.rel_value == 2 * relUnit.rel_value); |
101 | 101 | ||
102 | /* check relation check in get_duration */ | 102 | /* check relation check in get_duration */ |
103 | future.value = now.value + 1000000; | 103 | future.abs_value = now.abs_value + 1000000; |
104 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (now, future).value == | 104 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (now, future).rel_value == |
105 | 1000000); | 105 | 1000000); |
106 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (future, now).value == | 106 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (future, now).rel_value == |
107 | 0); | 107 | 0); |
108 | 108 | ||
109 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (zero, forever).value == | 109 | GNUNET_assert (GNUNET_TIME_absolute_get_difference (zero, forever).rel_value == |
110 | forever.value); | 110 | forever.abs_value); |
111 | 111 | ||
112 | past.value = now.value - 1000000; | 112 | past.abs_value = now.abs_value - 1000000; |
113 | rel = GNUNET_TIME_absolute_get_duration (future); | 113 | rel = GNUNET_TIME_absolute_get_duration (future); |
114 | GNUNET_assert (rel.value == 0); | 114 | GNUNET_assert (rel.rel_value == 0); |
115 | rel = GNUNET_TIME_absolute_get_duration (past); | 115 | rel = GNUNET_TIME_absolute_get_duration (past); |
116 | GNUNET_assert (rel.value >= 1000000); | 116 | GNUNET_assert (rel.rel_value >= 1000000); |
117 | 117 | ||
118 | /* check get remaining */ | 118 | /* check get remaining */ |
119 | rel = GNUNET_TIME_absolute_get_remaining (now); | 119 | rel = GNUNET_TIME_absolute_get_remaining (now); |
120 | GNUNET_assert (rel.value == 0); | 120 | GNUNET_assert (rel.rel_value == 0); |
121 | rel = GNUNET_TIME_absolute_get_remaining (past); | 121 | rel = GNUNET_TIME_absolute_get_remaining (past); |
122 | GNUNET_assert (rel.value == 0); | 122 | GNUNET_assert (rel.rel_value == 0); |
123 | rel = GNUNET_TIME_absolute_get_remaining (future); | 123 | rel = GNUNET_TIME_absolute_get_remaining (future); |
124 | GNUNET_assert (rel.value > 0); | 124 | GNUNET_assert (rel.rel_value > 0); |
125 | GNUNET_assert (rel.value <= 1000000); | 125 | GNUNET_assert (rel.rel_value <= 1000000); |
126 | forever = GNUNET_TIME_absolute_get_forever (); | 126 | forever = GNUNET_TIME_absolute_get_forever (); |
127 | GNUNET_assert (GNUNET_TIME_relative_get_forever ().value == | 127 | GNUNET_assert (GNUNET_TIME_relative_get_forever ().rel_value == |
128 | GNUNET_TIME_absolute_get_remaining (forever).value); | 128 | GNUNET_TIME_absolute_get_remaining (forever).rel_value); |
129 | 129 | ||
130 | /* check endianess */ | 130 | /* check endianess */ |
131 | reln = GNUNET_TIME_relative_hton (rel); | 131 | reln = GNUNET_TIME_relative_hton (rel); |
132 | GNUNET_assert (rel.value == GNUNET_TIME_relative_ntoh (reln).value); | 132 | GNUNET_assert (rel.rel_value == GNUNET_TIME_relative_ntoh (reln).rel_value); |
133 | nown = GNUNET_TIME_absolute_hton (now); | 133 | nown = GNUNET_TIME_absolute_hton (now); |
134 | GNUNET_assert (now.value == GNUNET_TIME_absolute_ntoh (nown).value); | 134 | GNUNET_assert (now.abs_value == GNUNET_TIME_absolute_ntoh (nown).abs_value); |
135 | 135 | ||
136 | /* check absolute addition */ | 136 | /* check absolute addition */ |
137 | future = GNUNET_TIME_absolute_add (now, GNUNET_TIME_UNIT_SECONDS); | 137 | future = GNUNET_TIME_absolute_add (now, GNUNET_TIME_UNIT_SECONDS); |
138 | GNUNET_assert (future.value == now.value + 1000); | 138 | GNUNET_assert (future.abs_value == now.abs_value + 1000); |
139 | 139 | ||
140 | future = GNUNET_TIME_absolute_add (forever, GNUNET_TIME_UNIT_ZERO); | 140 | future = GNUNET_TIME_absolute_add (forever, GNUNET_TIME_UNIT_ZERO); |
141 | GNUNET_assert (future.value == forever.value); | 141 | GNUNET_assert (future.abs_value == forever.abs_value); |
142 | 142 | ||
143 | rel.value = (UINT64_MAX) - 1024; | 143 | rel.rel_value = (UINT64_MAX) - 1024; |
144 | now.value = rel.value; | 144 | now.abs_value = rel.rel_value; |
145 | future = GNUNET_TIME_absolute_add (now, rel); | 145 | future = GNUNET_TIME_absolute_add (now, rel); |
146 | GNUNET_assert (future.value == forever.value); | 146 | GNUNET_assert (future.abs_value == forever.abs_value); |
147 | 147 | ||
148 | /* check zero */ | 148 | /* check zero */ |
149 | future = GNUNET_TIME_absolute_add (now, GNUNET_TIME_UNIT_ZERO); | 149 | future = GNUNET_TIME_absolute_add (now, GNUNET_TIME_UNIT_ZERO); |
150 | GNUNET_assert (future.value == now.value); | 150 | GNUNET_assert (future.abs_value == now.abs_value); |
151 | 151 | ||
152 | GNUNET_assert (forever.value == | 152 | GNUNET_assert (forever.abs_value == |
153 | GNUNET_TIME_absolute_subtract (forever, | 153 | GNUNET_TIME_absolute_subtract (forever, |
154 | GNUNET_TIME_UNIT_MINUTES).value); | 154 | GNUNET_TIME_UNIT_MINUTES).abs_value); |
155 | /*check absolute subtract*/ | 155 | /*check absolute subtract*/ |
156 | now.value= 50000; | 156 | now.abs_value= 50000; |
157 | rel.value = 100000; | 157 | rel.rel_value = 100000; |
158 | GNUNET_assert (GNUNET_TIME_UNIT_ZERO_ABS.value == | 158 | GNUNET_assert (GNUNET_TIME_UNIT_ZERO_ABS.abs_value == |
159 | (GNUNET_TIME_absolute_subtract(now,rel)).value); | 159 | (GNUNET_TIME_absolute_subtract(now,rel)).abs_value); |
160 | rel.value = 10000; | 160 | rel.rel_value = 10000; |
161 | GNUNET_assert (40000 == | 161 | GNUNET_assert (40000 == |
162 | (GNUNET_TIME_absolute_subtract(now,rel)).value); | 162 | (GNUNET_TIME_absolute_subtract(now,rel)).abs_value); |
163 | 163 | ||
164 | /*check relative divide*/ | 164 | /*check relative divide*/ |
165 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.value == | 165 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.rel_value == |
166 | (GNUNET_TIME_relative_divide (rel,0)).value); | 166 | (GNUNET_TIME_relative_divide (rel,0)).rel_value); |
167 | 167 | ||
168 | rel = GNUNET_TIME_UNIT_FOREVER_REL; | 168 | rel = GNUNET_TIME_UNIT_FOREVER_REL; |
169 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.value == | 169 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.rel_value == |
170 | (GNUNET_TIME_relative_divide (rel,2)).value); | 170 | (GNUNET_TIME_relative_divide (rel,2)).rel_value); |
171 | 171 | ||
172 | rel = GNUNET_TIME_relative_divide (relUnit,2); | 172 | rel = GNUNET_TIME_relative_divide (relUnit,2); |
173 | GNUNET_assert(rel.value == relUnit.value / 2); | 173 | GNUNET_assert(rel.rel_value == relUnit.rel_value / 2); |
174 | 174 | ||
175 | 175 | ||
176 | /* check Return absolute time of 0ms*/ | 176 | /* check Return absolute time of 0ms*/ |
177 | zero = GNUNET_TIME_absolute_get_zero (); | 177 | zero = GNUNET_TIME_absolute_get_zero (); |
178 | 178 | ||
179 | /* check GNUNET_TIME_calculate_eta */ | 179 | /* check GNUNET_TIME_calculate_eta */ |
180 | last.value = GNUNET_TIME_absolute_get ().value - 1024; | 180 | last.abs_value = GNUNET_TIME_absolute_get ().abs_value - 1024; |
181 | forever = GNUNET_TIME_absolute_get_forever (); | 181 | forever = GNUNET_TIME_absolute_get_forever (); |
182 | forever.value = forever.value - 1024; | 182 | forever.abs_value = forever.abs_value - 1024; |
183 | GNUNET_assert(GNUNET_TIME_absolute_get_zero ().value == | 183 | GNUNET_assert(GNUNET_TIME_absolute_get_zero ().abs_value == |
184 | GNUNET_TIME_calculate_eta (forever, 50000, 100000).value); | 184 | GNUNET_TIME_calculate_eta (forever, 50000, 100000).rel_value); |
185 | /* check zero */ | 185 | /* check zero */ |
186 | GNUNET_log_skip (1, GNUNET_NO); | 186 | GNUNET_log_skip (1, GNUNET_NO); |
187 | GNUNET_assert(GNUNET_TIME_UNIT_ZERO.value == | 187 | GNUNET_assert(GNUNET_TIME_UNIT_ZERO.rel_value == |
188 | (GNUNET_TIME_calculate_eta (last, 60000, 50000)).value); | 188 | (GNUNET_TIME_calculate_eta (last, 60000, 50000)).rel_value); |
189 | GNUNET_log_skip (0, GNUNET_YES); | 189 | GNUNET_log_skip (0, GNUNET_YES); |
190 | /*check forever*/ | 190 | /*check forever*/ |
191 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.value == | 191 | GNUNET_assert(GNUNET_TIME_UNIT_FOREVER_REL.rel_value == |
192 | (GNUNET_TIME_calculate_eta (last, 0, 50000)).value); | 192 | (GNUNET_TIME_calculate_eta (last, 0, 50000)).rel_value); |
193 | 193 | ||
194 | /*check relative subtract*/ | 194 | /*check relative subtract*/ |
195 | now = GNUNET_TIME_absolute_get (); | 195 | now = GNUNET_TIME_absolute_get (); |
196 | rel.value = now.value; | 196 | rel.rel_value = now.abs_value; |
197 | relForever.value = rel.value + 1024; | 197 | relForever.rel_value = rel.rel_value + 1024; |
198 | GNUNET_assert(1024 == | 198 | GNUNET_assert(1024 == |
199 | GNUNET_TIME_relative_subtract(relForever,rel).value); | 199 | GNUNET_TIME_relative_subtract(relForever,rel).rel_value); |
200 | /*check zero*/ | 200 | /*check zero*/ |
201 | GNUNET_assert(GNUNET_TIME_relative_get_zero ().value == | 201 | GNUNET_assert(GNUNET_TIME_relative_get_zero ().rel_value == |
202 | GNUNET_TIME_relative_subtract(rel,relForever).value); | 202 | GNUNET_TIME_relative_subtract(rel,relForever).rel_value); |
203 | /*check forever*/ | 203 | /*check forever*/ |
204 | rel.value = UINT64_MAX; | 204 | rel.rel_value = UINT64_MAX; |
205 | GNUNET_assert(GNUNET_TIME_relative_get_forever ().value == | 205 | GNUNET_assert(GNUNET_TIME_relative_get_forever ().rel_value == |
206 | GNUNET_TIME_relative_subtract(rel,relForever).value); | 206 | GNUNET_TIME_relative_subtract(rel,relForever).rel_value); |
207 | 207 | ||
208 | /*check GNUNET_TIME_relative_min*/ | 208 | /*check GNUNET_TIME_relative_min*/ |
209 | now = GNUNET_TIME_absolute_get (); | 209 | now = GNUNET_TIME_absolute_get (); |
210 | rel.value = now.value; | 210 | rel.rel_value = now.abs_value; |
211 | relForever.value = rel.value - 1024; | 211 | relForever.rel_value = rel.rel_value - 1024; |
212 | GNUNET_assert(relForever.value == GNUNET_TIME_relative_min(rel,relForever).value); | 212 | GNUNET_assert(relForever.rel_value == GNUNET_TIME_relative_min(rel,relForever).rel_value); |
213 | 213 | ||
214 | /*check GNUNET_TIME_relative_max */ | 214 | /*check GNUNET_TIME_relative_max */ |
215 | GNUNET_assert(rel.value == GNUNET_TIME_relative_max(rel,relForever).value); | 215 | GNUNET_assert(rel.rel_value == GNUNET_TIME_relative_max(rel,relForever).rel_value); |
216 | 216 | ||
217 | /*check GNUNET_TIME_absolute_min*/ | 217 | /*check GNUNET_TIME_absolute_min*/ |
218 | now = GNUNET_TIME_absolute_get (); | 218 | now = GNUNET_TIME_absolute_get (); |
219 | last.value = now.value - 1024; | 219 | last.abs_value = now.abs_value - 1024; |
220 | GNUNET_assert(last.value == GNUNET_TIME_absolute_min(now,last).value); | 220 | GNUNET_assert(last.abs_value == GNUNET_TIME_absolute_min(now,last).abs_value); |
221 | 221 | ||
222 | /*check GNUNET_TIME_absolute_max*/ | 222 | /*check GNUNET_TIME_absolute_max*/ |
223 | GNUNET_assert(now.value == GNUNET_TIME_absolute_max(now,last).value); | 223 | GNUNET_assert(now.abs_value == GNUNET_TIME_absolute_max(now,last).abs_value); |
224 | 224 | ||
225 | return 0; | 225 | return 0; |
226 | } | 226 | } |