Index: ossp-pkg/var/var_test.c RCS File: /v/ossp/cvs/ossp-pkg/var/var_test.c,v rcsdiff -q -kk '-r1.15' '-r1.16' -u '/v/ossp/cvs/ossp-pkg/var/var_test.c,v' 2>/dev/null --- 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