Fix pg_regress to check the directory it is actually reading files from,

not the image that (theoretically) should exist in the current directory.

Jørgen Austvik
This commit is contained in:
Tom Lane 2007-11-27 19:13:30 +00:00
parent 3f89964234
commit 42fd80de53
1 changed files with 19 additions and 13 deletions

View File

@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.38 2007/11/15 21:14:46 momjian Exp $ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.39 2007/11/27 19:13:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -399,6 +399,8 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
char abs_builddir[MAXPGPATH]; char abs_builddir[MAXPGPATH];
char testtablespace[MAXPGPATH]; char testtablespace[MAXPGPATH];
char indir[MAXPGPATH]; char indir[MAXPGPATH];
struct stat st;
int ret;
char **name; char **name;
char **names; char **names;
int count = 0; int count = 0;
@ -419,11 +421,23 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
* current directory. * current directory.
*/ */
if (srcdir) if (srcdir)
strcpy(abs_srcdir, srcdir); strlcpy(abs_srcdir, srcdir, MAXPGPATH);
else else
strcpy(abs_srcdir, abs_builddir); strlcpy(abs_srcdir, abs_builddir, MAXPGPATH);
snprintf(indir, MAXPGPATH, "%s/%s", abs_srcdir, source); snprintf(indir, MAXPGPATH, "%s/%s", abs_srcdir, source);
/* Check that indir actually exists and is a directory */
ret = stat(indir, &st);
if (ret != 0 || !S_ISDIR(st.st_mode))
{
/*
* No warning, to avoid noise in tests that do not have
* these directories; for example, ecpg, contrib and src/pl.
*/
return;
}
names = pgfnames(indir); names = pgfnames(indir);
if (!names) if (!names)
/* Error logged in pgfnames */ /* Error logged in pgfnames */
@ -512,16 +526,8 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
static void static void
convert_sourcefiles(void) convert_sourcefiles(void)
{ {
struct stat st; convert_sourcefiles_in("input", "sql", "sql");
int ret; convert_sourcefiles_in("output", "expected", "out");
ret = stat("input", &st);
if (ret == 0 && S_ISDIR(st.st_mode))
convert_sourcefiles_in("input", "sql", "sql");
ret = stat("output", &st);
if (ret == 0 && S_ISDIR(st.st_mode))
convert_sourcefiles_in("output", "expected", "out");
} }
/* /*