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 <jackie.huang@windriver.com>
---
 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

