commit 617ae38546228225f95507573ab21a4b5a7e9a40 from: Omar Polo date: Mon Jul 04 09:36:55 2022 UTC add some more regress for the encodings commit - 475205fa0f2737475a17dd692b71611523b898a0 commit + 617ae38546228225f95507573ab21a4b5a7e9a40 blob - c6725b52741ac8604f0402272107b25157a022db blob + a3f68954a4acab50213c270a6259dcd258c37bff --- regress/iri_test.c +++ regress/iri_test.c @@ -19,6 +19,19 @@ #include #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)) { \ @@ -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", "", "", "", ""),