0002-Don-t-clobber-test-exit-code-at-cleanup.patch
text/x-patch
Filename: 0002-Don-t-clobber-test-exit-code-at-cleanup.patch
Type: text/x-patch
Part: 1
Message:
LDAP & Kerberos test woes
Patch
Format: format-patch
Series: patch 0002
Subject: Don't clobber test exit code at cleanup
| File | + | − |
|---|---|---|
| src/test/kerberos/t/001_auth.pl | 5 | 0 |
| src/test/ldap/LdapServer.pm | 5 | 0 |
From d73e4144d23bad6228d33d1da211a1283f12e080 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Sun, 7 Apr 2024 13:17:18 +0300
Subject: [PATCH 2/2] Don't clobber test exit code at cleanup
If the test script die()d before running the first test, the whole test
was interpreted as SKIPped rather than failed. The PostgreSQL::Cluster
module got this right.
---
src/test/kerberos/t/001_auth.pl | 5 +++++
src/test/ldap/LdapServer.pm | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl
index e51e87d0a2..ec311bfed8 100644
--- a/src/test/kerberos/t/001_auth.pl
+++ b/src/test/kerberos/t/001_auth.pl
@@ -203,7 +203,12 @@ system_or_bail $krb5kdc, '-P', $kdc_pidfile;
END
{
+ # take care not to change the script's exit value
+ my $exit_code = $?;
+
kill 'INT', `cat $kdc_pidfile` if defined($kdc_pidfile) && -f $kdc_pidfile;
+
+ $? = $exit_code;
}
note "setting up PostgreSQL instance";
diff --git a/src/test/ldap/LdapServer.pm b/src/test/ldap/LdapServer.pm
index 91cd9e3762..3866a56e0a 100644
--- a/src/test/ldap/LdapServer.pm
+++ b/src/test/ldap/LdapServer.pm
@@ -145,6 +145,9 @@ INIT
END
{
+ # take care not to change the script's exit value
+ my $exit_code = $?;
+
foreach my $server (@servers)
{
next unless -f $server->{pidfile};
@@ -152,6 +155,8 @@ END
chomp $pid;
kill 'INT', $pid;
}
+
+ $? = $exit_code;
}
=pod
--
2.39.2