X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fget-data-spreadsheet.at;h=b6a18ddf2c5e5c21c8ace8b3295e7f2abf2b6d38;hb=1adcef1524f532e87238790bc2a255e6707afce9;hp=19b8964dcacdf4b8c2e980edfbfe2badd3534c88;hpb=2f7b367bf796c63c595ac837b716cce535ffd5bf;p=pspp
diff --git a/tests/language/data-io/get-data-spreadsheet.at b/tests/language/data-io/get-data-spreadsheet.at
index 19b8964dca..b6a18ddf2c 100644
--- a/tests/language/data-io/get-data-spreadsheet.at
+++ b/tests/language/data-io/get-data-spreadsheet.at
@@ -3,7 +3,7 @@ m4_define([SPREADSHEET_TEST_PREP],[dnl
m4_if($1,[GNM],[dnl
AT_CHECK([gzip -c $top_srcdir/tests/language/data-io/Book1.gnm.unzipped > Book1.gnumeric])dnl
m4_define([testsheet],[Book1.gnumeric])dnl
- AT_SKIP_IF([test n$GNM_SUPPORT != nyes])dnl
+ AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])dnl
]) dnl
m4_if($1,[ODS],[dnl
AT_CHECK([cp $top_srcdir/tests/language/data-io/test.ods test.ods])dnl
@@ -23,19 +23,10 @@ LIST.
])
AT_CHECK([pspp -o pspp.csv get-data.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-VAR001,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-VAR002,Format: A8,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-VAR003,Format: F8.2,,3
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+VAR001,Format: F8.2,1
+VAR002,Format: A8,2
+VAR003,Format: F8.2,3
Table: Data List
VAR001,VAR002,VAR003
@@ -56,19 +47,10 @@ LIST.
])
AT_CHECK([pspp -o pspp.csv get-data.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-V1,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-V2,Format: A8,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-VAR001,Format: F8.2,,3
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+V1,Format: F8.2,1
+V2,Format: A8,2
+VAR001,Format: F8.2,3
Table: Data List
V1,V2,VAR001
@@ -87,21 +69,13 @@ GET DATA /TYPE=$1 /FILE='testsheet' /SHEET=index 3.
DISPLAY VARIABLES.
LIST.
])
-AT_CHECK([pspp -o pspp.csv get-data.sps])
-AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-name,Format: A8,,1
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-id,Format: F8.2,,2
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-height,Format: F8.2,,3
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+AT_CHECK([pspp -O format=csv get-data.sps], [0], [dnl
+Variable,Description,Position
+name,Format: A8,1
+id,Format: F8.2,2
+height,Format: F8.2,3
+
+warning: Cannot convert the value in the spreadsheet cell C4 to format (F8.2): Field contents are not numeric.
Table: Data List
name,id,height
@@ -122,23 +96,11 @@ LIST.
])
AT_CHECK([pspp -o pspp.csv get-data.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variable,Description,,Position
-vone,Format: F8.2,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-vtwo,Format: F8.2,,2
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-vthree,Format: A8,,3
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-v4,Format: F8.2,,4
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
+Variable,Description,Position
+vone,Format: F8.2,1
+vtwo,Format: F8.2,2
+vthree,Format: A8,3
+v4,Format: F8.2,4
Table: Data List
vone,vtwo,vthree,v4
@@ -147,6 +109,22 @@ vone,vtwo,vthree,v4
])
AT_CLEANUP
+dnl This syntax doesn't do anything particularly useful.
+dnl It has been seen to cause a few crashes, so we check here that it
+dnl doesn't do anthing bad.
+AT_SETUP([GET DATA /TYPE=$1 with no options])
+SPREADSHEET_TEST_PREP($1)
+AT_DATA([get-data.sps], [dnl
+* This sheet is empty
+GET DATA /TYPE=$1 /FILE='testsheet'.
+DISPLAY DICTIONARY.
+LIST.
+])
+AT_CHECK([pspp -o pspp.csv get-data.sps], [0], [ignore])
+AT_CLEANUP
+
+
+
AT_SETUP([GET DATA /TYPE=$1 with empty sheet])
SPREADSHEET_TEST_PREP($1)
AT_DATA([get-data.sps], [dnl
@@ -175,7 +153,225 @@ AT_BANNER([GET DATA Spreadsheet /TYPE=GNM])
CHECK_SPREADSHEET_READER([GNM])
+dnl Check for a bug where gnumeric files were interpreted incorrectly
+AT_SETUP([GET DATA /TYPE=GNM sheet index bug])
+AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])
+AT_DATA([minimal3.gnumeric],[dnl
+
+
+
+
+ Sheet1
+ Sheet2
+ Sheet3
+
+
+
+ Sheet1
+ 2
+ 3
+
+
+ Print_Area
+ #REF!
+ A1
+
+
+ Sheet_Title
+ "Sheet1"
+ A1
+
+
+
+
+
+
+
+
+
+
+ Name
+ x
+ y
+ Sheet One
+ 1
+ 2
+ foo
+ 3
+ 4
+ bar
+ 5
+ 6
+
+
+
+ Sheet2
+ 2
+ 2
+
+
+ Print_Area
+ #REF!
+ A1
+
+
+ Sheet_Title
+ "Sheet2"
+ A1
+
+
+
+
+
+
+
+
+
+
+
+ Comment
+ DOB
+ wealth
+ Sheet Two
+ 24/5/1966
+ 0.02
+ wee
+ 37145
+ 3000
+
+
+
+ Sheet3
+ 2
+ 2
+
+
+ Print_Area
+ #REF!
+ A1
+
+
+ Sheet_Title
+ "Sheet3"
+ A1
+
+
+
+
+
+
+
+
+
+
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+
+
+
+
+])
+
+AT_DATA([gnum.sps], [dnl
+GET DATA
+ /TYPE=GNM
+ /FILE='minimal3.gnumeric'
+ /SHEET=index 3
+ /READNAMES=off
+ .
+
+LIST.
+])
+
+AT_CHECK([pspp -O format=csv gnum.sps], [0], [dnl
+Table: Data List
+VAR001,VAR002,VAR003
+3 ,4.00,5.00
+6 ,7.00,8.00
+9 ,10.00,11.00
+])
+
+
+AT_CLEANUP
+
+
+dnl Check for a bug where certain gnumeric files failed an assertion
+AT_SETUP([GET DATA /TYPE=GNM assert-fail])
+AT_SKIP_IF([test n$GNM_READ_SUPPORT != nyes])
+AT_DATA([read.sps],[dnl
+GET DATA
+ /TYPE=GNM
+ /FILE='crash.gnumeric'
+ .
+list.
+])
+
+
+AT_DATA([crash.gnumeric],[dnl
+
+
+
+
+
+ Sheet1
+
+
+
+ Sheet1
+ 2
+ 4
+
+
+
+
+
+
+
+ one
+ two
+ 1
+ 2
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+])
+
+AT_CHECK([pspp -O format=csv read.sps], [0], [ignore])
+
+
+AT_CLEANUP
+
+
+
AT_BANNER([GET DATA Spreadsheet /TYPE=ODS])
CHECK_SPREADSHEET_READER([ODS])
+
+AT_SETUP([GET DATA /TYPE=ODS crash])
+AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes])
+
+
+AT_CHECK([cp $top_srcdir/tests/language/data-io/newone.ods this.ods])dnl
+
+AT_DATA([crash.sps],[dnl
+GET DATA /TYPE=ODS /FILE='this.ods' /CELLRANGE=RANGE 'A1:C8' /READNAMES=ON
+LIST.
+])
+
+AT_CHECK([pspp -O format=csv crash.sps], [0], [ignore])
+
+AT_CLEANUP
+