X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/ba0e37b13c652435898f9b1050d6fe648875b125..f1a496844eddb421ba2a36e551dd308b8a565162:/test/scripts/2610-MySQL/2610 diff --git a/test/scripts/2610-MySQL/2610 b/test/scripts/2610-MySQL/2610 index b3e36a5a7..9a36f0763 100644 --- a/test/scripts/2610-MySQL/2610 +++ b/test/scripts/2610-MySQL/2610 @@ -1,22 +1,36 @@ # mysql lookups +# The mysql-devel (or equivalent) package will be need for Exim to build, and +# the mysql-server (or mariadb-server or equivalent) package for this test to run. # # first, populate a DB to test against sudo rm -fr DIR/mysql +echo Installing DB server dir perl -system 'mysql_install_db --datadir=DIR/mysql'; +system 'mysql_install_db --no-defaults --datadir=DIR/mysql --user=CALLER'; **** -sudo rm test-stdout +sudo rm test-stdout test-stderr # # start a db server +echo Starting DB server background -mysqld_safe --datadir=DIR/mysql --log-error=DIR/mysql/log --port=PORT_N --socket=DIR/mysql/sock --pid-file=DIR/mysql/pidfile +DIR/bin.sys/mysqld --datadir=DIR/mysql --log-error=DIR/mysql/log --bind-address=* --port=PORT_N --socket=DIR/mysql/sock --pid-file=DIR/mysql/pidfile **** -sleep 1 -sudo rm test-stderr-server # -# insert some data +# wait for db startup, insert some data +echo Waiting for DB server startup perl -system 'mysqladmin --protocol=TCP -P PORT_N -u root create test'; +system 'mysqladmin --protocol=TCP -P PORT_N --connect_timeout=2 --wait=5 -u root create test'; +my $fh; +open($fh, '-|', 'mysql --protocol=TCP -P PORT_N -u root -D test -e "select 1 from mysql.user where User = \'root\' and Host = \'HOSTIPV4\'"'); +my $line = <$fh>; +if (length($line) == 0) { + system 'mysql --protocol=TCP -P PORT_N -u root -D test -e "create user \'root\'@\'HOSTIPV4\'"'; +} +open($fh, '-|', 'mysql --protocol=TCP -P PORT_N -u root -D test -e "select 1 from mysql.user where User = \'CALLER\' and Host = \'HOSTIPV4\'"'); +$line = <$fh>; +if (length($line) == 0) { + system 'mysql --protocol=TCP -P PORT_N -u root -D test -e "create user \'CALLER\'@\'HOSTIPV4\'"'; +} system 'mysql --protocol=TCP -P PORT_N -u root -D test \ -e "CREATE TABLE them ( name text, id text ); \ INSERT INTO them VALUES ( \'Philip Hazel\', \'ph10\' ); \ @@ -26,8 +40,12 @@ system 'mysql --protocol=TCP -P PORT_N -u root -D test \ INSERT INTO them VALUES ( CONCAT(\'before\', CHAR(13), CHAR(10), \'after\'), \'newline\' ); \ INSERT INTO them VALUES ( CONCAT(\'x\', CHAR(9), \'x\'), \'tab\' ); \ INSERT INTO them VALUES ( CONCAT(CHAR(39), \'stquot\'), \'quote1\' ); \ + GRANT ALL ON *.* TO \'root\'@\'HOSTIPV4\'; \ + GRANT ALL ON *.* TO \'CALLER\'@\'HOSTIPV4\'; \ "'; **** +echo Populated DB +sudo rm test-stderr-server # # exim -d-all+lookup -be @@ -65,4 +83,4 @@ perl system 'mysqladmin --protocol=TCP -P PORT_N -u root shutdown'; **** killdaemon -sudo rm -fr DIR/mysql +#sudo rm -fr DIR/mysql