tests: move common test code to under tests/*.sh
authorMarko Kreen <markokr@gmail.com>
Wed, 13 May 2009 10:22:49 +0000 (13:22 +0300)
committerMarko Kreen <markokr@gmail.com>
Mon, 1 Jun 2009 07:13:47 +0000 (10:13 +0300)
tests/londiste/regen.sh
tests/merge/regen.sh
tests/testlib.sh [new file with mode: 0755]
tests/zcheck.sh [moved from tests/merge/zcheck.sh with 100% similarity]
tests/zstop.sh [moved from tests/merge/zstop.sh with 100% similarity]

index f0646f6a6693523e7f627eb6896e9cce77ee475b..9db4df8c033b5f285f49cd25f037b0aab31c713f 100755 (executable)
@@ -1,39 +1,6 @@
 #! /bin/sh
 
-. ../env.sh
-
-mkdir -p log pid conf
-
-./zstop.sh
-
-v=
-v=-q
-v=-v
-
-cleardb() {
-  echo "Clearing database $1"
-  psql -q -d $1 -c '
-      set client_min_messages=warning;
-      drop schema if exists londiste cascade;
-      drop schema if exists pgq_ext cascade;
-      drop schema if exists pgq_node cascade;
-      drop schema if exists pgq cascade;
-      drop table if exists mytable;
-      drop table if exists footable;
-      drop sequence if exists footable_id_seq;
-  '
-}
-
-run() {
-  echo "$ $*"
-  "$@"
-}
-
-msg() {
-  echo "##"
-  echo "## $*"
-  echo "##"
-}
+. ../testlib.sh
 
 db_list="db1 db2 db3 db4 db5"
 
@@ -128,7 +95,7 @@ run psql -d db3 -c '\d mytable'
 run psql -d db3 -c 'select * from mytable'
 
 run sleep 10
-./zcheck.sh
+../zcheck.sh
 msg "Change topology"
 run londiste $v conf/londiste_db1.ini status
 run londiste $v conf/londiste_db3.ini change-provider --provider=node1
@@ -137,14 +104,14 @@ run londiste $v conf/londiste_db1.ini switchover --target=node2
 run londiste $v conf/londiste_db1.ini status
 
 run sleep 10
-./zcheck.sh
+../zcheck.sh
 
 msg "Change topology"
-ps aux | grep "postres[:].* db2 " | awk '{print $2}' | xargs kill
+ps aux | grep "postres[:].* db2 " | awk '{print $2}' | xargs -r kill
 run psql -d db1 -c 'alter database db2 rename to db2x'
 run londiste $v conf/londiste_db4.ini takeover db2 --dead
 run londiste $v conf/londiste_db1.ini status
 
 run sleep 10
-./zcheck.sh
+../zcheck.sh
 
index 2eb376c748341029595b59affb1e5c08db67f289..e8199385f39fd6fb2235bfc83f8f012f79146dc1 100755 (executable)
@@ -1,32 +1,8 @@
 #! /bin/sh
 
-. ../env.sh
-
-mkdir -p log pid conf
-
-./zstop.sh
-
-v=
-v=-q
-v=-v
-
-cleardb() {
-  echo "Clearing database $1"
-  psql -q -d $1 -c '
-      set client_min_messages=warning;
-      drop schema if exists londiste cascade;
-      drop schema if exists pgq_node cascade;
-      drop schema if exists pgq cascade;
-      drop table if exists mydata;
-      drop table if exists footable;
-      drop sequence if exists footable_id_seq;
-  '
-}
-
-run() {
-  echo "$ $*"
-  "$@"
-}
+. ../testlib.sh
+
+title "Merge"
 
 part_list="part1 part2 part3 part4"
 full_list="full1 full2 full3 full4"
@@ -38,7 +14,13 @@ for dst in $full_list; do
 done
 all_list="$part_list $full_list"
 
-echo " * create configs * "
+for db in $part_list $full_list; do
+  cleardb $db
+done
+msg "clean logs"
+rm -f log/*.log
+
+msg "Create configs"
 
 # create ticker conf
 for db in $all_list; do
@@ -93,31 +75,29 @@ EOF
 
 done
 
-
-
-for db in $part_list $full_list; do
-  cleardb $db
-done
-
-echo "clean logs"
-rm -f log/*.log
-
 set -e
 
+msg "Install PgQ"
+
 for db in $all_list; do
   run pgqadm $v conf/ticker_$db.ini install
 done
 
+msg "Create nodes for merged queue"
+
 run londiste $v conf/londiste_full1.ini create-root fnode1 'dbname=full1'
 run londiste $v conf/londiste_full2.ini create-branch fnode2 'dbname=full2' --provider='dbname=full1'
 run londiste $v conf/londiste_full3.ini create-branch fnode3 'dbname=full3' --provider='dbname=full1'
 run londiste $v conf/londiste_full4.ini create-leaf fnode4 'dbname=full4' --provider='dbname=full2'
 
+msg "Create nodes for partition queues"
+
 run londiste $v conf/londiste_part1.ini create-root p1root 'dbname=part1'
 run londiste $v conf/londiste_part2.ini create-root p2root 'dbname=part2'
 run londiste $v conf/londiste_part3.ini create-root p3root 'dbname=part3'
 run londiste $v conf/londiste_part4.ini create-root p4root 'dbname=part4'
 
+msg "Create merge nodes for partition queues"
 
 for dst in full1 full2; do
   for src in $part_list; do
@@ -127,25 +107,41 @@ for dst in full1 full2; do
   done
 done
 
+
+msg "Launch tickers"
 for db in $all_list; do
   run pgqadm $v -d conf/ticker_$db.ini ticker
+done
+
+msg "Launch londiste replay"
+for db in $all_list; do
   run londiste $v -d conf/londiste_$db.ini replay
 done
 
+msg "Launch merge londiste"
 for dst in full1 full2; do
   for src in $part_list; do
     run londiste $v -d conf/londiste_${src}_${dst}.ini replay
   done
 done
 
+msg "Create table in partition nodes"
 for db in $part_list; do
   run psql $db -c "create table mydata (id int4 primary key, data text)"
+done
+
+msg "Register table in partition nodes"
+for db in $part_list; do
   run londiste $v conf/londiste_$db.ini add-table mydata
 done
+
+
+msg "Insert few rows"
 for n in 1 2 3 4; do
   run psql -d part$n -c "insert into mydata values ($n, 'part$n')"
 done
 
+msg "Create table and register it in merge nodes"
 for db in full1; do
   run psql $db -c "create table mydata (id int4 primary key, data text)"
   run londiste $v conf/londiste_$db.ini add-table mydata
@@ -154,14 +150,17 @@ for db in full1; do
   done
 done
 
+msg "Sleep a bit"
 run sleep 10
 
+msg "Insert few rows"
 for n in 1 2 3 4; do
   run psql -d part$n -c "insert into mydata values (4 + $n, 'part$n')"
 done
 
 run sleep 10
 
+msg "Now check if data apprered"
 for db in full1; do
 run psql -d $db -c "select * from mydata order by id"
 run psql -d $db -c "select * from londiste.table_info order by queue_name"
@@ -169,5 +168,5 @@ done
 run psql -d full1 -c "select * from londiste.get_table_list('replika_part1')"
 run psql -d full1 -c "select * from londiste.get_table_list('replika_part2')"
 
-./zcheck.sh
+../zcheck.sh
 
diff --git a/tests/testlib.sh b/tests/testlib.sh
new file mode 100755 (executable)
index 0000000..d703fba
--- /dev/null
@@ -0,0 +1,52 @@
+#! /bin/sh
+
+. ../env.sh
+
+mkdir -p log pid conf
+
+../zstop.sh
+
+v=
+v=-v
+v=-q
+
+cleardb() {
+  echo "Clearing database $1"
+  psql -q -d $1 -c "
+      set client_min_messages=warning;
+      drop schema if exists londiste cascade;
+      drop schema if exists pgq_node cascade;
+      drop schema if exists pgq cascade;
+  "
+  psql -q -t -d db1 -c "
+    select 'drop table ' || relname || ';' from pg_class c, pg_namespace n
+    where relnamespace = n.oid and n.nspname = 'public' and c.relkind='r';
+  " | psql -q -d $1
+  psql -q -t -d db1 -c "
+    select 'drop sequence ' || relname || ';' from pg_class c, pg_namespace n
+    where relnamespace = n.oid and n.nspname = 'public' and c.relkind='S';
+  " | psql -q -d $1
+}
+
+clearlogs() {
+  echo "clean logs"
+  rm -f log/*.log log/*.log.[0-9]
+}
+
+title() {
+  echo ""
+  echo "=" "$@" "="
+  echo ""
+}
+
+run() {
+  echo "    $ $*"
+  "$@" 2>&1 | sed 's/^/    /'
+}
+
+msg() {
+  echo ""
+  echo "$@"
+  echo ""
+}
+
similarity index 100%
rename from tests/merge/zcheck.sh
rename to tests/zcheck.sh
similarity index 100%
rename from tests/merge/zstop.sh
rename to tests/zstop.sh