From 87e4f24d82939ef532b68f37fc66e6a48cff2cd9 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Wed, 8 Mar 2023 18:31:55 +0100 Subject: [PATCH] 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 --- src/test/modules/libpq_pipeline/README | 3 +++ .../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 32ad5e91bd..7278c761e5 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 e69066ee9b..fbac405d0d 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"); } } -- 2.39.5