static void test_discard_whitespace(void) {
        const char *string = "a \t\nb";
        const char *whitespace;
        size_t n_whitespace;

        whitespace = string;
        n_whitespace = strlen(whitespace);
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == strlen(whitespace));
        c_assert(whitespace == string);

        whitespace = string + 1;
        n_whitespace = strlen(whitespace);
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == 1);
        c_assert(whitespace == string + strlen(string) - 1);

        whitespace = string + 1;
        n_whitespace = strlen(whitespace) - 1;
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == 0);
        c_assert(whitespace == string + strlen(string) - 1);
}
static void test_discard_whitespace(void) {
        const char *string = "a \t\nb";
        const char *whitespace;
        size_t n_whitespace;

        whitespace = string;
        n_whitespace = strlen(whitespace);
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == strlen(whitespace));
        c_assert(whitespace == string);

        whitespace = string + 1;
        n_whitespace = strlen(whitespace);
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == 1);
        c_assert(whitespace == string + strlen(string) - 1);

        whitespace = string + 1;
        n_whitespace = strlen(whitespace) - 1;
        c_shquote_discard_whitespace(&whitespace, &n_whitespace);
        c_assert(n_whitespace == 0);
        c_assert(whitespace == string + strlen(string) - 1);
}