Skip to content

Commit

Permalink
Don't REVOKE in runner cleanup function
Browse files Browse the repository at this point in the history
This patch removes the REVOKEs added in commit e320679. The
REVOKEs were added to the cleanup function which gets executed
for every individual test but the GRANTs only happens once
during initial setup thereby creating an asymmetry. This lead
to tests failing that relied on those GRANTs.
This patch also makes those GRANTs only execute for PG >= 15.
  • Loading branch information
svenklemm committed Jan 18, 2022
1 parent 8e6d3d4 commit afe3362
Showing 1 changed file with 16 additions and 18 deletions.
34 changes: 16 additions & 18 deletions test/runner.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,9 @@ TEST_ROLE_READ_ONLY=${TEST_ROLE_READ_ONLY:-test_role_read_only}
shift

# Drop test database and make it less verbose in case of dropping a
# distributed database. Also revoke privileges granted when setting up
# the template1 database. This has to be revoked since the user is
# dropped from a different database.
# distributed database.
function cleanup {
${PSQL} "$@" -U ${USER} -d template1 -v ECHO=none >/dev/null 2>&1 <<EOF
REVOKE CREATE ON SCHEMA public FROM ${TEST_PGUSER};
REVOKE CREATE ON SCHEMA public FROM ${TEST_ROLE_DEFAULT_PERM_USER};
REVOKE CREATE ON SCHEMA public FROM ${TEST_ROLE_DEFAULT_PERM_USER_2};
REVOKE CREATE ON SCHEMA public FROM ${TEST_ROLE_1};
REVOKE CREATE ON SCHEMA public FROM ${TEST_ROLE_2};
REVOKE CREATE ON SCHEMA public FROM ${TEST_ROLE_3};
EOF
cat <<EOF | ${PSQL} "$@" -U $TEST_ROLE_SUPERUSER -d postgres -v ECHO=none >/dev/null 2>&1
cat <<EOF | ${PSQL} "$@" -U $TEST_ROLE_SUPERUSER -d postgres -v ECHO=none >/dev/null 2>&1
SET client_min_messages=ERROR;
DROP DATABASE "${TEST_DBNAME}";
EOF
Expand All @@ -72,12 +62,20 @@ trap cleanup EXIT
if mkdir ${TEST_OUTPUT_DIR}/.pg_init 2>/dev/null; then
${PSQL} "$@" -U ${USER} -d template1 -v ECHO=none >/dev/null 2>&1 <<EOF
SET client_min_messages=ERROR;
GRANT CREATE ON SCHEMA public TO ${TEST_PGUSER};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_DEFAULT_PERM_USER};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_DEFAULT_PERM_USER_2};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_1};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_2};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_3};
DO \$\$
BEGIN
IF current_setting('server_version_num')::int >= 150000 THEN
GRANT CREATE ON SCHEMA public TO ${TEST_PGUSER};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_DEFAULT_PERM_USER};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_DEFAULT_PERM_USER_2};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_1};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_2};
GRANT CREATE ON SCHEMA public TO ${TEST_ROLE_3};
END IF;
END
\$\$ LANGUAGE PLPGSQL;
ALTER USER ${TEST_ROLE_SUPERUSER} WITH SUPERUSER;
ALTER USER ${TEST_ROLE_CLUSTER_SUPERUSER} WITH SUPERUSER;
ALTER USER ${TEST_ROLE_1} WITH CREATEDB CREATEROLE;
Expand Down

0 comments on commit afe3362

Please sign in to comment.