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