#!/bin/bash set -e set -x if [ "x$DB" = "xmysql" ]; then dbuser=travis mysql -u $dbuser -e 'create database ykval;' mysql -u $dbuser ykval < ykval-db.sql elif [ "x$DB" = "xpgsql" ]; then set +e sudo service postgresql status | grep -q 'online' if [ $? != 0 ]; then sudo service postgresql restart fi set -e dbuser=postgres psql -U $dbuser -c 'create database ykval;' psql -U $dbuser ykval < ykval-db.sql elif [ "x$DB" = "xsqlite" ]; then dbuser="" dblocation=`mktemp` sqlite3 $dblocation < ykval-db.sql sed -i "s,^.*YKVAL_DB_DSN.*$,\$baseParams['__YKVAL_DB_DSN__'] = \"sqlite:$dblocation\";," ykval-config.php else echo "unknown DB $DB" exit 1 fi cat > config-db.php << EOF EOF sudo mkdir -p /etc/yubico/val/ sudo chmod 0755 /etc/yubico/val/ sudo mv config-db.php /etc/yubico/val/ sudo perl travis/server.pl & echo '1,1,1383728711,EHmo8FMxuhumBlTinC4uYL0Mgwg=,,,' | php ykval-import-clients set +e function run_command () { id=$1 otp=$2 nonce=$3 echo '' | php -B "\$_SERVER = array('REMOTE_ADDR' => '127.0.0.1', 'QUERY_STRING' => 'id=$id&otp=$otp&nonce=$nonce', 'REQUEST_URI' => '/wsapi/2.0/verify');\$_GET = array('otp' => '$otp', 'id' => '$id', 'nonce' => '$nonce');" -F ykval-verify.php } id="1" otp="idkfefrdhtrutjduvtcjbfeuvhehdvjjlbchtlenfgku" nonce="kakakakakakakakakakakaka" run_command $id $otp $nonce | grep -q 'status=OK' if [ $? != 0 ]; then sudo tail /var/log/syslog exit 1 else echo "Success 1" fi id="2" run_command $id $otp $nonce | grep -q 'status=NO_SUCH_CLIENT' if [ $? != 0 ]; then sudo tail /var/log/syslog exit 1 else echo "Success 1" fi id="1" run_command $id $otp $nonce | grep -q 'status=REPLAYED_REQUEST' if [ $? != 0 ]; then sudo tail /var/log/syslog exit 1 else echo "Success 2" fi nonce="bakabakabakabaka" run_command $id $otp $nonce | grep -q 'status=REPLAYED_OTP' if [ $? != 0 ]; then sudo tail /var/log/syslog exit 1 else echo "Success 3" fi num=`php ykval-export | wc -l` if [ $num != 1 ]; then echo "failed exporting" php ykval-export exit 1 else echo "Success export" fi num=`php ykval-export-clients | wc -l` if [ $num != 1 ]; then echo "failed exporting clients" php ykval-export-clients exit 1 else echo "Success export-clients" fi