summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/test-setup.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/test-setup.sh b/tools/test-setup.sh
new file mode 100755
index 0000000..07a0785
--- /dev/null
+++ b/tools/test-setup.sh
@@ -0,0 +1,57 @@
1#!/bin/bash -xe
2
3# This script will be run by OpenStack CI before unit tests are run,
4# it sets up the test system as needed.
5# Developers should setup their test systems in a similar way.
6
7# This setup needs to be run as a user that can run sudo.
8
9# The root password for the MySQL database; pass it in via
10# MYSQL_ROOT_PW.
11DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_slave}
12
13# This user and its password are used by the tests, if you change it,
14# your tests might fail.
15DB_USER=openstack_citest
16DB_PW=openstack_citest
17
18sudo -H mysqladmin -u root password $DB_ROOT_PW
19
20# It's best practice to remove anonymous users from the database. If
21# a anonymous user exists, then it matches first for connections and
22# other connections from that host will not work.
23sudo -H mysql -u root -p$DB_ROOT_PW -h localhost -e "
24 DELETE FROM mysql.user WHERE User='';
25 FLUSH PRIVILEGES;
26 GRANT ALL PRIVILEGES ON *.*
27 TO '$DB_USER'@'%' identified by '$DB_PW' WITH GRANT OPTION;"
28
29# Now create our database.
30mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e "
31 SET default_storage_engine=MYISAM;
32 DROP DATABASE IF EXISTS openstack_citest;
33 CREATE DATABASE openstack_citest CHARACTER SET utf8;"
34
35# Same for PostgreSQL
36# The root password for the PostgreSQL database; pass it in via
37# POSTGRES_ROOT_PW.
38DB_ROOT_PW=${POSTGRES_ROOT_PW:-insecure_slave}
39
40# Setup user
41root_roles=$(sudo -H -u postgres psql -t -c "
42 SELECT 'HERE' from pg_roles where rolname='$DB_USER'")
43if [[ ${root_roles} == *HERE ]];then
44 sudo -H -u postgres psql -c "ALTER ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
45else
46 sudo -H -u postgres psql -c "CREATE ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
47fi
48
49# Store password for tests
50cat << EOF > $HOME/.pgpass
51*:*:*:$DB_USER:$DB_PW
52EOF
53chmod 0600 $HOME/.pgpass
54
55# Now create our database
56psql -h 127.0.0.1 -U $DB_USER -d template1 -c "DROP DATABASE IF EXISTS openstack_citest"
57createdb -h 127.0.0.1 -U $DB_USER -l C -T template0 -E utf8 openstack_citest