From 617ae38546228225f95507573ab21a4b5a7e9a40 Mon Sep 17 00:00:00 2001 From: Omar Polo Date: Mon, 4 Jul 2022 09:36:55 +0000 Subject: add some more regress for the encodings --- regress/iri_test.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/regress/iri_test.c b/regress/iri_test.c index c6725b5..a3f6895 100644 --- a/regress/iri_test.c +++ b/regress/iri_test.c @@ -20,6 +20,19 @@ #include "../gmid.h" +#define ENCTEST(buf, len, raw, exp) \ + if (encode_path(buf, len, raw) == -1) { \ + fprintf(stderr, "%s:%d: failed to encode: %s\n", \ + __FILE__, __LINE__, raw); \ + exit(1); \ + } \ + if (strcmp(buf, exp) != 0) { \ + fprintf(stderr, "%s:%d: error: " \ + "unexpected encoding: got %s, want %s\n", \ + __FILE__, __LINE__, buf, exp); \ + exit(1); \ + } + #define TEST(iri, fail, exp, descr) \ if (!run_test(iri, fail, exp)) { \ fprintf(stderr, "%s:%d: error: %s\n", \ @@ -90,8 +103,13 @@ done: int main(void) { + char buf[32]; struct iri empty = IRI("", "", "", "", "", ""); + ENCTEST(buf, sizeof(buf), "hello world", "hello%20world"); + ENCTEST(buf, sizeof(buf), "hello\nworld", "hello%0Aworld"); + ENCTEST(buf, sizeof(buf), "hello\r\nworld", "hello%0D%0Aworld"); + TEST("http://omarpolo.com", PASS, IRI("http", "omarpolo.com", "", "", "", ""), -- cgit v1.2.3