Re: ecpg test suite

Lists: pgsql-hackers
From: Michael Meskes <meskes(at)postgresql(dot)org>
To: Rocco Altier <RoccoA(at)Routescape(dot)com>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>, joe(at)mcknight(dot)de
Subject: Re: ecpg test suite
Date: 2006-08-03 13:12:25
Message-ID: 20060803131225.GA29168@1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi,

I just committed some changes by Joachim that should reduce the problems
and the differences by a large margin. Could you please rerun the test
and send us the regression.diff? Thanks a lot in advance.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Meskes <meskes(at)postgresql(dot)org>
Cc: Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>, joe(at)mcknight(dot)de
Subject: Re: ecpg test suite
Date: 2006-08-03 13:47:27
Message-ID: 13353.1154612847@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Michael Meskes <meskes(at)postgresql(dot)org> writes:
> I just committed some changes by Joachim that should reduce the problems
> and the differences by a large margin. Could you please rerun the test
> and send us the regression.diff? Thanks a lot in advance.

While init.pgc no longer fails outright, it still generates a pile of
unsightly compiler warnings, eg on Fedora 5 (gcc 4.1.1)

dyntest.pgc:66: WARNING: nullable is always 1
dyntest2.pgc:72: WARNING: nullable is always 1
init.pgc:8: warning: no previous prototype for 'fa'
init.pgc:15: warning: no previous prototype for 'fb'
init.pgc:22: warning: no previous prototype for 'fc'
init.pgc:28: warning: no previous prototype for 'fd'
init.pgc:34: warning: no previous prototype for 'fe'
init.pgc:40: warning: no previous prototype for 'sqlnotice'
init.pgc: In function 'main':
init.pgc:76: warning: unused variable 'f'
init.pgc:73: warning: unused variable 'iax'
init.pgc:72: warning: unused variable 'iay'
init.pgc:71: warning: unused variable 'h'
init.pgc:70: warning: unused variable 'c'
init.pgc:69: warning: unused variable 'e'
init.pgc:67: warning: unused variable 'j'
init.pgc:66: warning: unused variable 'i'
init.pgc:65: warning: unused variable 'g'
init.pgc:64: warning: unused variable 'd'
init.pgc:63: warning: unused variable 'b2'
init.pgc:62: warning: unused variable 'b'
init.pgc:61: warning: unused variable 'a'
init.pgc:69: warning: 'y' is used uninitialized in this function
test_informix.pgc: In function 'main':
test_informix.pgc:20: warning: implicit declaration of function 'exit'
test_informix.pgc:20: warning: incompatible implicit declaration of built-in function 'exit'

I find this really unacceptable. There is no other part of the Postgres
tree besides ecpg that generates any warnings at all.

As for the actual test, I get:

$ make check
...
if [ all = clean ]; then rm -f results/*.stdout results/*.stderr results/*.c; rm
-rf tmp_check/; rm -f log/*.log; rm -f pg_regress.inc.sh regression.diff; fi
sh ./pg_regress.sh --dbname=regress1 --debug --temp-install --top-builddir=../.
./../.. --temp-port=55444 --listen-on-tcp --multibyte=SQL_ASCII --load-language=
plpgsql
============== creating temporary installation ==============
============== initializing database system ==============
============== starting postmaster ==============
running on port 55444 with pid 10754
============== creating database "regress1" ==============
CREATE DATABASE
============== installing plpgsql ==============
============== creating database "connectdb" ==============
CREATE DATABASE
============== installing plpgsql ==============
============== running regression test queries ==============
/home/tgl/pgsql/src/interfaces/ecpg/test/./tmp_check/install//home/tgl/testversion/bin/createuser -R -S -D -q regressuser1
/home/tgl/pgsql/src/interfaces/ecpg/test/./tmp_check/install//home/tgl/testversion/bin/createuser -R -S -D -q connectuser
testing connect/test1.pgc ... FAILED (log, output, source)
testing connect/test2.pgc ... FAILED (log, output, source)
testing connect/test3.pgc ... FAILED (log, output, source)
testing connect/test4.pgc ... FAILED (log, output, source)
testing compat_informix/test_informix.pgc ... FAILED (log, output, source)
testing compat_informix/test_informix2.pgc ... FAILED (log, output, source)
testing complex/test1.pgc ... FAILED (log, output, source)
testing complex/test2.pgc ... FAILED (log, output, source)
testing complex/test3.pgc ... FAILED (log, output, source)
testing complex/test4.pgc ... FAILED (log, output, source)
testing complex/test5.pgc ... FAILED (log, output, source)
testing errors/init.pgc ... FAILED (log, output, source)
testing pgtypeslib/dt_test.pgc ... FAILED (log, output, source)
testing pgtypeslib/dt_test2.pgc ... FAILED (log, output, source)
testing pgtypeslib/num_test.pgc ... FAILED (log, output, source)
testing sql/code100.pgc ... FAILED (log, output, source)
testing sql/copystdout.pgc ... FAILED (log, output, source)
testing sql/define.pgc ... FAILED (log, output, source)
testing sql/desc.pgc ... FAILED (log, output, source)
testing sql/dynalloc.pgc ... FAILED (log, output, source)
testing sql/dynalloc2.pgc ... FAILED (log, output, source)
testing sql/dyntest.pgc ... FAILED (log, output, source)
testing sql/dyntest2.pgc ... FAILED (log, output, source)
testing sql/func.pgc ... FAILED (log, output, source)
testing sql/indicators.pgc ... FAILED (log, output, source)
testing sql/quote.pgc ... FAILED (log, output, source)
testing sql/show.pgc ... FAILED (log, output, source)
testing thread/thread.pgc ... FAILED (log, output, source)
testing thread/thread_implicit.pgc ... FAILED (log, output, source)
diff: `-3' option is obsolete; omit it
diff: Try `diff --help' for more information.
make[1]: Leaving directory `/home/tgl/pgsql/src/interfaces/ecpg/test'

Regression.diffs is empty, possibly because of the incorrect
diff invocation hinted at by the last message, but looking into
the results directory makes it look like you've not got everything on
the same page about which port number to use:

> [NO_PID]: connect: could not open database connectdb on localhost port 55432 for user connectuser in line 41
> could not connect to server: Connection refused
> Is the server running on host "localhost" and accepting
> TCP/IP connections on port 55432?

That's not the port the temp postmaster is listening on; I suspect
you've got some hard-wired assumption in there that the user hasn't
specified a nonstandard --port option to configure.

I find it disturbing that the regression test script doesn't mention having
shut down the temp postmaster, too.

regards, tom lane


From: Michael Meskes <meskes(at)postgresql(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>, joe(at)mcknight(dot)de
Subject: Re: ecpg test suite
Date: 2006-08-03 14:54:35
Message-ID: 20060803145435.GA2500@1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Aug 03, 2006 at 09:47:27AM -0400, Tom Lane wrote:
> While init.pgc no longer fails outright, it still generates a pile of
> unsightly compiler warnings, eg on Fedora 5 (gcc 4.1.1)
> ...
> I find this really unacceptable. There is no other part of the Postgres
> tree besides ecpg that generates any warnings at all.

Tom, keep in mind that we are working on this. The tests were originally
just some files I used to develop with. We are now making them become
part of the source tree. The warnings should be gone by now, except for
the ECPG warning that is supposed to come out. Maybe we remove that
line.

Joachim didn't want me to commit his SoC stuff before he finishes work,
but I felt this is the better way because we get some testing on other
architectures/OSes so everything should be up and running come release
time.

> diff: `-3' option is obsolete; omit it
> diff: Try `diff --help' for more information.

Strange, works well on my Linux system. However, I tried correcting the
option but I'm unsure if it works for you now since both versions worked
for me.

> Regression.diffs is empty, possibly because of the incorrect
> diff invocation hinted at by the last message, but looking into
> the results directory makes it look like you've not got everything on
> the same page about which port number to use:
>
> > [NO_PID]: connect: could not open database connectdb on localhost port 55432 for user connectuser in line 41
> > could not connect to server: Connection refused
> > Is the server running on host "localhost" and accepting
> > TCP/IP connections on port 55432?
>
> That's not the port the temp postmaster is listening on; I suspect
> you've got some hard-wired assumption in there that the user hasn't
> specified a nonstandard --port option to configure.
>
> I find it disturbing that the regression test script doesn't mention having
> shut down the temp postmaster, too.

No idea. Joachim?

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


From: Joachim Wieland <joe(at)mcknight(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 15:22:41
Message-ID: 20060803152241.GA3683@mcknight.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Aug 03, 2006 at 04:54:35PM +0200, Michael Meskes wrote:
> > diff: `-3' option is obsolete; omit it
> > diff: Try `diff --help' for more information.

> Strange, works well on my Linux system. However, I tried correcting the
> option but I'm unsure if it works for you now since both versions worked
> for me.

This got introduced by Rocco's Makefile patch, it worked for me, so I
thought it's fine. Rocco, your AIX box will work with only diff -c as well,
won't it?

> > > [NO_PID]: connect: could not open database connectdb on localhost port 55432 for user connectuser in line 41
> > > could not connect to server: Connection refused
> > > Is the server running on host "localhost" and accepting
> > > TCP/IP connections on port 55432?

> > That's not the port the temp postmaster is listening on; I suspect
> > you've got some hard-wired assumption in there that the user hasn't
> > specified a nonstandard --port option to configure.

> > I find it disturbing that the regression test script doesn't mention having
> > shut down the temp postmaster, too.

> No idea. Joachim?

Yes, it's hardcoded but in just one file. Only one of the connect-Tests does
tcp/ip connects. This can't be changed by a simple #define nor exec sql
define, so I added a template file and replaced the port number with sed.

Michael, in a few minutes I'll send you a patch that fixes all of Tom's
suggestions (however you might have done parts of it already by yourself,
like the diff options and the warnings...).

Joachim

--
Joachim Wieland joe(at)mcknight(dot)de
GPG key available


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Joachim Wieland <joe(at)mcknight(dot)de>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 15:36:22
Message-ID: 19148.1154619382@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Joachim Wieland <joe(at)mcknight(dot)de> writes:
>>> diff: `-3' option is obsolete; omit it
>>> diff: Try `diff --help' for more information.

> This got introduced by Rocco's Makefile patch, it worked for me, so I
> thought it's fine. Rocco, your AIX box will work with only diff -c as well,
> won't it?

The spelling we've used for many years is
diff -w -C3
Is there a reason to change from that?

> Yes, it's hardcoded but in just one file. Only one of the connect-Tests does
> tcp/ip connects. This can't be changed by a simple #define nor exec sql
> define, so I added a template file and replaced the port number with sed.

At least from my perspective, it would be good if there were a way to
run the regression tests without any use of TCP ports. The problem is
that Red Hat's build system tends to try to build 32-bit and 64-bit
variants of the same architecture concurrently in different chroots
on the same machine. Tests using unix sockets work fine in this
environment, tests using TCP sockets conflict and fail. If there's
no way to run an ecpg test without TCP then I'll never be able to enable
ecpg regression tests in Red Hat RPMs.

regards, tom lane


From: Joachim Wieland <joe(at)mcknight(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 16:36:02
Message-ID: 20060803163602.GA3849@mcknight.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Aug 03, 2006 at 11:36:22AM -0400, Tom Lane wrote:
> The spelling we've used for many years is
> diff -w -C3

I found only -w, but will append -C3 as well.

> Is there a reason to change from that?

No.

> At least from my perspective, it would be good if there were a way to
> run the regression tests without any use of TCP ports.

It's not necessary, ecpglib uses libpq as any other program, however it does
its own parsing of the connect options and there are quite a few different
formats you could use so it would be nice to cover that by a few small
tests.

Do you see a possibility to select what test should be run? Maybe no tcp
connections by default but with an additional make-target "checktcp"?

Joachim

--
Joachim Wieland joe(at)mcknight(dot)de
GPG key available


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Joachim Wieland <joe(at)mcknight(dot)de>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 16:46:56
Message-ID: 20367.1154623616@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Joachim Wieland <joe(at)mcknight(dot)de> writes:
> On Thu, Aug 03, 2006 at 11:36:22AM -0400, Tom Lane wrote:
>> At least from my perspective, it would be good if there were a way to
>> run the regression tests without any use of TCP ports.

> Do you see a possibility to select what test should be run? Maybe no tcp
> connections by default but with an additional make-target "checktcp"?

That would work for me.

Note there are other reasons besides my Red-Hat-specific problem for not
wanting to enable TCP connections during regression tests, for instance
* on some platforms they will fail due to aggressive kernel packet
filtering
* one might not care to expose a postmaster running with auth-method
"trust" to the network, even for just a few seconds.

regards, tom lane


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Joachim Wieland <joe(at)mcknight(dot)de>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 16:48:33
Message-ID: 20399.1154623713@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Joachim Wieland <joe(at)mcknight(dot)de> writes:
> On Thu, Aug 03, 2006 at 11:36:22AM -0400, Tom Lane wrote:
>> The spelling we've used for many years is
>> diff -w -C3

> I found only -w, but will append -C3 as well.

Careful, there are two different usages: we use -C3 to generate the
"pretty" report to regression.diffs, but not in the preliminary testing
step.

regards, tom lane


From: Michael Meskes <meskes(at)postgresql(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Joachim Wieland <joe(at)mcknight(dot)de>, Michael Meskes <meskes(at)postgresql(dot)org>, Rocco Altier <RoccoA(at)Routescape(dot)com>, PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ecpg test suite
Date: 2006-08-03 18:50:40
Message-ID: 20060803185040.GA13124@trantor.fam-meskes.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Aug 03, 2006 at 11:36:22AM -0400, Tom Lane wrote:
> The spelling we've used for many years is
> diff -w -C3
> Is there a reason to change from that?

This was my fault. When I changed the options I mixed upper and
lowercase and used lowercase 'c' instead of uppercase 'C'. That should
be fixed now.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!