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