git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8d5f3c8)
have pg_regress fall back on testing with the canonical results file if an
Tue, 1 Aug 2006 14:56:29 +0000 (14:56 +0000)
Tue, 1 Aug 2006 14:56:29 +0000 (14:56 +0000)
alternative test is specified but none succeeds.


diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index fb8c7d8dee33b82702ab1f609a9996e8f9238130..335e4d7de610650bd3cd7b6db9c44b4a3dcb85b1 100644 (file)
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.17 2006年07月30日 01:45:21 momjian Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.18 2006年08月01日 14:56:29 adunstan Exp $
*
*-------------------------------------------------------------------------
*/
@@ -913,6 +913,36 @@ results_differ(const char *testname)
}
}
+ /*
+ * fall back on the canonical results file if we haven't tried it yet
+ * and haven't found a complete match yet.
+ */
+
+ if (strcmp(expectname, testname) != 0)
+ {
+ snprintf(expectfile, sizeof(expectfile), "%s/expected/%s.out",
+ inputdir, testname, i);
+
+ snprintf(cmd, sizeof(cmd),
+ SYSTEMQUOTE "diff %s \"%s\" \"%s\" > \"%s\"" SYSTEMQUOTE,
+ basic_diff_opts, expectfile, resultsfile, diff);
+
+ if (run_diff(cmd, diff) == 0)
+ {
+ /* No diff = no changes = good */
+ unlink(diff);
+ return false;
+ }
+
+ l = file_line_count(diff);
+ if (l < best_line_count)
+ {
+ /* This diff was a better match than the last one */
+ best_line_count = l;
+ strcpy(best_expect_file, expectfile);
+ }
+ }
+
/*
* Use the best comparison file to generate the "pretty" diff, which
* we append to the diffs summary file.
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /