23 static void test(
const char *base, 
const char *rel)
    25     char buf[200], buf2[200];
    30         snprintf(buf2, 
sizeof(buf2), 
"%s", base);
    32         if (strcmp(buf, buf2)) {
    33             printf(
"In-place handling of %s + %s failed\n", base, rel);
    42     test(
"/foo/bar", 
"baz");
    43     test(
"/foo/bar", 
"../baz");
    44     test(
"/foo/bar", 
"/baz");
    45     test(
"http://server/foo/", 
"baz");
    46     test(
"http://server/foo/bar", 
"baz");
    47     test(
"http://server/foo/", 
"../baz");
    48     test(
"http://server/foo/bar/123", 
"../../baz");
    49     test(
"http://server/foo/bar/123", 
"/baz");
    50     test(
"http://server/foo/bar/123", 
"https://other/url");
    51     test(
"http://server/foo/bar?param=value/with/slashes", 
"/baz");
    52     test(
"http://server/foo/bar?param&otherparam", 
"?someparam");
    53     test(
"http://server/foo/bar", 
"//other/url");
 
static void test(const char *base, const char *rel)
printf("static const uint8_t my_array[100] = {\n")