You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
4 months ago
|
#!/usr/bin/perl
|
||
|
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
use Test::More tests => 7;
|
||
|
|
||
|
# MySQL setup
|
||
|
my $MYSQL_DIR = $ENV{'MYSQL_DIR'};
|
||
|
my $MYSQL_UNIX_PORT = $ENV{'MYSQL_UNIX_PORT'};
|
||
|
my $MYSQL_PIDFILE = $ENV{'MYSQL_PIDFILE'};
|
||
|
|
||
|
# DBD::MariaDB test setup
|
||
|
my $DBD_MYSQL_TESTDB = $ENV{'DBD_MYSQL_TESTDB'};
|
||
|
my $DBD_MYSQL_TESTHOST = $ENV{'DBD_MYSQL_TESTHOST'};
|
||
|
my $DBD_MYSQL_TESTSOCKET = $ENV{'DBD_MYSQL_TESTSOCKET'};
|
||
|
my $DBD_MYSQL_TESTUSER = $ENV{'DBD_MYSQL_TESTUSER'};
|
||
|
my $DBD_MYSQL_TESTPASSWORD = $ENV{'DBD_MYSQL_TESTPASSWORD'};
|
||
|
|
||
|
my $MYSQLD = '/usr/sbin/mysqld';
|
||
|
# Initialize MySQL data directory
|
||
|
system("$MYSQLD --no-defaults --initialize-insecure --user=mysql --datadir=$MYSQL_DIR >/dev/null 2>&1");
|
||
|
is($?, 0);
|
||
|
|
||
|
# Starting the server
|
||
|
my $cmd = "$MYSQLD --no-defaults --socket=$MYSQL_UNIX_PORT --datadir=$MYSQL_DIR --pid-file=$MYSQL_PIDFILE --explicit_defaults_for_timestamp --skip-networking >/dev/null 2>&1 &";
|
||
|
system($cmd);
|
||
|
is($?, 0);
|
||
|
|
||
|
my $attempts = 0;
|
||
|
while (system("/usr/bin/mysqladmin --socket=$MYSQL_UNIX_PORT ping >/dev/null 2>&1") != 0) {
|
||
|
sleep 3;
|
||
|
$attempts++;
|
||
|
if ($attempts > 10) {
|
||
|
fail("skipping test, mysql server could not be contacted after 30 seconds\n");
|
||
|
}
|
||
|
}
|
||
|
ok(1);
|
||
|
|
||
|
# Create database
|
||
|
system("mysql -u root --skip-password --execute \"CREATE DATABASE IF NOT EXISTS $DBD_MYSQL_TESTDB CHARACTER SET='utf8mb4';\" 2>&1");
|
||
|
is($?, 0);
|
||
|
|
||
|
# The test user has to have the proper privileges that these tests require
|
||
|
system("mysql -u root --skip-password --execute \"CREATE USER '$DBD_MYSQL_TESTUSER'\@'localhost' IDENTIFIED BY '$DBD_MYSQL_TESTPASSWORD'; \" 2>&1");
|
||
|
is($?, 0);
|
||
|
system("mysql -u root --skip-password --execute \"GRANT ALL PRIVILEGES ON $DBD_MYSQL_TESTDB.* TO '$DBD_MYSQL_TESTUSER'\@'localhost';\" 2>&1");
|
||
|
is($?, 0);
|
||
|
|
||
|
system("/usr/bin/mysqladmin --user=$DBD_MYSQL_TESTUSER --password=$DBD_MYSQL_TESTPASSWORD --socket=$DBD_MYSQL_TESTSOCKET ping >/dev/null 2>&1");
|
||
|
is($?, 0);
|