postgres.git / summary / log / commit / refs

commit    338ff75fc46c29936d70972ed25573f7bbc15b83
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Tue Jan 20 04:44:33 2015 +0000

    In pg_regress, remove the temporary installation upon successful exit.
    
    This results in a very substantial reduction in disk space usage during
    "make check-world", since that sequence involves creation of numerous
    temporary installations.  It should also help a bit in the buildfarm, even
    though the buildfarm script doesn't create as many temp installations,
    because the current script misses deleting some of them; and anyway it
    seems better to do this once in one place rather than expecting that
    script to get it right every time.
    
    In 9.4 and HEAD, also undo the unwise choice in commit b1aebbb6a86e96d7
    to report strerror(errno) after a rmtree() failure.  rmtree has already
    reported that, possibly for multiple failures with distinct errnos; and
    what's more, by the time it returns there is no good reason to assume
    that errno still reflects the last reportable error.  So reporting errno
    here is at best redundant and at worst badly misleading.
    
    Back-patch to all supported branches, so that future revisions of the
    buildfarm script can rely on this behavior.


src/test/regress/pg_regress.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 92c5ff6530c..4d102dd78e3 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -2624,6 +2624,19 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc stop_postmaster(); } + /* + * If there were no errors, remove the temp installation immediately to + * conserve disk space. (If there were errors, we leave the installation + * in place for possible manual investigation.) + */ + if (temp_install && fail_count == 0 && fail_ignore_count == 0) + { + header(_("removing temporary installation")); + if (!rmtree(temp_install, true)) + fprintf(stderr, _("\n%s: could not remove temp installation \"%s\"\n"), + progname, temp_install); + } + fclose(logfile); /* [parent: a1a8d0249a6c]