From 84e60427259bed6357a6d4559eabeaae11e29a9f Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 18 Jul 2006 00:32:42 +0000
Subject: [PATCH] Make pg_regress a tad simpler and more general-purpose by
 removing its code to forcibly drop regressuser[1-4] and regressgroup[1-2]. 
 Instead, let the privileges.sql test do that for itself (this is made easy by
 the recent addition of DROP ROLE IF EXISTS).  Per a recent patch proposed by
 Joachim Wieland --- the rest of his patch is superseded by the rewrite into
 C, but this is a good idea we should adopt.

---
 src/test/regress/expected/privileges.out | 11 +++++++++++
 src/test/regress/pg_regress.sh           | 14 +-------------
 src/test/regress/sql/privileges.sql      | 17 +++++++++++++++++
 3 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index a18116a289c..201e8a11d31 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -1,6 +1,17 @@
 --
 -- Test access privileges
 --
+-- Clean up in case a prior regression run failed
+-- Suppress NOTICE messages when users/groups don't exist
+SET client_min_messages TO 'error';
+DROP ROLE IF EXISTS regressgroup1;
+DROP ROLE IF EXISTS regressgroup2;
+DROP ROLE IF EXISTS regressuser1;
+DROP ROLE IF EXISTS regressuser2;
+DROP ROLE IF EXISTS regressuser3;
+DROP ROLE IF EXISTS regressuser4;
+RESET client_min_messages;
+-- test proper begins here
 CREATE USER regressuser1;
 CREATE USER regressuser2;
 CREATE USER regressuser3;
diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh
index 90dbdfd333d..f56b737d0bc 100644
--- a/src/test/regress/pg_regress.sh
+++ b/src/test/regress/pg_regress.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.64 2006/01/05 03:01:38 momjian Exp $
+# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.65 2006/07/18 00:32:41 tgl Exp $
 
 me=`basename $0`
 : ${TMPDIR=/tmp}
@@ -555,18 +555,6 @@ if [ $? -ne 0 ]; then
 fi
 
 
-# ----------
-# Remove regressuser* and regressgroup* user accounts.
-# ----------
-
-message "dropping regression test user accounts"
-"$bindir/psql" -q -X $psql_options -c 'DROP GROUP regressgroup1; DROP GROUP regressgroup2; DROP USER regressuser1, regressuser2, regressuser3, regressuser4;' $dbname 2>/dev/null
-if [ $? -eq 2 ]; then
-    echo "$me: could not drop user accounts"
-    (exit 2); exit
-fi
-
-
 # ----------
 # Install any requested PL languages
 # ----------
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index ad08b7968e7..3b96abe87ea 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -2,6 +2,23 @@
 -- Test access privileges
 --
 
+-- Clean up in case a prior regression run failed
+
+-- Suppress NOTICE messages when users/groups don't exist
+SET client_min_messages TO 'error';
+
+DROP ROLE IF EXISTS regressgroup1;
+DROP ROLE IF EXISTS regressgroup2;
+
+DROP ROLE IF EXISTS regressuser1;
+DROP ROLE IF EXISTS regressuser2;
+DROP ROLE IF EXISTS regressuser3;
+DROP ROLE IF EXISTS regressuser4;
+
+RESET client_min_messages;
+
+-- test proper begins here
+
 CREATE USER regressuser1;
 CREATE USER regressuser2;
 CREATE USER regressuser3;
-- 
GitLab