Testsuite: wait for MySQL DB startup before inserting data
[exim.git] / test / scripts / 2610-MySQL / 2610
1 # mysql lookups
2 #
3 # first, populate a DB to test against
4 sudo rm -fr DIR/mysql
5 perl
6 system 'mysql_install_db --datadir=DIR/mysql';
7 ****
8 sudo rm test-stdout test-stderr
9 #
10 # start a db server
11 background
12 mysqld_safe --datadir=DIR/mysql --log-error=DIR/mysql/log --port=PORT_N --socket=DIR/mysql/sock --pid-file=DIR/mysql/pidfile
13 ****
14 #
15 # wait for db startup, insert some data
16 perl
17 system 'mysqladmin --protocol=TCP -P PORT_N --connect_timeout=1 --wait=5 -u root create test';
18 system 'mysql --protocol=TCP -P PORT_N -u root -D test \
19  -e "CREATE TABLE them ( name text, id text ); \
20      INSERT INTO them VALUES ( \'Philip Hazel\', \'ph10\' ); \
21      INSERT INTO them VALUES ( \'Aristotle\',    \'aaaa\' ); \
22      INSERT INTO them VALUES ( \'\', \'nothing\' ); \
23      INSERT INTO them VALUES ( \'\"stquot\', \'quote2\' ); \
24      INSERT INTO them VALUES ( CONCAT(\'before\', CHAR(13), CHAR(10), \'after\'), \'newline\' ); \
25      INSERT INTO them VALUES ( CONCAT(\'x\', CHAR(9), \'x\'), \'tab\' ); \
26      INSERT INTO them VALUES ( CONCAT(CHAR(39), \'stquot\'), \'quote1\' ); \
27  "';
28 ****
29 sudo rm test-stderr-server
30 #
31 #
32 exim -d-all+lookup -be
33 ${lookup mysql {select name from them where id='ph10';}}
34 ${lookup mysql {select name from them where id='ph10';}}
35 ${lookup mysql {select name from them where id='xxxx';}}
36 ${lookup mysql {select name from them where id='nothing';}}
37 ${lookup mysql {select id,name from them where id='nothing';}}
38 ${lookup mysql {delete from them where id='nonexist';}}
39 ${lookup mysql {select * from them where id='quote';}}
40 ${lookup mysql {select * from them where id='filter';}}
41 ${lookup mysql {select * from them where id='quote2';}}
42 ${lookup mysql {select * from them where id='nlonly';}}
43 ${lookup mysql {servers=x:127.0.0.1::PORT_N; select name from them where id='ph10';}}
44 ${lookup mysql {servers=127.0.0.1::PORT_N:x; select name from them where id='ph10';}}
45 ${lookup mysql {servers=127.0.0.1::PORT_N/test/root/:x; select name from them where id='ph10';}}
46 ${lookup mysql {servers=HOSTIPV4::PORT_N/test/root/:127.0.0.1::PORT_N; select name from them where id='ph10';}}
47 ${lookup mysql {servers=localhost(DIR/mysql/sock)/test/root/; select name from them where id='ph10';}}
48 x
49 ${lookup mysql {SELECT name FROM them WHERE id IN ('ph10', 'aaaa');}}
50 ${lookup mysql {SELECT *    FROM them WHERE id IN ('ph10', 'aaaa');}}
51 ${lookup mysql {delete from them where id='aaaa'}}
52 ****
53 exim -d -bh 10.0.0.0
54 mail from:<a@b>
55 rcpt to:<c@d>
56 quit
57 ****
58 exim -odi -d ph10
59 Test message
60 .
61 ****
62 #
63 perl
64 system 'mysqladmin --protocol=TCP -P PORT_N -u root shutdown';
65 ****
66 killdaemon
67 sudo rm -fr DIR/mysql