-
Notifications
You must be signed in to change notification settings - Fork 55
/
run_tests.sh
executable file
·56 lines (42 loc) · 1.13 KB
/
run_tests.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
# This is a main testing script for:
# * regression tests
# * testgres-based tests
# * cmocka-based tests
# Copyright (c) 2017, Postgres Professional
set -eux
echo CHECK_CODE=$CHECK_CODE
status=0
# run cmake
mkdir -p build
pushd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
# perform code analysis if necessary
if [ "$CHECK_CODE" = "clang" ]; then
scan-build --status-bugs make || status=$?
exit $status
fi
# initialize database
initdb
# build and install extension
make clean
make -j10
make install
# check build
status=$?
if [ $status -ne 0 ]; then exit $status; fi
# add the extension to shared_preload_libraries and restart cluster 'test'
echo "port = 55435" >> $PGDATA/postgresql.conf
pg_ctl start -l /tmp/postgres.log -w
# check startup
status=$?
if [ $status -ne 0 ]; then cat /tmp/postgres.log; fi
# run regression tests
export PG_REGRESS_DIFF_OPTS="-w -U3" # for alpine's diff (BusyBox)
PGPORT=55435 make installcheck || status=$?
# show diff if it exists
popd
if test -f tests/regression.diffs; then cat tests/regression.diffs; fi
# check startup
if [ $status -ne 0 ]; then cat /tmp/postgres.log; fi
exit $status