pg_regress: paths in largeobject test

Started by Jorgen Austvik - Sun Norwayover 18 years ago6 messagespatches
Jump to latest
#1Jorgen Austvik - Sun Norway
Jorgen.Austvik@Sun.COM

Hi,

the largeobject test does this:

137 SELECT lo_export(loid, '@abs_builddir@/results/lotest.txt') <snip>
138
139 \lo_import 'results/lotest.txt'
140
141 \set newloid :LASTOID
142
143 -- just make sure \lo_export does not barf
144 \lo_export :newloid 'results/lotest2.txt'

I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.

The attached patch has been tested with "make check" and by running
pg_regress outside the PostgreSQL source tree, both on Solaris 11, x86.

-J
--

J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group

Attachments:

pg_regress_largeobject_path.patchtext/x-patch; name=pg_regress_largeobject_path.patchDownload+12-12
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jorgen Austvik - Sun Norway (#1)
Re: pg_regress: paths in largeobject test

Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:

I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.

I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.

regards, tom lane

#3Jorgen Austvik - Sun Norway
Jorgen.Austvik@Sun.COM
In reply to: Tom Lane (#2)
Re: pg_regress: paths in largeobject test

Tom Lane wrote:

Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:

I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.

I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.

He, he.

Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect
of the lo_import operating relative to the client, while lo_export
operates relative to the server. If you remove @abs_builddir@ on the
first one, you might e.g. get problems like this:

SELECT lo_export(loid, 'results/lotest.txt') FROM lotest_stash_values;
ERROR: could not create server file "results/lotest.txt": No such
file or directory

-J
--

J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group

#4Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Jorgen Austvik - Sun Norway (#3)
Re: pg_regress: paths in largeobject test

Jorgen Austvik - Sun Norway wrote:

Tom Lane wrote:

Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:

I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.

I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.

He, he.

Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect of
the lo_import operating relative to the client, while lo_export operates
relative to the server.

I submit that the test is OK as it currently is. The lo_export() call
is expanded by the server, which can be running anywhere -- hence the
need to use an absolute path.

Then we have \lo_import and \lo_export calls which are relative to the
client. The client is already running in the regress builddir, so using
relative paths works fine.

If I try to run the client from another directory, it fails completely.
Exactly what is the problem you are trying to fix?

$ cd ..
$ pwd
/pgsql/build/00head/src/test
$ regress/pg_regress largeobject
(using postmaster on Unix socket, port 55432)
============== dropping database "regression" ==============
DROP DATABASE
============== creating database "regression" ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries ==============
test largeobject ... /bin/sh: cannot open ./sql/largeobject.sql: No such file
diff: ./expected/largeobject.out: No such file or directory
diff: ./results/largeobject.out: No such file or directory
diff command failed with status 512: diff -w "./expected/largeobject.out" "./results/largeobject.out" > "./results/largeobject.out.diff"

--
Alvaro Herrera http://www.advogato.org/person/alvherre
"The Postgresql hackers have what I call a "NASA space shot" mentality.
Quite refreshing in a world of "weekend drag racer" developers."
(Scott Marlowe)

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#4)
Re: pg_regress: paths in largeobject test

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

Jorgen Austvik - Sun Norway wrote:

Tom Lane wrote:

I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.

Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect of
the lo_import operating relative to the client, while lo_export operates
relative to the server.

I submit that the test is OK as it currently is.

Yeah, I hadn't thought about the different-paths aspect at the time of
making the above comment; but given that, it is correct as-is.

regards, tom lane

#6Jorgen Austvik - Sun Norway
Jorgen.Austvik@Sun.COM
In reply to: Tom Lane (#5)
Re: pg_regress: paths in largeobject test

Tom Lane wrote:

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

I submit that the test is OK as it currently is.

Yeah, I hadn't thought about the different-paths aspect at the time of
making the above comment; but given that, it is correct as-is.

OK, I still think it is easier to debug with the paths there explicitly,
and I think the test will run just as well with them as without them,
but it is no biggie.

-J
--

J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group