postgres.git / summary / log / commit / refs
commit 87e4f24d82939ef532b68f37fc66e6a48cff2cd9
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Wed Mar 08 17:31:55 2023 +0000
First released in: 16.0
001_libpq_pipeline.pl: use Test::Differences if available
When one of these tests fails to match the trace, this better shows what
the problem is.
Discussion: https://postgr.es/m/20220617183150.ilgokxp22mzywnhh@alvherre.pgsql
Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
src/test/modules/libpq_pipeline/README | 3 +++
src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl | 15 ++++++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/test/modules/libpq_pipeline/README b/src/test/modules/libpq_pipeline/README
index 32ad5e91bdd..7278c761e53 100644
--- a/src/test/modules/libpq_pipeline/README
+++ b/src/test/modules/libpq_pipeline/README
@@ -1,4 +1,7 @@
Test programs and libraries for libpq
+
+If you have Test::Differences installed, any differences in the trace files
+are displayed in a format that's easier to read than the standard format.
=====================================
This module was developed to test libpq's "pipeline" mode, but it can
diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
index e69066ee9b7..fbac405d0d1 100644
--- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
+++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
@@ -8,6 +8,19 @@ use PostgreSQL::Test::Cluster;
use PostgreSQL::Test::Utils;
use Test::More;
+# Use Test::Differences if installed, and select unified diff output.
+# No decent way to select a context line count with this;
+# we could use a sub ref to allow that.
+BEGIN
+{
+ #<<< protect next line from pgperltidy
+ if (!eval q{ use Test::Differences; unified_diff(); 1 }) ## no critic (ProhibitStringyEval)
+ #>>>
+ {
+ *eq_or_diff = \&is;
+ }
+}
+
my $node = PostgreSQL::Test::Cluster->new('main');
$node->init;
$node->start;
@@ -55,7 +68,7 @@ for my $testname (@tests)
$result = slurp_file_eval($traceout);
next unless $result ne "";
- is($result, $expected, "$testname trace match");
+ eq_or_diff($result, $expected, "$testname trace match");
}
}
[parent: 30a53b792959]