1f8f3abe1b707912d2ca2b82b06e92940775904c
[users/jgh/exim.git] / test / scripts / 2620-Postgresql / 2620
1 # pgsql lookups
2 # The pgsql-devel (or equivalent) package will be need for Exim to build, and
3 # the postgresql-server (or equivalent) package for this test to run.
4 #
5 # first, populate a DB to test against
6 sudo rm -fr DIR/pgsql
7 perl
8 system 'DIR/bin.sys/initdb -D DIR/pgsql/data';
9 ****
10 sudo rm test-stdout
11 background
12 DIR/bin.sys/postgres -D DIR/pgsql/data -p PORT_N -k DIR/pgsql
13 ****
14 sleep 1
15 perl
16 system 'createdb -h localhost -p PORT_N test';
17 system 'psql -h localhost -p PORT_N -d test \
18  -c "CREATE TABLE them ( name text, id text ); \
19      INSERT INTO them VALUES ( \'Philip Hazel\', \'ph10\' ); \
20      INSERT INTO them VALUES ( \'Aristotle\',    \'aaaa\' ); \
21      INSERT INTO them VALUES ( \'\', \'nothing\' ); \
22      INSERT INTO them VALUES ( \'\"stquot\', \'quote2\' ); \
23      INSERT INTO them VALUES ( \'before\' || CHR(13) || CHR(10) || \'after\', \'newline\' ); \
24      INSERT INTO them VALUES ( \'x\' || CHR(9) || \'x\', \'tab\' ); \
25      INSERT INTO them VALUES ( CHR(39) || \'stquot\', \'quote1\' );" \
26  ';
27 ****
28 #
29 # now, the tests
30 exim -d-all+lookup -be
31 ${lookup pgsql {select name from them where id='ph10';}}
32 ${lookup pgsql {select name from them where id='ph10';}}
33 ${lookup pgsql {select name from them where id='xxxx';}}
34 ${lookup pgsql {select name from them where id='nothing';}}
35 ${lookup pgsql {select id,name from them where id='nothing';}}
36 ${lookup pgsql {delete from them where id='nonexist';}}
37 ${lookup pgsql {select * from them where id='quote2';}}
38 ${lookup pgsql {select * from them where id='newline';}}
39 ${lookup pgsql {select * from them where id='tab';}}
40 ${lookup pgsql {select * from them where name='${quote_pgsql:'stquot}';}}
41 ${lookup pgsql {servers=x:localhost; select name from them where id='ph10';}}
42 ${lookup pgsql {servers=localhost::PORT_N:x; select name from them where id='ph10';}}
43 ${lookup pgsql {servers=localhost::PORT_N/test/CALLER/:x; select name from them where id='ph10';}}
44 ${lookup pgsql {servers=(DIR/pgsql/.s.PGSQL.PORT_N)/test/CALLER/:x; select name from them where id='ph10';}}
45 x
46 ${lookup pgsql {SELECT name FROM them WHERE id IN ('ph10', 'aaaa');}}
47 ${lookup pgsql {SELECT *    FROM them WHERE id IN ('ph10', 'aaaa');}}
48 ${lookup pgsql {delete from them where id='aaaa'}}
49 ****
50 exim -d -bh 10.0.0.0
51 mail from:<a@b>
52 rcpt to:<c@d>
53 rcpt to:<c@d>
54 quit
55 ****
56 exim -odi -d CALLER
57 Test message
58 .
59 ****
60 exim -DSERVERS=\(DIR/pgsql/.s.PGSQL.PORT_N\)/test/CALLER/ -d-all+lookup -be
61 ${lookup pgsql {select name from them where id='ph10';}}
62 ****
63 #
64 perl
65 system 'pg_ctl stop -D DIR/pgsql/data -m immediate';
66 ****
67 killdaemon
68 sudo rm -fr DIR/pgsql