tests/simplecons - simple_consumer & simple_local_consumer tests
authorMarko Kreen <markokr@gmail.com>
Wed, 18 Jul 2012 09:27:51 +0000 (12:27 +0300)
committerMarko Kreen <markokr@gmail.com>
Wed, 18 Jul 2012 09:36:00 +0000 (12:36 +0300)
tests/simplecons/init.sh [new file with mode: 0755]
tests/simplecons/regen.sh [new file with mode: 0755]
tests/simplecons/schema.sql [new file with mode: 0644]

diff --git a/tests/simplecons/init.sh b/tests/simplecons/init.sh
new file mode 100755 (executable)
index 0000000..0b88415
--- /dev/null
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+. ../env.sh
+
+mkdir -p log pid
+
+dropdb qdb
+createdb qdb
+
diff --git a/tests/simplecons/regen.sh b/tests/simplecons/regen.sh
new file mode 100755 (executable)
index 0000000..f1fbf29
--- /dev/null
@@ -0,0 +1,69 @@
+#! /bin/sh
+
+. ../testlib.sh
+
+for db in qdb; do
+  cleardb $db
+done
+
+rm -f log/*.log pid/*.pid
+mkdir -p state
+rm -f state/*
+
+set -e
+
+title SimpleConsumer test
+
+title2 Initialization
+
+msg Install PgQ
+
+run_qadmin qdb "install pgq;"
+run psql -d qdb -f schema.sql
+
+msg Run ticker
+
+cat_file conf/pgqd.ini <<EOF
+[pgqd]
+database_list = qdb
+logfile = log/pgqd.log
+pidfile = pid/pgqd.pid
+EOF
+
+run pgqd -d conf/pgqd.ini
+
+msg Run consumer
+
+cat_file conf/simple1_qdb.ini <<EOF
+[simple_consumer3]
+queue_name = testqueue
+src_db = dbname=qdb
+dst_db = dbname=qdb
+dst_query = insert into logtable (script, event_id, data) values ('simplecons', %%(pgq.ev_id)s, %%(data)s);
+table_filter = qtable
+logfile = log/%(job_name)s.log
+pidfile = pid/%(job_name)s.pid
+local_tracking_file = state/%(job_name)s.tick
+EOF
+
+cat_file conf/simple2_qdb.ini <<EOF
+[simple_local_consumer3]
+queue_name = testqueue
+src_db = dbname=qdb
+dst_db = dbname=qdb
+dst_query = insert into logtable (script, event_id, data) values ('simplelocalcons', %%(pgq.ev_id)s, %%(data)s);
+table_filter = qtable
+logfile = log/%(job_name)s.log
+pidfile = pid/%(job_name)s.pid
+local_tracking_file = state/%(job_name)s.tick
+EOF
+
+
+run simple_consumer3 -v conf/simple1_qdb.ini --register
+run simple_consumer3 -v -d conf/simple1_qdb.ini
+run simple_local_consumer3 -v -d conf/simple2_qdb.ini
+
+run_sql qdb "insert into qtable values ('data1')"
+
+run sleep 10
+run cat log/*
diff --git a/tests/simplecons/schema.sql b/tests/simplecons/schema.sql
new file mode 100644 (file)
index 0000000..94b8931
--- /dev/null
@@ -0,0 +1,15 @@
+
+create table qtable (
+    data text
+);
+
+create trigger qtrigger before insert on qtable
+for each row execute procedure pgq.logutriga('testqueue');
+
+create table logtable (
+    event_id bigint,
+    script text,
+    data text
+);
+
+select pgq.create_queue('testqueue');