Expect more from test_psl.txt
There were some tests included in test_psl.txt that we were not covering because they didn't match our expectations. Cover all the tests in test_psl that we know about, and count unknown lines as failed tests.
This commit is contained in:
parent
ac8ba5a828
commit
c1b52ee2d8
|
@ -66,7 +66,7 @@ static void test(const psl_ctx_t *psl, const char *domain, const char *expected_
|
||||||
} else {
|
} else {
|
||||||
failed++;
|
failed++;
|
||||||
printf("psl_registrable_domain(%s)=%s (expected %s)\n",
|
printf("psl_registrable_domain(%s)=%s (expected %s)\n",
|
||||||
domain, result ? result : "NULL", expected_result ? expected_result : "NULL");
|
domain ? domain : "NULL", result ? result : "NULL", expected_result ? expected_result : "NULL");
|
||||||
}
|
}
|
||||||
|
|
||||||
free(lower);
|
free(lower);
|
||||||
|
@ -76,7 +76,8 @@ static void test_psl(void)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
const psl_ctx_t *psl;
|
const psl_ctx_t *psl;
|
||||||
char buf[256], domain[128], expected_regdom[128];
|
char buf[256], domain[128], expected_regdom[128], semicolon[2];
|
||||||
|
int er_is_null, d_is_null;
|
||||||
|
|
||||||
psl = psl_builtin();
|
psl = psl_builtin();
|
||||||
|
|
||||||
|
@ -110,15 +111,26 @@ static void test_psl(void)
|
||||||
|
|
||||||
if ((fp = fopen(PSL_TESTFILE, "r"))) {
|
if ((fp = fopen(PSL_TESTFILE, "r"))) {
|
||||||
while ((fgets(buf, sizeof(buf), fp))) {
|
while ((fgets(buf, sizeof(buf), fp))) {
|
||||||
if (sscanf(buf, " checkPublicSuffix('%127[^']' , '%127[^']", domain, expected_regdom) != 2) {
|
if (buf[0] == 0 || buf[0] == '\n' || (buf[0] == '/' && buf[1] == '/'))
|
||||||
if (sscanf(buf, " checkPublicSuffix('%127[^']' , %127[nul]", domain, expected_regdom) != 2)
|
continue; /* ignore comments and blank lines */
|
||||||
|
er_is_null = 0;
|
||||||
|
d_is_null = 0;
|
||||||
|
if (sscanf(buf, " checkPublicSuffix ( '%127[^']' , '%127[^']' ) %1[;]", domain, expected_regdom, semicolon) != 3) {
|
||||||
|
if (sscanf(buf, " checkPublicSuffix ( '%127[^']' , null ) %1[;]", domain, semicolon) == 2) {
|
||||||
|
er_is_null = 1;
|
||||||
|
} else if (sscanf(buf, " checkPublicSuffix ( null , '%127[^']' ) %1[;]", expected_regdom, semicolon) == 2) {
|
||||||
|
d_is_null = 1;
|
||||||
|
} else if (sscanf(buf, " checkPublicSuffix ( null , null ) %1[;]", semicolon) == 1) {
|
||||||
|
d_is_null = 1;
|
||||||
|
er_is_null = 1;
|
||||||
|
} else {
|
||||||
|
failed++;
|
||||||
|
printf("unknown line from '" PSL_TESTFILE "': %s", buf);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(expected_regdom, "null"))
|
test(psl, d_is_null ? NULL : domain, er_is_null ? NULL : expected_regdom);
|
||||||
test(psl, domain, NULL);
|
|
||||||
else
|
|
||||||
test(psl, domain, expected_regdom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
Loading…
Reference in New Issue