X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fget-data-psql.at;h=6e5b1a0a26015cddb010f2029d9b0c0326975260;hb=be14f24529e64b7d1dad2b148b4d254da38160de;hp=8aa777c514ae27511dd0e519100d44fdafdb4015;hpb=12594449b5aad90c16f26dc33b017f7385b4e4cb;p=pspp diff --git a/tests/language/data-io/get-data-psql.at b/tests/language/data-io/get-data-psql.at index 8aa777c514..6e5b1a0a26 100644 --- a/tests/language/data-io/get-data-psql.at +++ b/tests/language/data-io/get-data-psql.at @@ -1,21 +1,36 @@ +dnl PSPP - a program for statistical analysis. +dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl +dnl This program is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see . +dnl AT_BANNER([GET DATA /TYPE=PSQL]) -m4_define([INIT_PSQL], +m4_define([INIT_PSQL], [AT_SKIP_IF([test "$PSQL_SUPPORT" = no]) - PATH=$PG_PATH:$PATH - export PATH PGDATA=`pwd`/cluster export PGDATA - PGHOST=`pwd` - export PGHOST PGPORT=$PG_PORT export PGPORT - AT_CHECK([initdb -A trust], [0], [ignore]) - AT_CHECK([pg_ctl start -w -o "-k `pwd` -h ''"], [0], [ignore]) + socket_dir=`mktemp -d` + PGHOST="$socket_dir" + export PGHOST + AT_CHECK([PATH=$PG_PATH:$PATH initdb -A trust], [0], [ignore]) + AT_CHECK([PATH=$PG_PATH:$PATH pg_ctl start -w -o "-k $socket_dir -h ''"], [0], [ignore]) trap 'CLEANUP_PSQL' 0 - AT_CHECK([createdb -h "`pwd`" -p $PG_PORT $PG_DBASE], + AT_CHECK([PATH=$PG_PATH:$PATH createdb -h "$socket_dir" -p $PG_PORT $PG_DBASE], [0], [ignore], [ignore]) - AT_DATA([populate.sql], + AT_DATA([populate.sql], [CREATE TABLE empty (a int, b date, c numeric(23, 4)); -- a largeish table to check big queries work ok. @@ -43,7 +58,7 @@ m4_define([INIT_PSQL], timestamp timestamp , timestamptz timestamptz , interval interval , - timetz timetz + timetz timetz ); INSERT INTO thing VALUES ( @@ -115,17 +130,28 @@ m4_define([INIT_PSQL], '01:05:02 UTC-7' ); ]) - AT_CHECK([psql -h "`pwd`" -p $PG_PORT $PG_DBASE < populate.sql], + + # On Debian, the psql binary in the postgres bindir won't work because + # it needs libreadline to be LD_PRELOADed into it. The psql in the + # normal $PATH works fine though. + if (PATH=$PG_PATH:$PATH psql -V) >/dev/null 2>&1; then + psql () { + PATH=$PG_PATH:$PATH command psql "$$@@" + } + fi + AT_CHECK([psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < populate.sql], [0], [ignore])]) -m4_define([CLEANUP_PSQL], [pg_ctl stop -W -o "-k `pwd` -h ''"]) +m4_define([CLEANUP_PSQL], [PATH=$PG_PATH:$PATH pg_ctl stop -W -o "-k $socket_dir -h ''"]) -AT_SETUP([GET DATA /TYPE=PSQL -- ordinary query]) +AT_SETUP([GET DATA /TYPE=PSQL]) +AT_KEYWORDS([slow]) INIT_PSQL -AT_CAPTURE_FILE([get-data.sps]) -AT_CHECK([cat > get-data.sps < ordinary-query.sps < get-data.sps < empty-result.sps < get-data.sps < large-result.sps < get-data.sps <