180 lines
4.9 KiB
Bash
Executable File
180 lines
4.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
CIDIR=$(dirname $(readlink -fn $0))
|
|
INITIALIZE_DB=0
|
|
source $CIDIR/ci.functions
|
|
ASTTOP=$(readlink -fn $CIDIR/../../)
|
|
|
|
set -e
|
|
|
|
POSTGRES_PID=`pidof postgres || : `
|
|
|
|
if [ -z "$POSTGRES_PID" ] ; then
|
|
if [ -x /usr/local/bin/postgresql-start ] ; then
|
|
/usr/local/bin/postgresql-start
|
|
fi
|
|
fi
|
|
|
|
POSTGRES_PID=`pidof postgres || : `
|
|
if [ -z "$POSTGRES_PID" ] ; then
|
|
echo "Postgres isn't running. It must be started manually before this test can continue."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $INITIALIZE_DB -gt 0 ] ; then
|
|
echo "(re)Initializing Database"
|
|
|
|
sudo -u postgres dropdb -e asterisk_test >/dev/null 2>&1 || :
|
|
sudo -u postgres dropuser -e asterisk_test >/dev/null 2>&1 || :
|
|
sudo -u postgres createuser --username=postgres -RDIElS asterisk_test
|
|
sudo -u postgres createdb --username=postgres -E UTF-8 -O asterisk_test asterisk_test
|
|
|
|
echo "Configuring ODBC"
|
|
|
|
sudo odbcinst -u -d -n "PostgreSQL-Asterisk-Test"
|
|
|
|
sudo odbcinst -i -d -n "PostgreSQL-Asterisk-Test" -f /dev/stdin <<-EOF
|
|
[PostgreSQL-Asterisk-Test]
|
|
Description=PostgreSQL ODBC driver (Unicode version)
|
|
Driver=psqlodbcw.so
|
|
Setup=libodbcpsqlS.so
|
|
Debug=0
|
|
CommLog=1
|
|
UsageCount=1
|
|
EOF
|
|
|
|
sudo odbcinst -u -s -l -n asterisk-connector-test
|
|
sudo odbcinst -i -s -l -n asterisk-connector-test -f /dev/stdin <<-EOF
|
|
[asterisk-connector-test]
|
|
Description = PostgreSQL connection to 'asterisk' database
|
|
Driver = PostgreSQL-Asterisk-Test
|
|
Database = asterisk_test
|
|
Servername = 127.0.0.1
|
|
UserName = asterisk_test
|
|
Port = 5432
|
|
Protocol = 9.1
|
|
ReadOnly = No
|
|
RowVersioning = No
|
|
ShowSystemTables = No
|
|
ShowOldColumn = No
|
|
FakeOldIndex = No
|
|
ConnSettings =
|
|
EOF
|
|
fi
|
|
|
|
cat >/tmp/config.ini <<-EOF
|
|
[alembic]
|
|
script_location = config
|
|
sqlalchemy.url = postgresql://asterisk_test@localhost/asterisk_test
|
|
|
|
[loggers]
|
|
keys = root,sqlalchemy,alembic
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = WARN
|
|
handlers = console
|
|
qualname =
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARN
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[logger_alembic]
|
|
level = INFO
|
|
handlers =
|
|
qualname = alembic
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
|
datefmt = %H:%M:%S
|
|
EOF
|
|
|
|
pushd $ASTTOP/contrib/ast-db-manage
|
|
|
|
psql --username=asterisk_test --host=localhost --db=asterisk_test --command='DROP OWNED BY asterisk_test CASCADE'
|
|
alembic -c /tmp/config.ini upgrade head
|
|
rm -rf /tmp/config.ini || :
|
|
|
|
popd
|
|
|
|
cp test-config.yaml test-config.orig.yaml
|
|
|
|
cat >test-config.yaml <<-EOF
|
|
global-settings:
|
|
test-configuration: config-realtime
|
|
|
|
condition-definitions:
|
|
-
|
|
name: 'threads'
|
|
pre:
|
|
typename: 'thread_test_condition.ThreadPreTestCondition'
|
|
post:
|
|
typename: 'thread_test_condition.ThreadPostTestCondition'
|
|
related-type: 'thread_test_condition.ThreadPreTestCondition'
|
|
-
|
|
name: 'sip-dialogs'
|
|
pre:
|
|
typename: 'sip_dialog_test_condition.SipDialogPreTestCondition'
|
|
post:
|
|
typename: 'sip_dialog_test_condition.SipDialogPostTestCondition'
|
|
-
|
|
name: 'locks'
|
|
pre:
|
|
typename: 'lock_test_condition.LockTestCondition'
|
|
post:
|
|
typename: 'lock_test_condition.LockTestCondition'
|
|
-
|
|
name: 'file-descriptors'
|
|
pre:
|
|
typename: 'fd_test_condition.FdPreTestCondition'
|
|
post:
|
|
typename: 'fd_test_condition.FdPostTestCondition'
|
|
related-type: 'fd_test_condition.FdPreTestCondition'
|
|
-
|
|
name: 'channels'
|
|
pre:
|
|
typename: 'channel_test_condition.ChannelTestCondition'
|
|
post:
|
|
typename: 'channel_test_condition.ChannelTestCondition'
|
|
-
|
|
name: 'sip-channels'
|
|
pre:
|
|
typename: 'sip_channel_test_condition.SipChannelTestCondition'
|
|
post:
|
|
typename: 'sip_channel_test_condition.SipChannelTestCondition'
|
|
-
|
|
name: 'memory'
|
|
pre:
|
|
typename: 'memory_test_condition.MemoryPreTestCondition'
|
|
post:
|
|
typename: 'memory_test_condition.MemoryPostTestCondition'
|
|
related-type: 'memory_test_condition.MemoryPreTestCondition'
|
|
|
|
config-realtime:
|
|
test-modules:
|
|
modules:
|
|
-
|
|
typename: realtime_converter.RealtimeConverter
|
|
config-section: realtime-config
|
|
|
|
realtime-config:
|
|
username: "asterisk_test"
|
|
password: "asterisk_test"
|
|
host: "localhost"
|
|
db: "asterisk_test"
|
|
dsn: "asterisk-connector-test"
|
|
EOF
|
|
|