Fix PR10: Gcm_input may loose its input message
[gnucomo.git] / test / read_no_database
diff --git a/test/read_no_database b/test/read_no_database
new file mode 100755 (executable)
index 0000000..1579688
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+#
+#  Try to read a syslog file and store in a database that does not exist.
+#  gcm_input should return an error and save the input in an XML file.
+
+
+rm -f gcm_input.log
+
+createdb gnucomo_test
+result=1
+
+
+if psql gnucomo_test -q <../src/database/create.sql >/dev/null
+then
+   psql gnucomo_test -q -c "insert into object (objectname) values ('example1.gnucomo.test')"
+   ../src/gcm_input/gcm_input -c gnucomo_nodb -h example1.gnucomo.test -d 'sep 5 2002 20:30:45' <messages
+   result=$?
+   echo "gcm_input returned $result"
+
+   if [[ $result -eq 1 ]]
+   then
+      # check if nothing was stored in the (existing) database
+      NR_LOGS=`psql gnucomo_test -q -t -c "select count(*) from log"`
+      if [[ $NR_LOGS -eq 0 ]]
+      then
+         echo "No log entries in database"
+         result=0
+      fi
+      # check if the saved XML file exists
+      SAVEDFILE=`grep 'XML content stored' gcm_input.log |cut -d ' ' -f 12`
+      echo "Saved file is $SAVEDFILE"
+      if [[ ! -e $SAVEDFILE ]]
+      then
+         echo $SAVEDFILE does not exist.
+         result=2
+      fi
+      rm $SAVEDFILE   # cleanup
+   else
+      echo "gcm_input did not return an error"
+      result=1
+   fi
+   psql gnucomo_test -f ../src/database/destroy.sql -q
+else
+   echo Can not create test database
+fi
+
+dropdb gnucomo_test
+exit $result