Skip to content

Commit c337b49

Browse files
committed
possibility to execute tests related to major versions by meson
1 parent 334fdfd commit c337b49

File tree

2 files changed

+50
-20
lines changed

2 files changed

+50
-20
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,13 @@ or compile by self:
965965
1. copy `plpgsql_check.dll` to `PostgreSQL\14\lib`
966966
2. copy `plpgsql_check.control` and `plpgsql_check--2.1.sql` to `PostgreSQL\14\share\extension`
967967

968+
## Meson build
969+
970+
1. `meson setup build`
971+
2. `cd build`
972+
3. `ninja`
973+
4. `sudo ninja install`
974+
968975
## Checked on
969976

970977
* gcc on Linux (against all supported PostgreSQL)

meson.build

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ includedir_server = run_command(pg_config, '--includedir-server', check: true).s
77
pkglibdir = run_command(pg_config, '--pkglibdir', check: true).stdout().strip()
88
sharedir = run_command(pg_config, '--sharedir', check: true).stdout().strip()
99

10+
versionstring = run_command(pg_config, '--version', check: true).stdout().strip()
11+
pg_version = versionstring.split(' ')[1]
12+
13+
if pg_version.endswith('devel')
14+
pg_version_arr = [pg_version.split('devel')[0], '0']
15+
elif pg_version.contains('beta')
16+
pg_version_arr = [pg_version.split('beta')[0], '0']
17+
elif pg_version.contains('rc')
18+
pg_version_arr = [pg_version.split('rc')[0], '0']
19+
else
20+
pg_version_arr = pg_version.split('.')
21+
endif
22+
23+
pg_version_major = pg_version_arr[0].to_int()
24+
pg_version_minor = pg_version_arr[1].to_int()
25+
pg_version_num = (pg_version_major * 10000) + pg_version_minor
26+
1027
plpgsql_check_sources = files(
1128
'src/assign.c',
1229
'src/cursors_leaks.c',
@@ -27,28 +44,34 @@ plpgsql_check_sources = files(
2744
'src/tracer.c',
2845
)
2946

30-
shared_module('plpgsql_check', plpgsql_check_sources,
31-
include_directories: [includedir_server],
32-
install: true,
33-
install_dir: pkglibdir,
34-
name_prefix: '',
35-
)
47+
shared_module(
48+
'plpgsql_check',
49+
plpgsql_check_sources,
50+
include_directories: [includedir_server],
51+
install: true,
52+
install_dir: pkglibdir,
53+
name_prefix: '',
54+
)
3655

37-
install_data('plpgsql_check.control',
38-
'plpgsql_check--2.7.sql',
39-
install_dir: sharedir / 'extension',
40-
)
56+
install_data(
57+
'plpgsql_check.control',
58+
'plpgsql_check--2.7.sql',
59+
install_dir: sharedir / 'extension',
60+
)
4161

42-
pg_regress = find_program('pg_regress',
43-
dirs: [pkglibdir / 'pgxs/src/test/regress']
44-
)
62+
pg_regress = find_program(
63+
'pg_regress',
64+
dirs: [pkglibdir / 'pgxs/src/test/regress']
65+
)
4566

46-
regress_tests = ['plpgsql_check_active', 'plpgsql_check_passive']
67+
regress_tests = ['plpgsql_check_active',
68+
'plpgsql_check_passive',
69+
'plpgsql_check_active-' + pg_version_major.to_string(),
70+
'plpgsql_check_passive-' + pg_version_major.to_string()]
4771

4872
test('regress',
49-
pg_regress,
50-
args: ['--bindir', bindir,
51-
'--inputdir', meson.current_source_dir(),
52-
] + regress_tests,
53-
)
54-
73+
pg_regress,
74+
args: ['--bindir', bindir,
75+
'--inputdir', meson.current_source_dir(),
76+
] + regress_tests,
77+
)

0 commit comments

Comments
 (0)