setup_owncloud.sh
3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/bin/bash
#
# ownCloud
#
# @author Thomas Müller
# @copyright 2012, 2013 Thomas Müller thomas.mueller@tmit.eu
#
if [ "$DB" == "mysql" ] ; then
DATABASENAME=contacts_test
DATABASEUSER=contacts_test
ADMINLOGIN=travis
BASEDIR=$PWD
mysql -e 'CREATE DATABASE IF NOT EXISTS contacts_test'
# mysql -e "GRANT ALL PRIVILEGES ON *.* to admin@'%' identified by 'admin';"
# mysql -e "GRANT ALL PRIVILEGES ON *.* to admin@localhost identified by 'admin';"
mysql -e "UPDATE mysql.user SET Password=PASSWORD('travis') WHERE User='travis' AND Host='localhost';"
mysql -e "FLUSH PRIVILEGES;"
fi
if [ "$DB" == "sqlite" ] ; then
DATABASENAME=contacts_test
DATABASEUSER=contacts_test
ADMINLOGIN=oc_autotest
BASEDIR=$PWD
fi
DATADIR=$BASEDIR/data-autotest
echo "Using database $DATABASENAME with $DB"
# create autoconfig for sqlite, mysql and postgresql
cat > $BASEDIR/tests/autoconfig-sqlite.php <<DELIM
<?php
\$AUTOCONFIG = array (
'installed' => false,
'dbtype' => 'sqlite',
'dbtableprefix' => 'oc_',
'adminlogin' => '$ADMINLOGIN',
'adminpass' => 'admin',
'directory' => '$DATADIR',
);
DELIM
cat > $BASEDIR/tests/autoconfig-mysql.php <<DELIM
<?php
\$AUTOCONFIG = array (
'installed' => false,
'dbtype' => 'mysql',
'dbtableprefix' => 'oc_',
'adminlogin' => '$ADMINLOGIN',
'adminpass' => 'travis',
'directory' => '$DATADIR',
'dbuser' => 'travis',
'dbname' => '$DATABASENAME',
'dbhost' => 'localhost',
'dbpass' => 'travis',
);
DELIM
cat > $BASEDIR/tests/autoconfig-pgsql.php <<DELIM
<?php
\$AUTOCONFIG = array (
'installed' => false,
'dbtype' => 'pgsql',
'dbtableprefix' => 'oc_',
'adminlogin' => '$ADMINLOGIN',
'adminpass' => 'admin',
'directory' => '$DATADIR',
'dbuser' => '$DATABASEUSER',
'dbname' => '$DATABASENAME',
'dbhost' => 'localhost',
'dbpass' => 'owncloud',
);
DELIM
function setup_db {
echo "Setup environment for $DB testing ..."
# back to root folder
cd $BASEDIR
# reset data directory
rm -rf $DATADIR
mkdir $DATADIR
#rm -rf config/config.php
cp $BASEDIR/tests/preseed-config.php $BASEDIR/../core/config/config.php
# copy autoconfig
cat $BASEDIR/tests/autoconfig-$DB.php
cp $BASEDIR/tests/autoconfig-$DB.php $BASEDIR/../core/config/autoconfig.php
ls -l $BASEDIR/../core/config/
# trigger installation
cd $BASEDIR/../core/
php -f index.php
cd -
#test execution
echo "Testing with $DB ..."
cd tests
}
#
# start test execution
#
setup_db '$DB'
ls $BASEDIR/tests/
ls $BASEDIR/../core/config/
cat $BASEDIR/../core/config/config.php
ls $BASEDIR/../core/data/
cat $BASEDIR/../core/data/owncloud.log
#
# NOTES on mysql:
# - CREATE DATABASE oc_autotest;
# - CREATE USER 'oc_autotest'@'localhost' IDENTIFIED BY 'owncloud';
# - grant all on oc_autotest.* to 'oc_autotest'@'localhost';
#
# - for parallel executor support with EXECUTOR_NUMBER=0:
# - CREATE DATABASE oc_autotest0;
# - CREATE USER 'oc_autotest0'@'localhost' IDENTIFIED BY 'owncloud';
# - grant all on oc_autotest0.* to 'oc_autotest0'@'localhost';
#
# NOTES on pgsql:
# - su - postgres
# - createuser -P oc_autotest (enter password and enable superuser)
# - to enable dropdb I decided to add following line to pg_hba.conf (this is not the safest way but I don't care for the testing machine):
# local all all trust
#
# - for parallel executor support with EXECUTOR_NUMBER=0:
# - createuser -P oc_autotest0 (enter password and enable superuser)
#
# NOTES on oci:
# - it's a pure nightmare to install Oracle on a Linux-System
# - DON'T TRY THIS AT HOME!
# - if you really need it: we feel sorry for you
#