Skip to content

Commit 01f79be

Browse files
committed
Add explore url parser result codes.
1 parent 8e40564 commit 01f79be

File tree

3 files changed

+184
-7
lines changed

3 files changed

+184
-7
lines changed

include/bitcoin/node/error.hpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,24 @@ enum error_t : uint8_t
9898
confirm10,
9999
confirm11,
100100
confirm12,
101-
confirm13
101+
confirm13,
102+
103+
/// server (url parse codes)
104+
empty_path,
105+
invalid_number,
106+
invalid_hash,
107+
missing_version,
108+
missing_target,
109+
invalid_target,
110+
missing_hash,
111+
missing_height,
112+
missing_position,
113+
missing_id_type,
114+
invalid_id_type,
115+
missing_component,
116+
invalid_component,
117+
invalid_subcomponent,
118+
extra_segment
102119
};
103120

104121
// No current need for error_code equivalence mapping.

src/error.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,24 @@ DEFINE_ERROR_T_MESSAGE_MAP(error)
8888
{ confirm10, "confirm10" },
8989
{ confirm11, "confirm11" },
9090
{ confirm12, "confirm12" },
91-
{ confirm13, "confirm13" }
91+
{ confirm13, "confirm13" },
92+
93+
/// server (url parse codes)
94+
{ empty_path, "empty_path" },
95+
{ invalid_number, "invalid_number" },
96+
{ invalid_hash, "invalid_hash" },
97+
{ missing_version, "missing_version" },
98+
{ missing_target, "missing_target" },
99+
{ invalid_target, "invalid_target" },
100+
{ missing_hash, "missing_hash" },
101+
{ missing_height, "missing_height" },
102+
{ missing_position, "missing_position" },
103+
{ missing_id_type, "missing_id_type" },
104+
{ invalid_id_type, "invalid_id_type" },
105+
{ missing_component, "missing_component" },
106+
{ invalid_component, "invalid_component" },
107+
{ invalid_subcomponent, "invalid_subcomponent" },
108+
{ extra_segment, "extra_segment" }
92109
};
93110

94111
DEFINE_ERROR_T_CATEGORY(error, "node", "node code")

test/error.cpp

Lines changed: 148 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,15 @@ BOOST_AUTO_TEST_CASE(error_t__code__protocol1__true_exected_message)
177177
BOOST_REQUIRE_EQUAL(ec.message(), "protocol1");
178178
}
179179

180+
BOOST_AUTO_TEST_CASE(error_t__code__protocol2__true_exected_message)
181+
{
182+
constexpr auto value = error::protocol2;
183+
const auto ec = code(value);
184+
BOOST_REQUIRE(ec);
185+
BOOST_REQUIRE(ec == value);
186+
BOOST_REQUIRE_EQUAL(ec.message(), "protocol2");
187+
}
188+
180189
BOOST_AUTO_TEST_CASE(error_t__code__header1__true_exected_message)
181190
{
182191
constexpr auto value = error::header1;
@@ -186,6 +195,7 @@ BOOST_AUTO_TEST_CASE(error_t__code__header1__true_exected_message)
186195
BOOST_REQUIRE_EQUAL(ec.message(), "header1");
187196
}
188197

198+
// TODO: organize2-organize15
189199
BOOST_AUTO_TEST_CASE(error_t__code__organize1__true_exected_message)
190200
{
191201
constexpr auto value = error::organize1;
@@ -195,8 +205,7 @@ BOOST_AUTO_TEST_CASE(error_t__code__organize1__true_exected_message)
195205
BOOST_REQUIRE_EQUAL(ec.message(), "organize1");
196206
}
197207

198-
// TODO: organize2-organize15
199-
208+
// TODO: validate2-validate6
200209
BOOST_AUTO_TEST_CASE(error_t__code__validate1__true_exected_message)
201210
{
202211
constexpr auto value = error::validate1;
@@ -206,8 +215,7 @@ BOOST_AUTO_TEST_CASE(error_t__code__validate1__true_exected_message)
206215
BOOST_REQUIRE_EQUAL(ec.message(), "validate1");
207216
}
208217

209-
// TODO: validate2-validate6
210-
218+
// TODO: confirm2-confirm17
211219
BOOST_AUTO_TEST_CASE(error_t__code__confirm1__true_exected_message)
212220
{
213221
constexpr auto value = error::confirm1;
@@ -217,6 +225,141 @@ BOOST_AUTO_TEST_CASE(error_t__code__confirm1__true_exected_message)
217225
BOOST_REQUIRE_EQUAL(ec.message(), "confirm1");
218226
}
219227

220-
// TODO: confirm2-confirm17
228+
// server (url parse codes)
229+
230+
BOOST_AUTO_TEST_CASE(error_t__code__empty_path__true_exected_message)
231+
{
232+
constexpr auto value = error::empty_path;
233+
const auto ec = code(value);
234+
BOOST_REQUIRE(ec);
235+
BOOST_REQUIRE(ec == value);
236+
BOOST_REQUIRE_EQUAL(ec.message(), "empty_path");
237+
}
238+
239+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_number__true_exected_message)
240+
{
241+
constexpr auto value = error::invalid_number;
242+
const auto ec = code(value);
243+
BOOST_REQUIRE(ec);
244+
BOOST_REQUIRE(ec == value);
245+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_number");
246+
}
247+
248+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_hash__true_exected_message)
249+
{
250+
constexpr auto value = error::invalid_hash;
251+
const auto ec = code(value);
252+
BOOST_REQUIRE(ec);
253+
BOOST_REQUIRE(ec == value);
254+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_hash");
255+
}
256+
257+
BOOST_AUTO_TEST_CASE(error_t__code__missing_version__true_exected_message)
258+
{
259+
constexpr auto value = error::missing_version;
260+
const auto ec = code(value);
261+
BOOST_REQUIRE(ec);
262+
BOOST_REQUIRE(ec == value);
263+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_version");
264+
}
265+
266+
BOOST_AUTO_TEST_CASE(error_t__code__missing_target__true_exected_message)
267+
{
268+
constexpr auto value = error::missing_target;
269+
const auto ec = code(value);
270+
BOOST_REQUIRE(ec);
271+
BOOST_REQUIRE(ec == value);
272+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_target");
273+
}
274+
275+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_target__true_exected_message)
276+
{
277+
constexpr auto value = error::invalid_target;
278+
const auto ec = code(value);
279+
BOOST_REQUIRE(ec);
280+
BOOST_REQUIRE(ec == value);
281+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_target");
282+
}
283+
284+
BOOST_AUTO_TEST_CASE(error_t__code__missing_hash__true_exected_message)
285+
{
286+
constexpr auto value = error::missing_hash;
287+
const auto ec = code(value);
288+
BOOST_REQUIRE(ec);
289+
BOOST_REQUIRE(ec == value);
290+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_hash");
291+
}
292+
293+
BOOST_AUTO_TEST_CASE(error_t__code__missing_height__true_exected_message)
294+
{
295+
constexpr auto value = error::missing_height;
296+
const auto ec = code(value);
297+
BOOST_REQUIRE(ec);
298+
BOOST_REQUIRE(ec == value);
299+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_height");
300+
}
301+
302+
BOOST_AUTO_TEST_CASE(error_t__code__missing_position__true_exected_message)
303+
{
304+
constexpr auto value = error::missing_position;
305+
const auto ec = code(value);
306+
BOOST_REQUIRE(ec);
307+
BOOST_REQUIRE(ec == value);
308+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_position");
309+
}
310+
311+
BOOST_AUTO_TEST_CASE(error_t__code__missing_id_type__true_exected_message)
312+
{
313+
constexpr auto value = error::missing_id_type;
314+
const auto ec = code(value);
315+
BOOST_REQUIRE(ec);
316+
BOOST_REQUIRE(ec == value);
317+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_id_type");
318+
}
319+
320+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_id_type__true_exected_message)
321+
{
322+
constexpr auto value = error::invalid_id_type;
323+
const auto ec = code(value);
324+
BOOST_REQUIRE(ec);
325+
BOOST_REQUIRE(ec == value);
326+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_id_type");
327+
}
328+
329+
BOOST_AUTO_TEST_CASE(error_t__code__missing_component__true_exected_message)
330+
{
331+
constexpr auto value = error::missing_component;
332+
const auto ec = code(value);
333+
BOOST_REQUIRE(ec);
334+
BOOST_REQUIRE(ec == value);
335+
BOOST_REQUIRE_EQUAL(ec.message(), "missing_component");
336+
}
337+
338+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_component__true_exected_message)
339+
{
340+
constexpr auto value = error::invalid_component;
341+
const auto ec = code(value);
342+
BOOST_REQUIRE(ec);
343+
BOOST_REQUIRE(ec == value);
344+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_component");
345+
}
346+
347+
BOOST_AUTO_TEST_CASE(error_t__code__invalid_subcomponent__true_exected_message)
348+
{
349+
constexpr auto value = error::invalid_subcomponent;
350+
const auto ec = code(value);
351+
BOOST_REQUIRE(ec);
352+
BOOST_REQUIRE(ec == value);
353+
BOOST_REQUIRE_EQUAL(ec.message(), "invalid_subcomponent");
354+
}
355+
356+
BOOST_AUTO_TEST_CASE(error_t__code__extra_segment__true_exected_message)
357+
{
358+
constexpr auto value = error::extra_segment;
359+
const auto ec = code(value);
360+
BOOST_REQUIRE(ec);
361+
BOOST_REQUIRE(ec == value);
362+
BOOST_REQUIRE_EQUAL(ec.message(), "extra_segment");
363+
}
221364

222365
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)