Skip to content

Commit ef62e0e

Browse files
committed
Wrap pg_regress in a TAP test to setup cluster automatically
This makes the pg_regress tests much easier to run given that they then can run in a clean cluster and nobody has to start and stop a cluster manually. For some reason our Meson support did not run any TAP tests which means the tests are no longer runnable from Meson. This should likely be fixed as a separate pull request.
1 parent 15cf568 commit ef62e0e

13 files changed

Lines changed: 149 additions & 156 deletions

.github/scripts/test.sh

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,13 @@
33
set -e
44

55
SCRIPT_DIR="$(cd -- "$(dirname "$0")" >/dev/null 2>&1; pwd -P)"
6-
PG_BIN_DIR=$(pg_config --bindir)
76

87
cd "$SCRIPT_DIR/../../"
98

109
PG_VERSION=$(pg_config --version | sed -n 's/PostgreSQL \([0-9]*\).*/\1/p')
1110

12-
OPTS='-c shared_preload_libraries=pg_stat_monitor'
13-
1411
if [ "$1" = sanitize ]; then
15-
OPTS+=' -c max_stack_depth=8MB'
12+
export PG_TEST_INITDB_EXTRA_OPTS='--set max_stack_depth=8MB'
1613
fi
1714

18-
$PG_BIN_DIR/pg_ctl -D regression_install -l regression_install.log init
19-
20-
$PG_BIN_DIR/pg_ctl -D regression_install -l regression_install.log start -o "$OPTS"
21-
22-
make installcheck
23-
24-
$PG_BIN_DIR/pg_ctl -D regression_install stop
15+
make installcheck PROVE_FLAGS=-f

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ dkms.conf
6868
typedefs*.list
6969

7070
# test files
71-
/regression.diffs
72-
/regression.out
73-
/results/
71+
/regression/regression.diffs
72+
/regression/regression.out
73+
/regression/results/
7474
/t/results/
7575
/tmp_check/

Makefile

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,6 @@ PGFILEDESC = "pg_stat_monitor - Query Performance Monitoring Tool for PostgreSQL
1212
LDFLAGS_SL += $(filter -lm, $(LIBS))
1313

1414
TAP_TESTS = 1
15-
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_monitor/pg_stat_monitor.conf --inputdir=regression
16-
REGRESS = basic \
17-
version \
18-
guc \
19-
pgsm_query_id \
20-
functions \
21-
counters \
22-
relations \
23-
database \
24-
error_insert \
25-
application_name \
26-
application_name_unique \
27-
top_query \
28-
different_parent_queries \
29-
cmd_type \
30-
error \
31-
rows \
32-
squashing \
33-
tags \
34-
user \
35-
rollback \
36-
level_tracking \
37-
decode_error_level \
38-
parallel \
39-
histogram
4015

4116
PG_CONFIG ?= pg_config
4217
PGXS := $(shell $(PG_CONFIG) --pgxs)

meson.build

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -24,41 +24,3 @@ install_data(
2424
'pg_stat_monitor--2.3--next.sql',
2525
kwargs: contrib_data_args,
2626
)
27-
28-
tests += {
29-
'name': 'pg_stat_monitor',
30-
'sd': meson.current_source_dir(),
31-
'bd': meson.current_build_dir(),
32-
'regress': {
33-
'sql': [
34-
'application_name',
35-
'application_name_unique',
36-
'basic',
37-
'cmd_type',
38-
'counters',
39-
'database',
40-
'different_parent_queries',
41-
'error_insert',
42-
'error',
43-
'functions',
44-
'guc',
45-
'histogram',
46-
'level_tracking',
47-
'parallel',
48-
'pgsqm_query_id',
49-
'relations',
50-
'rows',
51-
'squashing',
52-
'state',
53-
'tags',
54-
'top_query',
55-
'user',
56-
'version'
57-
],
58-
'regress_args': ['--temp-config', files('pg_stat_monitor.conf')],
59-
# Disabled because these tests require
60-
# "shared_preload_libraries=pg_stat_monitor", which typical
61-
# runningcheck users do not have (e.g. buildfarm clients).
62-
'runningcheck': false,
63-
},
64-
}

pg_stat_monitor.conf

Lines changed: 0 additions & 1 deletion
This file was deleted.

regression/expected/database.out

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CREATE TABLE t2 (b int);
77
\c db2
88
CREATE TABLE t3 (c int);
99
CREATE TABLE t4 (d int);
10-
\c contrib_regression
10+
\c pgsm_regression
1111
SELECT pg_stat_monitor_reset();
1212
pg_stat_monitor_reset
1313
-----------------------
@@ -26,15 +26,15 @@ SELECT * FROM t3,t4 WHERE t3.c = t4.d;
2626
---+---
2727
(0 rows)
2828

29-
\c contrib_regression
29+
\c pgsm_regression
3030
DROP DATABASE db2;
3131
SELECT datname, query FROM pg_stat_monitor ORDER BY query COLLATE "C";
32-
datname | query
33-
--------------------+---------------------------------------
34-
contrib_regression | DROP DATABASE db2
35-
db1 | SELECT * FROM t1,t2 WHERE t1.a = t2.b
36-
db2 | SELECT * FROM t3,t4 WHERE t3.c = t4.d
37-
contrib_regression | SELECT pg_stat_monitor_reset()
32+
datname | query
33+
-----------------+---------------------------------------
34+
pgsm_regression | DROP DATABASE db2
35+
db1 | SELECT * FROM t1,t2 WHERE t1.a = t2.b
36+
db2 | SELECT * FROM t3,t4 WHERE t3.c = t4.d
37+
pgsm_regression | SELECT pg_stat_monitor_reset()
3838
(4 rows)
3939

4040
SELECT pg_stat_monitor_reset();
@@ -46,6 +46,6 @@ SELECT pg_stat_monitor_reset();
4646
\c db1
4747
DROP TABLE t1;
4848
DROP TABLE t2;
49-
\c contrib_regression
49+
\c pgsm_regression
5050
DROP DATABASE db1;
5151
DROP EXTENSION pg_stat_monitor;

regression/expected/pgsm_query_id.out

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ CREATE FUNCTION add(integer, integer) RETURNS integer
1717
LANGUAGE SQL
1818
IMMUTABLE
1919
RETURNS NULL ON NULL INPUT;
20-
\c contrib_regression
20+
\c pgsmregression
2121
SELECT pg_stat_monitor_reset();
2222
pg_stat_monitor_reset
2323
-----------------------
@@ -79,22 +79,22 @@ SELECT * FROM t3 where c = 20;
7979
---
8080
(0 rows)
8181

82-
\c contrib_regression
82+
\c pgsmregression
8383
SELECT datname, pgsm_query_id, query, calls FROM pg_stat_monitor ORDER BY pgsm_query_id, query, datname;
84-
datname | pgsm_query_id | query | calls
85-
--------------------+---------------------+-----------------------------------------------------+-------
86-
contrib_regression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87-
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88-
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89-
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90-
db1 | 2864453209316739369 | select $1 + $2 | 1
91-
db2 | 2864453209316739369 | select $1 + $2 | 1
92-
db2 | 6220142855706866455 | set pg_stat_monitor.pgsm_enable_pgsm_query_id = on | 1
93-
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
94-
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
95-
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
96-
db2 | | SELECT * FROM t3 | 1
97-
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 1
84+
datname | pgsm_query_id | query | calls
85+
----------------+---------------------+-----------------------------------------------------+-------
86+
pgsmregression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87+
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88+
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89+
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90+
db1 | 2864453209316739369 | select $1 + $2 | 1
91+
db2 | 2864453209316739369 | select $1 + $2 | 1
92+
db2 | 6220142855706866455 | set pg_stat_monitor.pgsm_enable_pgsm_query_id = on | 1
93+
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
94+
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
95+
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
96+
db2 | | SELECT * FROM t3 | 1
97+
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 1
9898
(12 rows)
9999

100100
SELECT pg_stat_monitor_reset();
@@ -111,7 +111,7 @@ DROP FUNCTION ADD;
111111
DROP TABLE t1;
112112
DROP TABLE t3;
113113
DROP FUNCTION ADD;
114-
\c contrib_regression
114+
\c pgsmregression
115115
DROP DATABASE db1;
116116
DROP DATABASE db2;
117117
DROP EXTENSION pg_stat_monitor;

regression/expected/pgsm_query_id_1.out

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ CREATE FUNCTION add(integer, integer) RETURNS integer
1717
LANGUAGE SQL
1818
IMMUTABLE
1919
RETURNS NULL ON NULL INPUT;
20-
\c contrib_regression
20+
\c pgsm_regression
2121
SELECT pg_stat_monitor_reset();
2222
pg_stat_monitor_reset
2323
-----------------------
@@ -79,20 +79,20 @@ SELECT * FROM t3 where c = 20;
7979
---
8080
(0 rows)
8181

82-
\c contrib_regression
82+
\c pgsm_regression
8383
SELECT datname, pgsm_query_id, query, calls FROM pg_stat_monitor ORDER BY pgsm_query_id, query, datname;
84-
datname | pgsm_query_id | query | calls
85-
--------------------+---------------------+-----------------------------------------------------+-------
86-
contrib_regression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87-
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88-
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89-
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90-
db2 | 6220142855706866455 | set pg_stat_monitor.pgsm_enable_pgsm_query_id = on | 1
91-
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
92-
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
93-
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
94-
db2 | | SELECT * FROM t3 | 1
95-
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 1
84+
datname | pgsm_query_id | query | calls
85+
-----------------+---------------------+-----------------------------------------------------+-------
86+
pgsm_regression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87+
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88+
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89+
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90+
db2 | 6220142855706866455 | set pg_stat_monitor.pgsm_enable_pgsm_query_id = on | 1
91+
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
92+
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
93+
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
94+
db2 | | SELECT * FROM t3 | 1
95+
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 1
9696
(10 rows)
9797

9898
SELECT pg_stat_monitor_reset();
@@ -109,7 +109,7 @@ DROP FUNCTION ADD;
109109
DROP TABLE t1;
110110
DROP TABLE t3;
111111
DROP FUNCTION ADD;
112-
\c contrib_regression
112+
\c pgsm_regression
113113
DROP DATABASE db1;
114114
DROP DATABASE db2;
115115
DROP EXTENSION pg_stat_monitor;

regression/expected/pgsm_query_id_2.out

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ CREATE FUNCTION add(integer, integer) RETURNS integer
1717
LANGUAGE SQL
1818
IMMUTABLE
1919
RETURNS NULL ON NULL INPUT;
20-
\c contrib_regression
20+
\c pgsm_regression
2121
SELECT pg_stat_monitor_reset();
2222
pg_stat_monitor_reset
2323
-----------------------
@@ -79,19 +79,19 @@ SELECT * FROM t3 where c = 20;
7979
---
8080
(0 rows)
8181

82-
\c contrib_regression
82+
\c pgsm_regression
8383
SELECT datname, pgsm_query_id, query, calls FROM pg_stat_monitor ORDER BY pgsm_query_id, query, datname;
84-
datname | pgsm_query_id | query | calls
85-
--------------------+---------------------+-----------------------------------------------------+-------
86-
contrib_regression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87-
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88-
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89-
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90-
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
91-
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
92-
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
93-
db2 | | SELECT * FROM t3 | 1
94-
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 2
84+
datname | pgsm_query_id | query | calls
85+
-----------------+---------------------+-----------------------------------------------------+-------
86+
pgsm_regression | 689150021118383254 | SELECT pg_stat_monitor_reset() | 1
87+
db1 | 1897482803466821995 | SELECT * FROM t2 | 3
88+
db1 | 1988437669671417938 | SELECT * FROM t1 | 1
89+
db2 | 1988437669671417938 | SELECT * FROM t1 | 1
90+
db2 | 6633979598391393345 | SELECT * FROM t3 where c = 20 | 1
91+
db1 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
92+
db2 | 8140395000078788481 | SELECT *, ADD(1, 2) FROM t1 | 1
93+
db2 | | SELECT * FROM t3 | 1
94+
db2 | | set pg_stat_monitor.pgsm_enable_pgsm_query_id = off | 2
9595
(9 rows)
9696

9797
SELECT pg_stat_monitor_reset();
@@ -108,7 +108,7 @@ DROP FUNCTION ADD;
108108
DROP TABLE t1;
109109
DROP TABLE t3;
110110
DROP FUNCTION ADD;
111-
\c contrib_regression
111+
\c pgsm_regression
112112
DROP DATABASE db1;
113113
DROP DATABASE db2;
114114
DROP EXTENSION pg_stat_monitor;

regression/expected/rollback.out

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ BEGIN;
1212
INSERT INTO t VALUES (1);
1313
COMMIT;
1414
SELECT query, username, datname FROM pg_stat_monitor ORDER BY query COLLATE "C";
15-
query | username | datname
16-
--------------------------------+----------+--------------------
17-
BEGIN | u | contrib_regression
18-
COMMIT | u | contrib_regression
19-
INSERT INTO t VALUES (1) | u | contrib_regression
20-
SELECT pg_stat_monitor_reset() | u | contrib_regression
15+
query | username | datname
16+
--------------------------------+----------+-----------------
17+
BEGIN | u | pgsm_regression
18+
COMMIT | u | pgsm_regression
19+
INSERT INTO t VALUES (1) | u | pgsm_regression
20+
SELECT pg_stat_monitor_reset() | u | pgsm_regression
2121
(4 rows)
2222

2323
SELECT pg_stat_monitor_reset();
@@ -31,12 +31,12 @@ BEGIN;
3131
INSERT INTO t VALUES (2);
3232
ROLLBACK;
3333
SELECT query, username, datname FROM pg_stat_monitor ORDER BY query COLLATE "C";
34-
query | username | datname
35-
--------------------------------+----------+--------------------
36-
BEGIN | u | contrib_regression
37-
INSERT INTO t VALUES (2) | u | contrib_regression
38-
ROLLBACK | u | contrib_regression
39-
SELECT pg_stat_monitor_reset() | u | contrib_regression
34+
query | username | datname
35+
--------------------------------+----------+-----------------
36+
BEGIN | u | pgsm_regression
37+
INSERT INTO t VALUES (2) | u | pgsm_regression
38+
ROLLBACK | u | pgsm_regression
39+
SELECT pg_stat_monitor_reset() | u | pgsm_regression
4040
(4 rows)
4141

4242
SELECT pg_stat_monitor_reset();
@@ -52,12 +52,12 @@ ERROR: duplicate key value violates unique constraint "t_pkey"
5252
DETAIL: Key (a)=(1) already exists.
5353
ROLLBACK;
5454
SELECT query, username, datname FROM pg_stat_monitor ORDER BY query COLLATE "C";
55-
query | username | datname
56-
--------------------------------+----------+--------------------
57-
BEGIN | u | contrib_regression
58-
INSERT INTO t VALUES (1); | u | contrib_regression
55+
query | username | datname
56+
--------------------------------+----------+-----------------
57+
BEGIN | u | pgsm_regression
58+
INSERT INTO t VALUES (1); | u | pgsm_regression
5959
ROLLBACK | |
60-
SELECT pg_stat_monitor_reset() | u | contrib_regression
60+
SELECT pg_stat_monitor_reset() | u | pgsm_regression
6161
(4 rows)
6262

6363
SELECT pg_stat_monitor_reset();

0 commit comments

Comments
 (0)