summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Raiskup <praiskup@redhat.com>2014-10-17 13:12:23 +0200
committerPavel Raiskup <praiskup@redhat.com>2014-10-17 13:36:04 +0200
commitcfbbf52a744d0ce7ebcca49702924c6df7d6428c (patch)
tree644e51c2bff4448768d7b80d7ea10086ce81e75f
parentda115e5b4e306e107ec3193192d847bcffc5feec (diff)
downloadpostgresql-setup-tests-cfbbf52a744d0ce7ebcca49702924c6df7d6428c.tar.gz
postgresql-setup-tests-cfbbf52a744d0ce7ebcca49702924c6df7d6428c.tar.xz
postgresql-setup-tests-cfbbf52a744d0ce7ebcca49702924c6df7d6428c.zip
gen-data/tasks: add new 'locale-cz' task
This data should help with checking of 'postgresql --upgrade' behavior when the system locale changed significantly (from en_US.UTF-8 to cs_CZ.utf8). * gen-data/tasks/locale-cz/run.sh: New task file. * gen-data/generate (locale_prereq): Fix missing LANG= prefix in expected locale. Quote current/expected locale strings in error output. (single_task): Adjust $INDENT in sub-shell to not affect subsequent calls. Create tarball in $OUTPUTDIR rather than in `pwd`. Introduce hook_end callback. (generate_tasks): Use dynamic list of tasks.
-rwxr-xr-xgen-data/generate18
-rw-r--r--gen-data/tasks/locale-cz/run.sh18
2 files changed, 31 insertions, 5 deletions
diff --git a/gen-data/generate b/gen-data/generate
index bf9cce3..d8ead6b 100755
--- a/gen-data/generate
+++ b/gen-data/generate
@@ -2,6 +2,7 @@
GEN_DATADIR=/var/lib/pgsql/data
CACHEDIR=/var/cache/dbt
+OUTPUTDIR="$(pwd)/results"
SRCDIR="$(pwd)"
DEBUG=1
CHECK_LOCALE=1
@@ -48,10 +49,10 @@ run_if_defined()
locale_prereq()
{
- local default_locale="en_US.UTF-8"
+ local default_locale="LANG=en_US.UTF-8"
local current_locale="$(cat /etc/locale.conf)"
test "$current_locale" = "$default_locale" \
- || die "bad locale $current_locale, should be $default_locale"
+ || die "bad locale '$current_locale', should be '$default_locale'"
}
single_task()
@@ -59,9 +60,9 @@ single_task()
local task="$1"
info "running task $task"
- INDENT=" "
(
+ INDENT=" "
. "$SRCDIR/databases/pagila.sh" || die "pagila incl fail"
. "$SRCDIR/$task" || die "include fail"
@@ -87,25 +88,32 @@ single_task()
debug "stopping server"
service postgresql stop &>/dev/null || die "can't stop postgresql"
- tarball="$(pwd)/$task_name.tar.gz"
+ tarball="$OUTPUTDIR/$task_name.tar.gz"
tar -czf "$tarball" -C /var/lib/pgsql/ data
info "result tarball $tarball"
rm -rf "$tmpdir"
+
debug "data removal"
rm -rf "$GEN_DATADIR"
+
+ run_if_defined "hook_end"
)
}
generate_tasks()
{
- single_task tasks/basic/run.sh
+ find ./tasks -name run.sh | while read line; do
+ single_task "$line"
+ done
}
main()
{
test "$UID" -ne 0 && die "run under 'root' user"
+ test -d "$OUTPUTDIR" || die "$OUTPUTDIR does not seem to be directory"
+
service postgresql status &>/dev/null
test $? -ne 3 && die "stop the postgresql server"
diff --git a/gen-data/tasks/locale-cz/run.sh b/gen-data/tasks/locale-cz/run.sh
new file mode 100644
index 0000000..12f0a48
--- /dev/null
+++ b/gen-data/tasks/locale-cz/run.sh
@@ -0,0 +1,18 @@
+export task_name="cz-locale"
+
+hook_start()
+{
+ export CHECK_LOCALE=0
+ ___old_locale="$(cat /etc/locale.conf)"
+ echo "LANG=cs_CZ.UTF-8" > /etc/locale.conf
+}
+
+hook_end()
+{
+ echo "$___old_locale" > /etc/locale.conf
+}
+
+run()
+{
+ create_pagila
+}