SYSFILE INFO: Improve output formatting by using nested tables.
[pspp] / tests / language / data-io / get-data-psql.at
index 8aa777c514ae27511dd0e519100d44fdafdb4015..692de0957b242bee86df49a0a0f388061547a77c 100644 (file)
@@ -6,14 +6,15 @@ m4_define([INIT_PSQL],
    export PATH
    PGDATA=`pwd`/cluster
    export PGDATA
-   PGHOST=`pwd`
-   export PGHOST
    PGPORT=$PG_PORT
    export PGPORT
+   socket_dir=`mktemp -d`
+   PGHOST="$socket_dir"
+   export PGHOST
    AT_CHECK([initdb -A trust], [0], [ignore])
-   AT_CHECK([pg_ctl start -w -o "-k `pwd` -h ''"], [0], [ignore])
+   AT_CHECK([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([createdb -h "$socket_dir" -p $PG_PORT $PG_DBASE],
       [0], [ignore], [ignore])
    AT_DATA([populate.sql], 
      [CREATE TABLE empty (a int, b date, c numeric(23, 4));
@@ -115,17 +116,18 @@ m4_define([INIT_PSQL],
        '01:05:02 UTC-7'
       );
 ])
-   AT_CHECK([psql -h "`pwd`" -p $PG_PORT $PG_DBASE < populate.sql],
+   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], [pg_ctl stop -W -o "-k $socket_dir -h ''"])
 
-AT_SETUP([GET DATA /TYPE=PSQL -- ordinary query])
+AT_SETUP([GET DATA /TYPE=PSQL])
 INIT_PSQL
-AT_CAPTURE_FILE([get-data.sps])
-AT_CHECK([cat > get-data.sps <<EOF
+
+dnl Test with an ordinary query.
+AT_CHECK([cat > ordinary-query.sps <<EOF
 GET DATA /TYPE=psql 
-       /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+       /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
        /UNENCRYPTED
        /SQL="select * from thing".
 
@@ -134,97 +136,31 @@ DISPLAY DICTIONARY.
 LIST.
 EOF
 ])
-AT_CHECK([pspp -o pspp.csv get-data.sps])
+AT_CHECK([pspp -o pspp.csv ordinary-query.sps])
 AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-bool,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-bytea,Format: AHEX2,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 1,,
-char,Format: A8,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-int8,Format: F8.2,,4
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-int2,Format: F8.2,,5
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-int4,Format: F8.2,,6
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-numeric,Format: E40.6,,7
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-text,Format: A16,,8
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 16,,
-oid,Format: F8.2,,9
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-float4,Format: F8.2,,10
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-float8,Format: F8.2,,11
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-money,Format: DOLLAR8.2,,12
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-pbchar,Format: A8,,13
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-varchar,Format: A8,,14
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-date,Format: DATE11,,15
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-time,Format: TIME11.0,,16
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timestamp,Format: DATETIME22.0,,17
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timestamptz,Format: DATETIME22.0,,18
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-interval,Format: DTIME13.0,,19
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-interval_months,Format: F3.0,,20
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timetz,Format: TIME11.0,,21
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-timetz_zone,Format: F8.2,,22
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+bool,Format: F8.2,1
+bytea,Format: AHEX2,2
+char,Format: A8,3
+int8,Format: F8.2,4
+int2,Format: F8.2,5
+int4,Format: F8.2,6
+numeric,Format: E40.6,7
+text,Format: A16,8
+oid,Format: F8.2,9
+float4,Format: F8.2,10
+float8,Format: F8.2,11
+money,Format: DOLLAR8.2,12
+pbchar,Format: A8,13
+varchar,Format: A8,14
+date,Format: DATE11,15
+time,Format: TIME11.0,16
+timestamp,Format: DATETIME22.0,17
+timestamptz,Format: DATETIME22.0,18
+interval,Format: DTIME13.0,19
+interval_months,Format: F3.0,20
+timetz,Format: TIME11.0,21
+timetz_zone,Format: F8.2,22
 
 Table: Data List
 bool,bytea,char,int8,int2,int4,numeric,text,oid,float4,float8,money,pbchar,varchar,date,time,timestamp,timestamptz,interval,interval_months,timetz,timetz_zone
@@ -232,14 +168,11 @@ bool,bytea,char,int8,int2,int4,numeric,text,oid,float4,float8,money,pbchar,varch
 .  ,20,,.  ,.  ,.  ,.          ,,.  ,.  ,.  ,.  ,,,.,.,.,.,.,.,.,.  @&t@
 1.00,31,b       ,1.00,1.00,1.00,6.553500E+004,that-long-text  ,.00,1.00,1.00,$1.23,b       ,B       ,10-JAN-1963,1:05:02,10-JAN-1963 23:58:00,10-JAN-1963 22:58:00,12 01:03:04,25,1:05:02,-7.00
 ])
-AT_CLEANUP
 
-AT_SETUP([GET DATA /TYPE=PSQL -- empty result set])
-INIT_PSQL
-AT_CAPTURE_FILE([get-data.sps])
-AT_CHECK([cat > get-data.sps <<EOF
+dnl Test query with empty result set.
+AT_CHECK([cat > empty-result.sps <<EOF
 GET DATA /TYPE=psql 
-       /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+       /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
        /UNENCRYPTED
        /SQL="select * from empty".
 
@@ -248,30 +181,18 @@ DISPLAY DICTIONARY.
 LIST.
 EOF
 ])
-AT_CHECK([pspp -o pspp.csv get-data.sps])
+AT_CHECK([pspp -o pspp.csv empty-result.sps])
 AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-a,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-b,Format: DATE11,,2
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-c,Format: E40.2,,3
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+a,Format: F8.2,1
+b,Format: DATE11,2
+c,Format: E40.2,3
 ])
-AT_CLEANUP
 
-AT_SETUP([GET DATA /TYPE=PSQL -- large result set])
-INIT_PSQL
-AT_CAPTURE_FILE([get-data.sps])
-AT_CHECK([cat > get-data.sps <<EOF
+dnl Test query with large result set.
+AT_CHECK([cat > large-result.sps <<EOF
 GET DATA /TYPE=psql 
-       /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+       /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
        /UNENCRYPTED
        /SQL="select * from large".
 
@@ -293,7 +214,7 @@ N OF CASES 6.
 LIST.
 EOF
 ])
-AT_CHECK([pspp -o pspp.csv get-data.sps])
+AT_CHECK([pspp -o pspp.csv large-result.sps])
 AT_CHECK([cat pspp.csv], [0], [dnl
 Table: Data List
 x,diff
@@ -313,12 +234,9 @@ x,diff
 996.00,1.00
 995.00,1.00
 ])
-AT_CLEANUP
 
 dnl Check for a bug caused by having string variables in the database,
 dnl all of which are null.
-AT_SETUP([GET DATA /TYPE=PSQL -- all-null string])
-INIT_PSQL
 AT_DATA([all-null-string.sql],
   [-- a table which has a text field containing only null, or zero
    -- length entries.
@@ -329,12 +247,12 @@ AT_DATA([all-null-string.sql],
 
    INSERT INTO foo VALUES (null, '');
 ])
-AT_CHECK([psql -h "`pwd`" -p $PG_PORT $PG_DBASE < all-null-string.sql],
+AT_CHECK([psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < all-null-string.sql],
   [0], [ignore])
 AT_CAPTURE_FILE([get-data.sps])
 AT_CHECK([cat > get-data.sps <<EOF
 GET DATA /TYPE=psql 
-       /CONNECT="host=$PGHOST port=$PGPORT dbname=$PG_DBASE"
+       /CONNECT="host=$socket_dir port=$PGPORT dbname=$PG_DBASE"
        /UNENCRYPTED
        /SQL="select * from foo".
 
@@ -345,4 +263,5 @@ EOF
 ])
 AT_CHECK([pspp -o pspp.csv get-data.sps])
 AT_CAPTURE_FILE([pspp.csv])
+rm -rf "$socket_dir"
 AT_CLEANUP