--- var_test.c 2001/12/03 10:51:27 1.15
+++ var_test.c 2001/12/04 13:35:58 1.16
@@ -16,7 +16,7 @@
const struct variable* vars = context;
size_t i;
- if (index != 0)
+ if (0 && index != 0)
return VAR_ERR_ARRAY_LOOKUPS_ARE_UNSUPPORTED;
for (i = 0; vars[i].name; ++i) {
@@ -48,57 +48,61 @@
};
const struct test_case tests[] = {
- {"$HOME", "/home/regression-tests"},
- {"${FOO}", "os"},
- {"${BAR}", "type"},
- {"${${FOO:u}${BAR:u}:l:u}", "REGRESSION-OS"},
- {"${UNDEFINED}", "${UNDEFINED}"},
- {"${OSTYPE:#}", "13"},
- {"${EMPTY:-test${FOO}test}", "testostest"},
- {"${EMPTY:-test${FOO:u}test}", "testOStest"},
- {"${TERM:-test${FOO}test}", "regression-term"},
- {"${EMPTY:+FOO}", ""},
- {"${HOME:+test${FOO}test}", "testostest"},
- {"${HOME:+${OS${BAR:u}}}", "regression-os"},
- {"${HOME:+OS${UNDEFINED:u}}", "OS${UNDEFINED:u}"},
- {"${UNDEFINED:+OS${BAR:u}}", "${UNDEFINED:+OS${BAR:u}}"},
- {"${HOME:*heinz}", ""},
- {"${EMPTY:*claus}", "claus"},
- {"${TERM}", "regression-term"},
- {"${HOME:s/reg/bla/}", "/home/blaression-tests"},
- {"${HOME:s/e/bla/}", "/hombla/regression-tests"},
- {"${HOME:s/e/bla/g}", "/hombla/rblagrblassion-tblasts"},
- {"${HOME:s/\\//_/g}", "_home_regression-tests"},
- {"${HOME:s/[eso]/_/g}", "/h_m_/r_gr___i_n-t__t_"},
- {"${HOME:s/[esO]/_/g}", "/hom_/r_gr___ion-t__t_"},
- {"${HOME:s/[esO]/_/gi}", "/h_m_/r_gr___i_n-t__t_"},
- {"${OSTYPE:s/^[re]/_/g}", "_egression-os"},
- {"${EMPTY:s/^[re]/_/g}", ""},
- {"${HOME:s/.*/heinz/}", "heinz"},
- {"${HOME:s/e/bla/t}", "/hombla/regression-tests"},
- {"${HOME:s/E/bla/t}", "/home/regression-tests"},
- {"${HOME:s/E/bla/ti}", "/hombla/regression-tests"},
- {"${HOME:s/E/bla/tig}", "/hombla/rblagrblassion-tblasts"},
- {"${HOME:o1-5}", "home/"},
- {"${HOME:o1,5}", "home/"},
- {"${HOME:o5,}", "/regression-tests"},
- {"${HOME:o5-}", "/regression-tests"},
- {"${HOME:o7,13}", "egressi"},
- {"${HOME:y/a-z/A-YZ/}", "/HOME/REGRESSION-TESTS"},
- {"${HOME:y/e-g/a-c/}", "/homa/racrassion-tasts"},
- {"${FOO:p/15/../l}", "os............."},
- {"${FOO:p/15/12345/l}", "os1234512345123"},
- {"${FOO:p/15/../r}", ".............os"},
- {"${FOO:p/15/12345/r}", "1234512345123os"},
- {"${FOO:p/15/../c}", "......os......."},
- {"${FOO:p/15/12345/c}", "123451os1234512"},
- {"${FOO:s/os/\\x{4F}\\123/g}", "OS"},
- {"${FOO:s/os/\\1\\x4F\\123/t}", "\\1OS"},
- {"${HOME:s/g(res)s/x\\1x/g}", "/home/rexresxion-tests"},
- {"${HOME:s/(s+)/_\\1_/g}", "/home/regre_ss_ion-te_s_t_s_"},
- {"${HOME:s/\\x65/\\x45/g}", "/homE/rEgrEssion-tEsts"},
- {"${HOME:s/(s*)/x\\1X/g}", "xXxXxXxXxXxXxXxXxXxXxXxssXxXxXxXxXxXxXxsXxXxsX"},
- {"${HOME:s/./\\\\/g}", "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}
+ { "$HOME", "/home/regression-tests" },
+ { "${FOO}", "os" },
+ { "${BAR}", "type" },
+ { "${${FOO:u}${BAR:u}:l:u}", "REGRESSION-OS" },
+ { "${UNDEFINED}", "${UNDEFINED}" },
+ { "${OSTYPE:#}", "13" },
+ { "${EMPTY:-test${FOO}test}", "testostest" },
+ { "${EMPTY:-test${FOO:u}test}", "testOStest" },
+ { "${TERM:-test${FOO}test}", "regression-term" },
+ { "${EMPTY:+FOO}", "" },
+ { "${HOME:+test${FOO}test}", "testostest" },
+ { "${HOME:+${OS${BAR:u}}}", "regression-os" },
+ { "${HOME:+OS${UNDEFINED:u}}", "OS${UNDEFINED:u}" },
+ { "${UNDEFINED:+OS${BAR:u}}", "${UNDEFINED:+OS${BAR:u}}" },
+ { "${HOME:*heinz}", "" },
+ { "${EMPTY:*claus}", "claus" },
+ { "${TERM}", "regression-term" },
+ { "${HOME:s/reg/bla/}", "/home/blaression-tests" },
+ { "${HOME:s/e/bla/}", "/hombla/regression-tests" },
+ { "${HOME:s/e/bla/g}", "/hombla/rblagrblassion-tblasts" },
+ { "${HOME:s/\\//_/g}", "_home_regression-tests" },
+ { "${HOME:s/[eso]/_/g}", "/h_m_/r_gr___i_n-t__t_" },
+ { "${HOME:s/[esO]/_/g}", "/hom_/r_gr___ion-t__t_" },
+ { "${HOME:s/[esO]/_/gi}", "/h_m_/r_gr___i_n-t__t_" },
+ { "${OSTYPE:s/^[re]/_/g}", "_egression-os" },
+ { "${EMPTY:s/^[re]/_/g}", "" },
+ { "${HOME:s/.*/heinz/}", "heinz" },
+ { "${HOME:s/e/bla/t}", "/hombla/regression-tests" },
+ { "${HOME:s/E/bla/t}", "/home/regression-tests" },
+ { "${HOME:s/E/bla/ti}", "/hombla/regression-tests" },
+ { "${HOME:s/E/bla/tig}", "/hombla/rblagrblassion-tblasts" },
+ { "${HOME:o1-5}", "home/" },
+ { "${HOME:o1,5}", "home/" },
+ { "${HOME:o5,}", "/regression-tests" },
+ { "${HOME:o5-}", "/regression-tests" },
+ { "${HOME:o7,13}", "egressi" },
+ { "${HOME:y/a-z/A-YZ/}", "/HOME/REGRESSION-TESTS" },
+ { "${HOME:y/e-g/a-c/}", "/homa/racrassion-tasts" },
+ { "${FOO:p/15/../l}", "os............." },
+ { "${FOO:p/15/12345/l}", "os1234512345123" },
+ { "${FOO:p/15/../r}", ".............os" },
+ { "${FOO:p/15/12345/r}", "1234512345123os" },
+ { "${FOO:p/15/../c}", "......os......." },
+ { "${FOO:p/15/12345/c}", "123451os1234512" },
+ { "${FOO:s/os/\\x{4F}\\123/g}", "OS" },
+ { "${FOO:s/os/\\1\\x4F\\123/t}", "\\1OS" },
+ { "${HOME:s/g(res)s/x\\1x/g}", "/home/rexresxion-tests" },
+ { "${HOME:s/(s+)/_\\1_/g}", "/home/regre_ss_ion-te_s_t_s_" },
+ { "${HOME:s/\\x65/\\x45/g}", "/homE/rEgrEssion-tEsts" },
+ { "${HOME:s/(s*)/x\\1X/g}", "xXxXxXxXxXxXxXxXxXxXxXxssXxXxXxXxXxXxXxsXxXxsX" },
+ { "${HOME:s/./\\\\/g}", "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" },
+ { "${ARRAY[5+4*2-1]}", "${ARRAY[5+4*2-1]}", },
+ { "${ARRAY[5+(3+4)*2]}", "${ARRAY[5+(3+4)*2]}" },
+ { "${ARRAY[(5+(3+4)*2)]}", "${ARRAY[(5+(3+4)*2)]}" },
+ { "${ARRAY[+4--3]}", "${ARRAY[+4--3]}" }
};
char *tmp;
size_t tmp_len;
@@ -113,8 +117,8 @@
#endif
rc = var_unescape(tests[i].input, strlen(tests[i].input), buffer, 0);
if (rc != VAR_OK) {
- printf ("Test case #%d: First var_unescape() \
- failed with return code %d.\n", i, rc);
+ printf ("Test case #%d: First var_unescape() failed with return code %d ('%s').\n",
+ i, rc, var_strerror(rc));
return 1;
}
#ifdef DEBUG
@@ -123,8 +127,8 @@
rc = var_expand(buffer, strlen(buffer), &tmp, &tmp_len,
&var_lookup, (void *)vars, NULL, 0);
if (rc != VAR_OK) {
- printf ("Test case #%d: var_expand() \
- failed with return code %d.\n", i, rc);
+ printf ("Test case #%d: var_expand() failed with return code %d ('%s').\n",
+ i, rc, var_strerror(rc));
return 1;
}
#ifdef DEBUG
|