mirror of
https://github.com/postgres/postgres.git
synced 2025-11-11 00:05:02 -05:00
As a stopgap to get the Windows buildfarm members running again, hot-wire
the check on diff's exit status to check for literally 0 or 1. Someone should look into why WIFEXITED/WEXITSTATUS don't work for this, but I've spent more than enough time on it already.
This commit is contained in:
parent
679de5e573
commit
11f6d2fcba
@ -11,7 +11,7 @@
|
|||||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2006, 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.9 2006/07/20 03:30:58 tgl Exp $
|
* $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.10 2006/07/20 16:25:30 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -699,7 +699,7 @@ psql_start_test(const char *testname)
|
|||||||
outputdir, testname);
|
outputdir, testname);
|
||||||
|
|
||||||
snprintf(psql_cmd, sizeof(psql_cmd),
|
snprintf(psql_cmd, sizeof(psql_cmd),
|
||||||
SYSTEMQUOTE "\"%s/psql\" -X -a -q -d \"%s\" <\"%s\" >\"%s\" 2>&1" SYSTEMQUOTE,
|
SYSTEMQUOTE "\"%s/psql\" -X -a -q -d \"%s\" < \"%s\" > \"%s\" 2>&1" SYSTEMQUOTE,
|
||||||
bindir, dbname, infile, outfile);
|
bindir, dbname, infile, outfile);
|
||||||
|
|
||||||
pid = spawn_process(psql_cmd);
|
pid = spawn_process(psql_cmd);
|
||||||
@ -795,6 +795,32 @@ make_directory(const char *dir)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Run a "diff" command and check that it didn't crash
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
run_diff(const char *cmd)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
r = system(cmd);
|
||||||
|
/*
|
||||||
|
* XXX FIXME: it appears that include/port/win32.h's definitions of
|
||||||
|
* WIFEXITED and related macros may be wrong. They certainly don't
|
||||||
|
* work for inspecting the results of system(). For the moment,
|
||||||
|
* hard-wire the check on Windows.
|
||||||
|
*/
|
||||||
|
#ifndef WIN32
|
||||||
|
if (!WIFEXITED(r) || WEXITSTATUS(r) > 1)
|
||||||
|
#else
|
||||||
|
if (r != 0 && r != 1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
fprintf(stderr, _("diff command failed with status %d: %s\n"), r, cmd);
|
||||||
|
exit_nicely(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check the actual result file for the given test against expected results
|
* Check the actual result file for the given test against expected results
|
||||||
*
|
*
|
||||||
@ -815,7 +841,6 @@ results_differ(const char *testname)
|
|||||||
int best_line_count;
|
int best_line_count;
|
||||||
int i;
|
int i;
|
||||||
int l;
|
int l;
|
||||||
int r;
|
|
||||||
|
|
||||||
/* Check in resultmap if we should be looking at a different file */
|
/* Check in resultmap if we should be looking at a different file */
|
||||||
expectname = testname;
|
expectname = testname;
|
||||||
@ -842,14 +867,9 @@ results_differ(const char *testname)
|
|||||||
|
|
||||||
/* OK, run the diff */
|
/* OK, run the diff */
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
SYSTEMQUOTE "diff %s \"%s\" \"%s\" >\"%s\"" SYSTEMQUOTE,
|
SYSTEMQUOTE "diff %s \"%s\" \"%s\" > \"%s\"" SYSTEMQUOTE,
|
||||||
basic_diff_opts, expectfile, resultsfile, diff);
|
basic_diff_opts, expectfile, resultsfile, diff);
|
||||||
r = system(cmd);
|
run_diff(cmd);
|
||||||
if (!WIFEXITED(r) || WEXITSTATUS(r) > 1)
|
|
||||||
{
|
|
||||||
fprintf(stderr, _("diff command failed with status %d: %s\n"), r, cmd);
|
|
||||||
exit_nicely(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Is the diff file empty? */
|
/* Is the diff file empty? */
|
||||||
if (file_size(diff) == 0)
|
if (file_size(diff) == 0)
|
||||||
@ -871,15 +891,9 @@ results_differ(const char *testname)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
SYSTEMQUOTE "diff %s \"%s\" \"%s\" >\"%s\"" SYSTEMQUOTE,
|
SYSTEMQUOTE "diff %s \"%s\" \"%s\" > \"%s\"" SYSTEMQUOTE,
|
||||||
basic_diff_opts, expectfile, resultsfile, diff);
|
basic_diff_opts, expectfile, resultsfile, diff);
|
||||||
r = system(cmd);
|
run_diff(cmd);
|
||||||
if (!WIFEXITED(r) || WEXITSTATUS(r) > 1)
|
|
||||||
{
|
|
||||||
fprintf(stderr, _("diff command failed with status %d: %s\n"),
|
|
||||||
r, cmd);
|
|
||||||
exit_nicely(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_size(diff) == 0)
|
if (file_size(diff) == 0)
|
||||||
{
|
{
|
||||||
@ -902,14 +916,9 @@ results_differ(const char *testname)
|
|||||||
* we append to the diffs summary file.
|
* we append to the diffs summary file.
|
||||||
*/
|
*/
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
SYSTEMQUOTE "diff %s \"%s\" \"%s\" >>\"%s\"" SYSTEMQUOTE,
|
SYSTEMQUOTE "diff %s \"%s\" \"%s\" >> \"%s\"" SYSTEMQUOTE,
|
||||||
pretty_diff_opts, best_expect_file, resultsfile, difffilename);
|
pretty_diff_opts, best_expect_file, resultsfile, difffilename);
|
||||||
r = system(cmd);
|
run_diff(cmd);
|
||||||
if (!WIFEXITED(r) || WEXITSTATUS(r) > 1)
|
|
||||||
{
|
|
||||||
fprintf(stderr, _("diff command failed with status %d: %s\n"), r, cmd);
|
|
||||||
exit_nicely(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* And append a separator */
|
/* And append a separator */
|
||||||
difffile = fopen(difffilename, "a");
|
difffile = fopen(difffilename, "a");
|
||||||
@ -1435,7 +1444,7 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
/* "make install" */
|
/* "make install" */
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
SYSTEMQUOTE "\"%s\" -C \"%s\" DESTDIR=\"%s/install\" install with_perl=no with_python=no >\"%s/log/install.log\" 2>&1" SYSTEMQUOTE,
|
SYSTEMQUOTE "\"%s\" -C \"%s\" DESTDIR=\"%s/install\" install with_perl=no with_python=no > \"%s/log/install.log\" 2>&1" SYSTEMQUOTE,
|
||||||
makeprog, top_builddir, temp_install, outputdir);
|
makeprog, top_builddir, temp_install, outputdir);
|
||||||
if (system(buf))
|
if (system(buf))
|
||||||
{
|
{
|
||||||
@ -1446,10 +1455,10 @@ main(int argc, char *argv[])
|
|||||||
/* initdb */
|
/* initdb */
|
||||||
header(_("initializing database system"));
|
header(_("initializing database system"));
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
SYSTEMQUOTE "\"%s/initdb\" -D \"%s/data\" -L \"%s\" --noclean %s %s >\"%s/log/initdb.log\" 2>&1" SYSTEMQUOTE,
|
SYSTEMQUOTE "\"%s/initdb\" -D \"%s/data\" -L \"%s\" --noclean%s%s > \"%s/log/initdb.log\" 2>&1" SYSTEMQUOTE,
|
||||||
bindir, temp_install, datadir,
|
bindir, temp_install, datadir,
|
||||||
debug ? "--debug" : "",
|
debug ? " --debug" : "",
|
||||||
nolocale ? "--no-locale" : "",
|
nolocale ? " --no-locale" : "",
|
||||||
outputdir);
|
outputdir);
|
||||||
if (system(buf))
|
if (system(buf))
|
||||||
{
|
{
|
||||||
@ -1462,9 +1471,9 @@ main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
header(_("starting postmaster"));
|
header(_("starting postmaster"));
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
SYSTEMQUOTE "\"%s/postmaster\" -D \"%s/data\" -F %s -c \"listen_addresses=%s\" >\"%s/log/postmaster.log\" 2>&1" SYSTEMQUOTE,
|
SYSTEMQUOTE "\"%s/postmaster\" -D \"%s/data\" -F%s -c \"listen_addresses=%s\" > \"%s/log/postmaster.log\" 2>&1" SYSTEMQUOTE,
|
||||||
bindir, temp_install,
|
bindir, temp_install,
|
||||||
debug ? "-d 5" : "",
|
debug ? " -d 5" : "",
|
||||||
hostname ? hostname : "",
|
hostname ? hostname : "",
|
||||||
outputdir);
|
outputdir);
|
||||||
postmaster_pid = spawn_process(buf);
|
postmaster_pid = spawn_process(buf);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user