From 32d067978fad2d73fb7e0010f5108b5262831bb4 Mon Sep 17 00:00:00 2001 From: Wilfried Moser Date: Mon, 11 Dec 1995 14:59:01 +0000 Subject: [PATCH] * builtins.exp, pr-5016.{ch,exp}, result.{ch,exp}, tests1.{ch,exp}: Enhance test cases. --- gdb/testsuite/gdb.chill/ChangeLog | 5 +++++ gdb/testsuite/gdb.chill/builtins.exp | 3 +++ gdb/testsuite/gdb.chill/pr-5016.ch | 2 +- gdb/testsuite/gdb.chill/pr-5016.exp | 4 +++- gdb/testsuite/gdb.chill/result.ch | 13 +++++++++++ gdb/testsuite/gdb.chill/result.exp | 9 ++++++++ gdb/testsuite/gdb.chill/tests1.ch | 33 +++++++++++++++++++++------- gdb/testsuite/gdb.chill/tests1.exp | 32 +++++++++++++++++---------- 8 files changed, 79 insertions(+), 22 deletions(-) diff --git a/gdb/testsuite/gdb.chill/ChangeLog b/gdb/testsuite/gdb.chill/ChangeLog index 6ca7cab986c..cd9c1613d22 100644 --- a/gdb/testsuite/gdb.chill/ChangeLog +++ b/gdb/testsuite/gdb.chill/ChangeLog @@ -1,3 +1,8 @@ +Mon Dec 11 06:57:07 1995 Wilfried Moser (Alcatel) + + * builtins.exp, pr-5016.{ch,exp}, result.{ch,exp}, + tests1.{ch,exp}: Enhance test cases. + Thu Dec 7 05:16:34 1995 Wilfried Moser (Alcatel) * builtins.ch, builtins.exp, Makefile.in: New test case. diff --git a/gdb/testsuite/gdb.chill/builtins.exp b/gdb/testsuite/gdb.chill/builtins.exp index 6248bba466b..e67c3e8aba7 100644 --- a/gdb/testsuite/gdb.chill/builtins.exp +++ b/gdb/testsuite/gdb.chill/builtins.exp @@ -274,12 +274,15 @@ proc test_length {} { # string expressions test_print_accept "print length(\"the quick brown fox ...\")" "23" test_print_accept "print length(B'010101010101')" "12" + test_print_accept "print length(\"foo \" // \"bar\")" "7" # check some failures setup_xfail "*-*-*" test_print_accept "print length(m_chars)" "typename in invalid context" setup_xfail "*-*-*" test_print_accept "print length(v_byte)" "bad argument to LENGTH builtin" + setup_xfail "*-*-*" + test_print_accept "print length(b'000000' // b'111111')" "12" } proc test_size {} { diff --git a/gdb/testsuite/gdb.chill/pr-5016.ch b/gdb/testsuite/gdb.chill/pr-5016.ch index a6829bf70c1..16f49e8f5f5 100644 --- a/gdb/testsuite/gdb.chill/pr-5016.ch +++ b/gdb/testsuite/gdb.chill/pr-5016.ch @@ -6,7 +6,7 @@ NEWMODE vector = ARRAY (m_index) INT; DCL a, b, c vector; dump: PROC( a vector LOC, c CHAR ); - DCL i m_index; + DCL i m_index := 5; DO FOR i IN m_index; WRITETEXT( STDOUT, "%C(%C)=%C ", c, i, a(i) ); OD; diff --git a/gdb/testsuite/gdb.chill/pr-5016.exp b/gdb/testsuite/gdb.chill/pr-5016.exp index a9e2e5308ef..bf57ead805c 100644 --- a/gdb/testsuite/gdb.chill/pr-5016.exp +++ b/gdb/testsuite/gdb.chill/pr-5016.exp @@ -50,11 +50,13 @@ proc do_tests {} { runto dump # Linux thinks type is "_cint" (and so does sparc-sun-sunos4, alpha-dec-osf2.0) - setup_xfail "i*86-*-linux*" "sparc-sun-sunos4*" "alpha-dec-osf2*" + #setup_xfail "i*86-*-linux*" "sparc-sun-sunos4*" "alpha-dec-osf2*" gdb_test "whatis i" "type = m_index" "whatis int-range" gdb_test_exact "ptype m_index" "type = RANGE (1:10)" "ptype m_index" gdb_test_exact "whatis a" "type = /*LOC*/ vector" gdb_test "ptype a" "type = /\\*LOC\\*/ ARRAY \\(1:10\\) (INT|int)" + send "step\n"; expect -re "$prompt $" + gdb_test_exact "whatis i" "type = long" "whatis loop counter i" } do_tests diff --git a/gdb/testsuite/gdb.chill/result.ch b/gdb/testsuite/gdb.chill/result.ch index 71e64005d52..b8c65e7d085 100644 --- a/gdb/testsuite/gdb.chill/result.ch +++ b/gdb/testsuite/gdb.chill/result.ch @@ -2,6 +2,9 @@ test_result: MODULE DCL i INT := 5; + SYNMODE m_struct = STRUCT (l LONG, b BOOL); + DCL v_struct m_struct := [ 20, TRUE ]; + simple_func: PROC () RETURNS (INT); DCL j INT := i; RESULT 10; @@ -10,7 +13,17 @@ test_result: MODULE i + := 2; END simple_func; + ret_struct: PROC () RETURNS (m_struct) + DCL v m_struct := [ 33, FALSE ]; + RESULT v; + v.l := 18; + END ret_struct; + i := simple_func (); i := simple_func (); i * := 10; + + v_struct := ret_struct (); + + i := 33; -- for gdb END test_result; diff --git a/gdb/testsuite/gdb.chill/result.exp b/gdb/testsuite/gdb.chill/result.exp index 73cae890ef3..d10157aa014 100644 --- a/gdb/testsuite/gdb.chill/result.exp +++ b/gdb/testsuite/gdb.chill/result.exp @@ -52,6 +52,7 @@ proc do_tests {} { send "set print sevenbit-strings\n" ; expect -re "$prompt $" send "set print address off\n" ; expect -re "$prompt $" + # simple function runto simple_func send "step 2\n" ; expect -re "$prompt $" gdb_test "print j" "= 5" @@ -63,6 +64,14 @@ proc do_tests {} { send "finish\n" ; expect -re "$prompt $" send "step\n" ; expect -re "$prompt $" gdb_test "print i" "= 50" + + # returning a structure + runto ret_struct + send "step 2\n"; expect -re "$prompt $" + gdb_test "p result" {\[.l: 33, .b: FALSE\]} + send "set var result := \[383, TRUE\]\n"; expect -re "$prompt $" + send "finish\n"; expect -re "$prompt $" + gdb_test "p v_struct" {\[.l: 383, .b: TRUE\]} } do_tests diff --git a/gdb/testsuite/gdb.chill/tests1.ch b/gdb/testsuite/gdb.chill/tests1.ch index 6f178448cf6..0962868bd7b 100644 --- a/gdb/testsuite/gdb.chill/tests1.ch +++ b/gdb/testsuite/gdb.chill/tests1.ch @@ -38,7 +38,7 @@ tests1: module; seize __print_event, __print_buffer; -newmode set1 = set(a, b, c); +newmode set1 = set(aaa, bbb, ccc); newmode nset1 = set(na = 1, nb = 34, nc = 20); newmode r11 = range (0 : upper(ubyte)); newmode r12 = range (0 : upper(uint)); @@ -46,7 +46,7 @@ newmode r12 = range (0 : upper(uint)); newmode r14 = range (lower(byte) : upper(byte)); newmode r15 = range (lower(int) : upper(int)); newmode r16 = range (lower(long): upper(long)); -newmode r2 = set1(b : c); +newmode r2 = set1(bbb : ccc); newmode r3 = nset1(na : na); newmode r4 = nset1(nc : nb); newmode r5 = nset1(lower(nset1) : upper(nset1)); @@ -89,24 +89,41 @@ newmode arr6m = array(1:5, 1:3, 1:2) long; newmode stru1m = struct (a, b long, case b of - (42): ch1 char(20), - (52): ch2 char(10) - else ch3 char(1) + (42): ch1 chars(20), + (52): ch2 chars(10) + else ch3 chars(1) esac); newmode stru2m = struct (f set1, case f of - (a): ch1 char(20), - (b): ch2 char(10) varying + (aaa): ch1 char(20), + (bbb): ch2 char(10) varying else ch3 char(0) varying esac); newmode stru3m = struct (f r3, case f of (na): ch1 char(20) esac); +newmode stru4m = struct (i long, + case of + : i1, i11 int, + b1 bool, + c1 char, + : i2, i22 long, + bs2 bools (10), + : + s3 struct (i3 int, + case of + : foo long + else bar char + esac) + else + x stru2m + esac, + y stru3m); -- set mode locations -dcl s1l set1 := c; +dcl s1l set1 := ccc; dcl s2l nset1 := nb; -- range mode locations diff --git a/gdb/testsuite/gdb.chill/tests1.exp b/gdb/testsuite/gdb.chill/tests1.exp index 1fc82a73106..f49e1c4be46 100644 --- a/gdb/testsuite/gdb.chill/tests1.exp +++ b/gdb/testsuite/gdb.chill/tests1.exp @@ -131,7 +131,7 @@ proc test_modes {} { test_print_accept "ptype BOOL" "bool" test_print_accept "ptype CHAR" "char" - test_print_accept "ptype set1" "SET \[(\]a, b, c\[)\]" \ + test_print_accept "ptype set1" "SET \[(\]aaa, bbb, ccc\[)\]" \ "print unnumbered set mode" test_print_accept "ptype nset1" "SET \[(\]na = 1, nb = 34, nc = 20\[)\]" \ "print numbered set mode" @@ -152,8 +152,9 @@ proc test_modes {} { test_print_accept "ptype r16" "long \\(-2147483648:2147483647\\)" \ "print long range mode" - test_print_accept "ptype r2" "set1 \\(b:c\\)" \ + test_print_accept "ptype r2" "set1 \\(bbb:ccc\\)" \ "print unnumbered set range mode" + setup_xfail "*-*-*" test_print_accept "ptype r3" "nset1 \\(na:na\\)" \ "print numbered set range mode" # really this order ? @@ -245,15 +246,18 @@ proc test_modes {} { # structure modes # some checks are in chillvars.exp - setup_xfail "*-*-*" - test_print_accept "ptype stru1m" "STRUCT \\(.*a long,.*b long,.*CASE b OF.*\\(42\\):.*ch1 CHARS\\(20\\),.*\\(52\\):.*ch2 CHARS\\(10\\).*ELSE.*ch3 CHARS\\(1\\).*ESAC.*\\)" \ + # setup_xfail "*-*-*" + test_print_accept "ptype stru1m" "STRUCT \\(.*a long,.*b long,.*CASE OF.*:.*ch1 CHARS \\(20\\).*:.*ch2 CHARS \\(10\\).*ELSE.*ch3 CHARS \\(1\\).*ESAC.*\\)" \ "print structure mode 1" - setup_xfail "*-*-*" - test_print_accept "ptype stru2m" "STRUCT \\(.*f set1\\(a, b, c\\),.*CASE f OF.*\\(a\\):.*ch1 CHARS\\(20\\),.*\\(b\\):.*ch2 CHARS\\(10\\) VARYING.*ELSE.*ch3 CHARS\\(0\\) VARYING.*ESAC.*\\)" \ + #setup_xfail "*-*-*" + test_print_accept "ptype stru2m" "STRUCT \\(.*f set1,.*CASE OF.*:.*ch1 CHARS \\(20\\).*:.*ch2 CHARS \\(10\\) VARYING.*ELSE.*ch3 CHARS \\(0\\) VARYING.*ESAC.*\\)" \ "print structure mode 2" - setup_xfail "*-*-*" - test_print_accept "ptype stru3m" "STRUCT \\(.*f nset1\\(na = 1, na = 1\\),.*CASE f OF.*\\(na\\):.*ch1 CHARS\\(20\\).*ESAC.*\\)" \ + #setup_xfail "*-*-*" + test_print_accept "ptype stru3m" "STRUCT \\(.*f r3,.*CASE OF.*:.*ch1 CHARS \\(20\\).*ESAC.*\\)" \ "print structure mode 3" + # setup_xfail "*-*-*" + test_print_accept "ptype stru4m" "STRUCT \\(.*i long,.*CASE OF.*:.*i1 int,.*i11 int,.*b1 bool,.*c1 char.*:.*i2 long,.*i22 long,.*bs2 BOOLS \\(10\\).*:.*s3 STRUCT \\(.*i3 int,.*CASE OF.*:.*foo long.*ELSE.*bar char.*ESAC.*\\).*ELSE.*x stru2m.*ESAC,.*y stru3m.*\\)" \ + "print structure mode 4" if $passcount then { @@ -271,11 +275,11 @@ proc test_locations {} { # various location tests can be found in chillvars.exp # set locations - test_print_accept "ptype s1l" "SET \\(a, b, c\\)" \ + test_print_accept "ptype s1l" "SET \\(aaa, bbb, ccc\\)" \ "print mode of set location" test_print_accept "whatis s1l" "set1" \ "print modename of set location" - test_print_accept "print s1l" "c" "print set location" + test_print_accept "print s1l" "ccc" "print set location" test_print_accept "ptype s2l" "SET \\(na = 1, nb = 34, nc = 20\\)" \ "print mode of numbered set location" test_print_accept "whatis s2l" "nset1" \ @@ -455,13 +459,17 @@ proc test_locations {} { # reference modes test_print_accept "ptype ref3l" "PTR" "print mode of reference location" + setup_xfail "*-*-*" test_print_accept "whatis ref3l" "ref3" \ "print modename of reference location" + setup_xfail "*-*-*" test_print_accept "print ref3l" "ref3\\(H'.*\\)" \ "print reference location" test_print_accept "ptype ref4l" "PTR" "print mode of reference location" + setup_xfail "*-*-*" test_print_accept "whatis ref4l" "ref4" \ "print modename of reference location" + setup_xfail "*-*-*" test_print_accept "print ref4l" "ref4\\(H'.*\\)" \ "print reference location" test_print_accept "ptype ref5l" "PTR" "print mode of reference location" @@ -592,10 +600,10 @@ proc test_locations {} { "print mode of array location" gdb_test "whatis arrl1" "arr1m" \ "print mode name of array location" - gdb_test_exact "print arrl1" {[(1:100): a]} \ + gdb_test_exact "print arrl1" {[(1:100): aaa]} \ "print array location" test_print_accept "ptype arrl1(1)" \ - "SET \\(a, b, c\\)" \ + "SET \\(aaa, bbb, ccc\\)" \ "print mode of array element" gdb_test_exact "print arrl3" \ {[(1:5): [(1:3): [(1:2): -2147483648]]]} \ -- 2.30.2