diff options
author | Michael Snyder <msnyder@vmware.com> | 2010-05-25 19:34:05 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2010-05-25 19:34:05 +0000 |
commit | 65731a6b77c790f8d97b65eb967efaf2db0f27b5 (patch) | |
tree | 2ecd64f88e19e23f23c1bfd1dd7cbd24cf625233 /gdb/testsuite/gdb.base/pointers.exp | |
parent | 0d45f56e4700225d5789b60da9ea3f082bb5e23d (diff) |
2010-05-25 Michael Snyder <msnyder@vmware.com>
* gdb.base/maint.exp: Replace send_gdb with gdb_test.
* gdb.base/miscexprs.exp: Replace send_gdb with gdb_test.
* gdb.base/nodebug.exp: Replace send_gdb with gdb_test.
* gdb.base/pointers.exp: Replace send_gdb with gdb_test.
* gdb.base/ptype.exp: Replace send_gdb with gdb_test.
Diffstat (limited to 'gdb/testsuite/gdb.base/pointers.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/pointers.exp | 518 |
1 files changed, 101 insertions, 417 deletions
diff --git a/gdb/testsuite/gdb.base/pointers.exp b/gdb/testsuite/gdb.base/pointers.exp index 3e739abee9..32b3396fa4 100644 --- a/gdb/testsuite/gdb.base/pointers.exp +++ b/gdb/testsuite/gdb.base/pointers.exp @@ -131,469 +131,153 @@ gdb_test "set variable v_int_pointer=&v_int_array\[0\]" "" "set pointer to begin gdb_test "set variable v_int_pointer2=&v_int_array\[1\]" "" "set pointer to end of array" -send_gdb "print *v_int_pointer\n" -gdb_expect { - -re ".*= 6.*$gdb_prompt $" { - pass "print object pointed to" - } - -re ".*$gdb_prompt $" { fail "print object pointed to" } - timeout { fail "(timeout) print object pointed to" } - } - -send_gdb "print *v_int_pointer2\n" -gdb_expect { - -re ".*= 18.*$gdb_prompt $" { - pass "print object pointed to" - } - -re ".*$gdb_prompt $" { fail "print object pointed to" } - timeout { fail "(timeout) print object pointed to" } - } - - -send_gdb "print v_int_pointer == v_int_pointer2\n" -gdb_expect { - -re ".*= $false.*$gdb_prompt $" { - pass "pointer1==pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1==pointer2" } - timeout { fail "(timeout) pointer1==pointer2" } - } - -send_gdb "print v_int_pointer != v_int_pointer2\n" -gdb_expect { - -re ".*= $true.*$gdb_prompt $" { - pass "pointer1!=pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1!=pointer2" } - timeout { fail "(timeout) pointer1!=pointer2" } - } - - -send_gdb "print v_int_pointer <= v_int_pointer2\n" -gdb_expect { - -re ".*= $true.*$gdb_prompt $" { - pass "pointer1<=pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1<=pointer2" } - timeout { fail "(timeout) pointer1<=pointer2" } - } - - -send_gdb "print v_int_pointer >= v_int_pointer2\n" -gdb_expect { - -re ".*= $false.*$gdb_prompt $" { - pass "pointer1>=pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1>=pointer2" } - timeout { fail "(timeout) pointer1>=pointer2" } - } - - -send_gdb "print v_int_pointer < v_int_pointer2\n" -gdb_expect { - -re ".*= $true.*$gdb_prompt $" { - pass "pointer1<pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1<pointer2" } - timeout { fail "(timeout) pointer1<pointer2" } - } - -send_gdb "print v_int_pointer > v_int_pointer2\n" -gdb_expect { - -re ".*= $false.*$gdb_prompt $" { - pass "pointer1>pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1>pointer2" } - timeout { fail "(timeout) pointer1>pointer2" } - } +gdb_test "print *v_int_pointer" " = 6" "print object pointed to" +gdb_test "print *v_int_pointer2" " = 18" "print object pointed to \#2" -gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++" -send_gdb "print y\n" -gdb_expect { - -re ".*= 6.*$gdb_prompt $" { - send_gdb "print *v_int_pointer\n" - gdb_expect { - -re ".*= 18.*$gdb_prompt $" { - pass "pointer assignment and increment" - } - -re ".*$gdb_prompt $" { fail "pointer assignment and increment" } - timeout { fail "(timeout) pointer assignment and increment" } - } - } - -re ".*$gdb_prompt $" { fail "pointer assignment and increment" } - timeout { fail "(timeout) pointer assignment and increment" } - } +gdb_test "print v_int_pointer == v_int_pointer2" " = $false" \ + "pointer1==pointer2" + +gdb_test "print v_int_pointer != v_int_pointer2" " = $true" \ + "pointer1!=pointer2" + +gdb_test "print v_int_pointer <= v_int_pointer2" " = $true" \ + "pointer1<=pointer2" + +gdb_test "print v_int_pointer >= v_int_pointer2" " = $false" \ + "pointer1>=pointer2" + +gdb_test "print v_int_pointer < v_int_pointer2" " = $true" \ + "pointer1<pointer2" + +gdb_test "print v_int_pointer > v_int_pointer2" " = $false" \ + "pointer1>pointer2" +gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++" +gdb_test "print y" " = 6" "pointer assignment" +gdb_test "print *v_int_pointer" " = 18" "and post-increment" gdb_test "set variable y = *--v_int_pointer2" "" "set y = *--v_int_pointer2" -send_gdb "print y\n" -gdb_expect { - -re ".*= 6.*$gdb_prompt $" { - send_gdb "print *v_int_pointer2\n" - gdb_expect { - -re ".*= 6.*$gdb_prompt $" { - pass "pointer decrement and assignment" - } - -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" } - timeout { fail "(timeout) pointer decrement and assignment" } - } - } - -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" } - timeout { fail "(timeout) pointer decrement and assignment" } - } - -gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" "set y =v_int_pointer-v_int_pointer2" -send_gdb "print y\n" -gdb_expect { - -re ".*= 1.*$gdb_prompt $" { - pass "pointer1-pointer2" - } - -re ".*$gdb_prompt $" { fail "pointer1-pointer2" } - timeout { fail "(timeout) pointer1-pointer2" } - } - -gdb_test "set variable v_int_pointer=v_int_array" "" "set v_int_pointer=v_int_array" -send_gdb "print *v_int_pointer\n" -gdb_expect { - -re ".*= 6.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - - -send_gdb "print *(v_int_pointer+1)\n" -gdb_expect { - -re ".*= 18.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } +gdb_test "print y" " = 6" "pointer assignment" +gdb_test "print *v_int_pointer2" " = 6" "and pre-decrement" + + + +gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" \ + "set y =v_int_pointer-v_int_pointer2" +gdb_test "print y" " = 1" "pointer1-pointer2" + + +gdb_test "set variable v_int_pointer=v_int_array" "" \ + "set v_int_pointer=v_int_array" +gdb_test "print *v_int_pointer" " = 6" \ + "print array element through pointer" + +gdb_test "print *(v_int_pointer+1)" " = 18" \ + "print array element through pointer \#2" + # test print elements of array through pointers -send_gdb "print (*rptr)\[0\]\n" -gdb_expect { - -re ".*= 0.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - -send_gdb "print (*rptr)\[1\]\n" -gdb_expect { - -re ".*= 1.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - - -send_gdb "print (*rptr)\[2\]\n" -gdb_expect { - -re ".*= 2.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } +gdb_test "print (*rptr)\[0\]" " = 0" \ + "print array element through pointer \#3" + +gdb_test "print (*rptr)\[1\]" " = 1" \ + "print array element through pointer \#4" + +gdb_test "print (*rptr)\[2\]" " = 2" \ + "print array element through pointer \#5" gdb_test "set variable rptr = rptr+1" "" "increment rptr" -send_gdb "print (*rptr)\[0\]\n" -gdb_expect { - -re ".*= 3.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - - -send_gdb "print (*rptr)\[1\]\n" -gdb_expect { - -re ".*= 4.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - - -send_gdb "print (*rptr)\[2\]\n" -gdb_expect { - -re ".*= 5.*$gdb_prompt $" { - pass "print array element through pointer" - } - -re ".*$gdb_prompt $" { fail "print array element through pointer" } - timeout { fail "(timeout) print array element through pointer" } - } - - -send_gdb "print *( *(matrix+1) +2)\n" -gdb_expect { - -re ".*= 5.*$gdb_prompt $" { - pass "print array element w/ pointer arithmetic" - } - -re ".*$gdb_prompt $" { fail "print array element w/ pointer arithemtic" } - timeout { fail "(timeout) print array element w/ pointer arithmetic" } - } - - -send_gdb "print **ptr_to_ptr_to_float\n" -gdb_expect { - -re ".*= 100.*$gdb_prompt $" { - pass "print through ptr to ptr" - } - -re ".*$gdb_prompt $" { fail "print through ptr to ptr" } - timeout { fail "(timeout) print through ptr to ptr" } - } +gdb_test "print (*rptr)\[0\]" " = 3" \ + "print array element through pointer \#6" -# tests for pointers -# with elementary type variables and pointers. -# +gdb_test "print (*rptr)\[1\]" " = 4" \ + "print array element through pointer \#7" -send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $" - -send_gdb "cont\n" -gdb_expect { - -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" { - pass "continue to marker1" - send_gdb "up\n" - gdb_expect { - -re ".*more_code.*$gdb_prompt $" { - pass "up from marker1" - } - -re ".*$gdb_prompt $" { - fail "up from marker1" - } - timeout { fail "up from marker1 (timeout)" } - } - } - -re "$gdb_prompt $" { - fail "continue to marker1" - } - timeout { - fail "continue to marker1 (timeout)" - } -} +gdb_test "print (*rptr)\[2\]" " = 5" \ + "print array element through pointer \#8" +gdb_test "print *( *(matrix+1) +2)" " = 5" \ + "print array element w/ pointer arithmetic" -send_gdb "print *pUC\n" -gdb_expect { - -re ".\[0-9\]* = 21 \'.025\'.*$gdb_prompt $" { - pass "print value of *pUC" - } - -re ".*$gdb_prompt $" { fail "print value of *pUC" } - timeout { fail "(timeout) print value of *pUC" } - } +gdb_test "print **ptr_to_ptr_to_float" " = 100" \ + "print through ptr to ptr" +# tests for pointers +# with elementary type variables and pointers. +# -send_gdb "ptype pUC\n" -gdb_expect { - -re "type = unsigned char \\*.*$gdb_prompt $" { pass "ptype pUC" } - -re ".*$gdb_prompt $" { fail "ptype pUC" } - timeout { fail "(timeout) ptype pUC" } -} +gdb_test "break marker1" "" "" +gdb_test "cont" "Break.* marker1 \\(\\) at .*:$decimal.*" \ + continue to marker1" +gdb_test "up" "more_code.*" "up from marker1" + +gdb_test "print *pUC" " = 21 \'.025\'.*" "print value of *pUC" -send_gdb "print *pS\n" -gdb_expect { - -re ".\[0-9\]* = -14.*$gdb_prompt $" { - pass "print value of *pS" - } - -re ".*$gdb_prompt $" { fail "print value of *pS" } - timeout { fail "(timeout) print value of *pS" } - } +gdb_test "ptype pUC" "type = unsigned char \\*" "ptype pUC" +gdb_test "print *pS" " = -14" "print value of *pS" -send_gdb "ptype pS\n" -gdb_expect { +gdb_test_multiple "ptype pS" "ptype pS" { -re "type = short \\*.*$gdb_prompt $" { pass "ptype pS" } -re "type = short int \\*.*$gdb_prompt $" { pass "ptype pS" } - -re ".*$gdb_prompt $" { fail "ptype pS" } - timeout { fail "(timeout) ptype pS" } -} +} -send_gdb "print *pUS\n" -gdb_expect { - -re ".\[0-9\]* = 7.*$gdb_prompt $" { - pass "print value of *pUS" - } - -re ".*$gdb_prompt $" { fail "print value of *pUS" } - timeout { fail "(timeout) print value of *pUS" } - } +gdb_test "print *pUS" " = 7" "print value of *pUS" - -send_gdb "ptype pUS\n" -gdb_expect { +gdb_test_multiple "ptype pUS" "ptype pUS" { -re "type = unsigned short \\*.*$gdb_prompt $" { pass "ptype pUS" } -re "type = short unsigned int \\*.*$gdb_prompt $" { pass "ptype pUS" } - -re ".*$gdb_prompt $" { fail "ptype pUS" } - timeout { fail "(timeout) ptype pUS" } } -send_gdb "print *pI\n" -gdb_expect { - -re ".\[0-9\]* = 102.*$gdb_prompt $" { - pass "print value of *pI" - } - -re ".*$gdb_prompt $" { fail "print value of *pI" } - timeout { fail "(timeout) print value of *pI" } - } - - -send_gdb "ptype pI\n" -gdb_expect { - -re "type = int \\*.*$gdb_prompt $" { pass "ptype pI" } - -re ".*$gdb_prompt $" { fail "ptype pI" } - timeout { fail "(timeout) ptype pI" } -} +gdb_test "print *pI" " = 102" "print value of *pI" -send_gdb "print *pUI\n" -gdb_expect { - -re ".\[0-9\]* = 1002.*$gdb_prompt $" { - pass "print value of *pUI" - } - -re ".*$gdb_prompt $" { fail "print value of *pUI" } - timeout { fail "(timeout) print value of *pUI" } - } - - -send_gdb "ptype pUI\n" -gdb_expect { - -re "type = unsigned int \\*.*$gdb_prompt $" { pass "ptype pUI" } - -re ".*$gdb_prompt $" { fail "ptype pUI" } - timeout { fail "(timeout) ptype pUI" } -} +gdb_test "ptype pI" "type = int \\*" "ptype pI" -send_gdb "print *pL\n" -gdb_expect { - -re ".\[0-9\]* = -234.*$gdb_prompt $" { - pass "print value of *pL" - } - -re ".*$gdb_prompt $" { fail "print value of *pL" } - timeout { fail "(timeout) print value of *pL" } - } - - -send_gdb "ptype pL\n" -gdb_expect { - -re "type = long \\*.*$gdb_prompt $" { pass "ptype pL" } - -re "type = long int \\*.*$gdb_prompt $" { pass "ptype pL" } - -re ".*$gdb_prompt $" { fail "ptype pL" } - timeout { fail "(timeout) ptype pL" } -} +gdb_test "print *pUI" " = 1002" "print value of *pUI" + +gdb_test "ptype pUI" "type = unsigned int \\*" "ptype pUI" + +gdb_test "print *pL" " = -234" "print value of *pL" -send_gdb "print *pUL\n" -gdb_expect { - -re ".\[0-9\]* = 234.*$gdb_prompt $" { - pass "print value of *pUL" - } - -re ".*$gdb_prompt $" { fail "print value of *pUL" } - timeout { fail "(timeout) print value of *pUL" } - } +gdb_test_multiple "ptype pL" "ptype pL" { + -re "type = long \\*.*$gdb_prompt $" { pass "ptype pL" } + -re "type = long int \\*.*$gdb_prompt $" { pass "ptype pL" } +} +gdb_test "print *pUL" " = 234" "print value of *pUL" -send_gdb "ptype pUL\n" -gdb_expect { +gdb_test_multiple "ptype pUL" "ptype pUL" { -re "type = unsigned long \\*.*$gdb_prompt $" { pass "ptype pUL" } -re "type = long unsigned int \\*.*$gdb_prompt $" { pass "ptype pUL" } - -re ".*$gdb_prompt $" { fail "ptype pUL" } - timeout { fail "(timeout) ptype pUL" } } -send_gdb "print *pF\n" -gdb_expect { - -re ".\[0-9\]* = 1.2\[0-9\]*e\\+0?10.*$gdb_prompt $" { - pass "print value of *pF" - } - -re ".*$gdb_prompt $" { fail "print value of *pF" } - timeout { fail "(timeout) print value of *pF" } - } - - -send_gdb "ptype pF\n" -gdb_expect { - -re "type = float \\*.*$gdb_prompt $" { pass "ptype pF" } - -re ".*$gdb_prompt $" { fail "ptype pF" } - timeout { fail "(timeout) ptype pF" } -} +gdb_test "print *pF" " = 1.2\[0-9\]*e\\+0?10" "print value of *pF" -send_gdb "print *pD\n" -gdb_expect { - -re ".\[0-9\]* = -1.2\[0-9\]*e\\-0?37.*$gdb_prompt $" { - pass "print value of *pD" - } - -re ".*$gdb_prompt $" { fail "print value of *pD" } - timeout { fail "(timeout) print value of *pD" } - } - - -send_gdb "ptype pD\n" -gdb_expect { - -re "type = double \\*.*$gdb_prompt $" { pass "ptype pD" } - -re ".*$gdb_prompt $" { fail "ptype pD" } - timeout { fail "(timeout) ptype pD" } -} +gdb_test "ptype pF" "type = float \\*" "ptype pF" -send_gdb "print ******ppppppC\n" -gdb_expect { - -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" { - pass "print value of ******ppppppC" - } - -re ".*$gdb_prompt $" { fail "print value of ******ppppppC" } - timeout { fail "(timeout) print value of ******ppppppC" } - } - - -send_gdb "ptype pC\n" -gdb_expect { - -re "type = char \\*.*$gdb_prompt $" { pass "ptype pC" } - -re ".*$gdb_prompt $" { fail "ptype pC" } - timeout { fail "(timeout) ptype pC" } -} +gdb_test "print *pD" " = -1.2\[0-9\]*e\\-0?37" "print value of *pD" -send_gdb "ptype ppC\n" -gdb_expect { - -re "type = char \\*\\*.*$gdb_prompt $" { pass "ptype ppC" } - -re ".*$gdb_prompt $" { fail "ptype ppC" } - timeout { fail "(timeout) ptype ppC" } -} +gdb_test "ptype pD" "type = double \\*" "ptype pD" -send_gdb "ptype pppC\n" -gdb_expect { - -re "type = char \\*\\*\\*.*$gdb_prompt $" { pass "ptype pppC" } - -re ".*$gdb_prompt $" { fail "ptype pppC" } - timeout { fail "(timeout) ptype pppC" } -} +gdb_test "print ******ppppppC" " = 65 \'A\'" \ + "print value of ******ppppppC" -send_gdb "ptype ppppC\n" -gdb_expect { - -re "type = char \\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype ppppC" } - -re ".*$gdb_prompt $" { fail "ptype ppppC" } - timeout { fail "(timeout) ptype ppppC" } -} +gdb_test "ptype pC" "type = char \\*" "ptype pC" -send_gdb "ptype pppppC\n" -gdb_expect { - -re "type = char \\*\\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype pppppC" } - -re ".*$gdb_prompt $" { fail "ptype pppppC" } - timeout { fail "(timeout) ptype pppppC" } -} +gdb_test "ptype ppC" "type = char \\*\\*" "ptype ppC" -send_gdb "ptype ppppppC\n" -gdb_expect { - -re "type = char \\*\\*\\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype ppppppC" } - -re ".*$gdb_prompt $" { fail "ptype ppppppC" } - timeout { fail "(timeout) ptype ppppppC" } -} +gdb_test "ptype pppC" "type = char \\*\\*\\*" "ptype pppC" + +gdb_test "ptype ppppC" "type = char \\*\\*\\*\\*" "ptype ppppC" + +gdb_test "ptype pppppC" "type = char \\*\\*\\*\\*\\*" "ptype pppppC" + +gdb_test "ptype ppppppC" "type = char \\*\\*\\*\\*\\*\\*" "ptype ppppppC" # Regression test for a crash. |