Subject: [PATCH] psqlodbc: fixes for ptest support * Fix the LIBODBC since we don't use ODBC_CONFIG. * Fix the path for driver. * Add the default info of postgresql server. * Fix the output format for ptest. * Fix the results and exe dir. Upstream-Status: Inappropriate [OE ptest specific] Signed-off-by: Jackie Huang --- test/Makefile.in | 2 +- test/odbcini-gen.sh | 8 ++++---- test/runsuite.c | 26 +++++++++++++------------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test/Makefile.in b/test/Makefile.in index 8710616..fcb470e 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -18,7 +18,7 @@ CFLAGS = @CFLAGS@ ODBC_CONFIG = @ODBC_CONFIG@ PROVE = @PROVE@ -LIBODBC := $(shell $(ODBC_CONFIG) --libs) +LIBODBC = -lodbc all: $(TESTBINS) runsuite reset-db diff --git a/test/odbcini-gen.sh b/test/odbcini-gen.sh index d2c2c87..6068d9d 100755 --- a/test/odbcini-gen.sh +++ b/test/odbcini-gen.sh @@ -6,7 +6,7 @@ outini=odbc.ini outinstini=odbcinst.ini -drvr=../.libs/psqlodbcw +drvr=@LIBDIR@/psqlodbca driver=${drvr}.so if test ! -e $driver ; then driver=${drvr}.dll @@ -33,10 +33,10 @@ Driver = psqlodbc test driver Trace = No TraceFile = Database = contrib_regression -Servername = -Username = +Servername = localhost +Username = postgres Password = -Port = +Port = 5432 ReadOnly = No RowVersioning = No ShowSystemTables = No diff --git a/test/runsuite.c b/test/runsuite.c index 583cf35..fd2a90e 100644 --- a/test/runsuite.c +++ b/test/runsuite.c @@ -51,7 +51,7 @@ bailout(const char *fmt, ...) /* Given a test program's name, get the test name */ void -parse_argument(const char *in, char *testname, char *binname) +parse_argument(const char *in, char *testname, char *binname, const char *inputdir) { const char *basename; #ifdef WIN32 @@ -65,7 +65,7 @@ parse_argument(const char *in, char *testname, char *binname) if (strchr(in, DIR_SEP) == NULL) { strcpy(testname, in); - sprintf(binname, "exe%c%s-test", DIR_SEP, in); + sprintf(binname, "%s%cexe%c%s-test", inputdir, DIR_SEP, DIR_SEP, in); return; } @@ -127,7 +127,7 @@ int main(int argc, char **argv) failures = 0; for (i = 1, j = 1; i <= numtests; i++, j++) { - parse_argument(argv[j], testname, binname); + parse_argument(argv[j], testname, binname, inputdir); if (runtest(binname, testname, i, inputdir) != 0) failures++; } @@ -157,29 +157,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input #ifndef WIN32 snprintf(cmdline, sizeof(cmdline), "ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini " - "%s > results/%s.out", - binname, testname); + "%s > %s/results/%s.out", + binname, inputdir, testname); #else snprintf(cmdline, sizeof(cmdline), - "%s > results\\%s.out", - binname, testname); + "%s > %s/results\\%s.out", + binname, inputdir, testname); #endif rc = system(cmdline); diff = rundiff(testname, inputdir); if (rc != 0) { - printf("not ok %d - %s test returned %d\n", testno, testname, rc); + printf("FAIL: %d - %s\n\ttest returned %d\n", testno, testname, rc); ret = 1; } else if (diff != 0) { - printf("not ok %d - %s test output differs\n", testno, testname); + printf("FAIL: %d - %s\n\ttest output differs\n", testno, testname); ret = 1; } else { - printf("ok %d - %s\n", testno, testname); + printf("PASS: %d - %s\n", testno, testname); ret = 0; } fflush(stdout); @@ -196,7 +196,7 @@ rundiff(const char *testname, const char *inputdir) char *result; size_t result_len; - snprintf(filename, sizeof(filename), "results/%s.out", testname); + snprintf(filename, sizeof(filename), "%s/results/%s.out", inputdir, testname); result = slurpfile(filename, &result_len); outputno = 0; @@ -244,8 +244,8 @@ rundiff(const char *testname, const char *inputdir) * files and print the smallest diff? */ snprintf(cmdline, sizeof(cmdline), - "diff -c %s/expected/%s.out results/%s.out >> regression.diffs", - inputdir, testname, testname); + "diff -c %s/expected/%s.out %s/results/%s.out >> regression.diffs", + inputdir, testname, inputdir, testname); if (system(cmdline) == -1) printf("# diff failed\n"); -- 2.8.2