Skip to content

Commit 5e68f83

Browse files
committed
Improve and document test suites
This commit improves the 007 prove test: PG oredering is either case sensitive or case insensitive depending on system settings. The testcase uses ordering based on the query string, with some uppercase and some lowercase queries, causing resulting in different outputs on different systems. This change modifies the ordering to use lower(query) to ensure consistent results everywhere. It also adds a TESTING markdown file describing how to run the test suite when building pg ang pgsm from source.
1 parent 726556d commit 5e68f83

19 files changed

+200
-160
lines changed

.github/workflows/postgresql-11-build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ jobs:
2222
libipc-run-perl -y docbook-xsl docbook-xsl libxml2 libxml2-utils \
2323
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
2424
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
25-
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev
25+
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev \
26+
libtext-diff-perl
2627
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2728
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2829
/etc/postgresql

.github/workflows/postgresql-11-ppg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget
21+
libipc-run-perl wget libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

.github/workflows/postgresql-12-build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ jobs:
2222
libipc-run-perl docbook-xsl docbook-xsl libxml2 libxml2-utils \
2323
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
2424
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
25-
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev
25+
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev \
26+
libtext-diff-perl
2627
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2728
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2829
/etc/postgresql

.github/workflows/postgresql-12-pgdg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget -y
21+
libipc-run-perl wget -y libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

.github/workflows/postgresql-12-ppg-package.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget
22-
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
23-
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
24-
libipc-run-perl wget
21+
libipc-run-perl wget libtext-diff-perl
2522
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2623
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2724
/etc/postgresql

.github/workflows/postgresql-13-build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ jobs:
2222
libipc-run-perl -y docbook-xsl docbook-xsl libxml2 libxml2-utils \
2323
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
2424
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
25-
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev
25+
llvm-11 llvm-11-dev libselinux1-dev python3-dev uuid-dev liblz4-dev \
26+
libtext-diff-perl
2627
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2728
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2829
/etc/postgresql

.github/workflows/postgresql-13-pgdg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget -y
21+
libipc-run-perl wget -y libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

.github/workflows/postgresql-13-ppg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget
21+
libipc-run-perl wget libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

.github/workflows/postgresql-14-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
2424
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
2525
llvm-11 llvm-11-dev libselinux1-dev python3-dev \
26-
uuid-dev liblz4-dev
26+
uuid-dev liblz4-dev libtext-diff-perl
2727
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2828
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2929
/etc/postgresql

.github/workflows/postgresql-14-pgdg-package.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ jobs:
1717
sudo apt purge postgresql-client-common postgresql-common \
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev wget \
20-
zlib1g-dev libssl-dev libpam0g-dev bison flex libipc-run-perl
20+
zlib1g-dev libssl-dev libpam0g-dev bison flex libipc-run-perl \
21+
libtext-diff-perl
2122
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2223
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2324
/etc/postgresql

.github/workflows/postgresql-14-ppg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget
21+
libipc-run-perl wget libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

.github/workflows/postgresql-15-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
2424
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
2525
llvm-11 llvm-11-dev libselinux1-dev python3-dev \
26-
uuid-dev liblz4-dev
26+
uuid-dev liblz4-dev libtext-diff-perl
2727
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2828
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2929
/etc/postgresql

.github/workflows/postgresql-15-pgdg-package.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ jobs:
1717
sudo apt purge postgresql-client-common postgresql-common \
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev wget \
20-
zlib1g-dev libssl-dev libpam0g-dev bison flex libipc-run-perl
20+
zlib1g-dev libssl-dev libpam0g-dev bison flex libipc-run-perl \
21+
libtext-diff-perl
2122
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2223
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2324
/etc/postgresql

.github/workflows/postgresql-15-ppg-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
postgresql postgresql*
1919
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
2020
zlib1g-dev libssl-dev libpam0g-dev python3-dev bison flex \
21-
libipc-run-perl wget
21+
libipc-run-perl wget libtext-diff-perl
2222
sudo rm -rf /var/lib/postgresql /var/log/postgresql /etc/postgresql \
2323
/usr/lib/postgresql /usr/include/postgresql /usr/share/postgresql \
2424
/etc/postgresql

TESTING.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# How to run the tests
2+
3+
This document describes how to run the tests suites when building pg & pgsm from source.
4+
5+
The steps can also be adapted when postgres is installed using a package manager, in that case the relevant directories will be in their usual global locations (`/usr/lib/postgresql`)
6+
7+
## pg_regress
8+
9+
1. setup and start a postgres cluster
10+
2. create a database named "contrib\_regression"
11+
3. Install the pg\_stat\_statements extension
12+
4. Run the tests using (with the working directory as the pgsm git repository):
13+
14+
```
15+
<PG_BUILD_DIR>/src/test/regress/pg_regress --bindir <INST_DIR>/bin --temp-config pg_stat_monitor.conf --inputdir regression/ --dbname=contrib_regression basic version guc pgsm_query_id functions counters relations database error_insert application_name application_name_unique top_query cmd_type error rows tags user
16+
```
17+
18+
# prove
19+
20+
1. setup and start postgres cluster
21+
2. create a database named "contrib\_regression"
22+
3. Install the pg\_stat\_monitor and pg\_stat\_statements extensions
23+
4. When executing the tests multiple times, delete the `tmp_check` directory between runs
24+
5. When executing the tests and encountering failures, databases created by some tests might remain in the cluster.
25+
Connect to the cluster, and delete these databases if they cause errors.
26+
6. Run the tests using (with the working directory as the pgsm git repository):
27+
28+
```
29+
prove -I <PG_SRC_DIR>/src/src/test/perl/ -I . t/*.pl
30+
```
31+

t/007_settings_pgsm_query_shared_buffer.pl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
print " out: $out \n";
6060
ok($cmdret == 0, "Run pgbench");
6161

62-
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
62+
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, lower(query), calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
6363
ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor");
6464
PGSM::append_to_file($stdout);
6565

@@ -82,7 +82,7 @@
8282
print " out: $out \n";
8383
ok($cmdret == 0, "Run pgbench");
8484

85-
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
85+
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, lower(query), calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
8686
ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor");
8787
PGSM::append_to_file($stdout);
8888

@@ -105,7 +105,7 @@
105105
print " out: $out \n";
106106
ok($cmdret == 0, "Run pgbench");
107107

108-
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
108+
($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, lower(query), calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
109109
ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor");
110110
PGSM::append_to_file($stdout);
111111

0 commit comments

Comments
 (0)