-# Copyright (C) 1992, 1997, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1992-2017 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# This file was written by Fred Fish. (fnf@cygnus.com)
-if $tracelevel then {
- strace $tracelevel
-}
-set prms_id 0
-set bug_id 0
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+ return -1
+}
proc test_convenience_variables {} {
global gdb_prompt
- gdb_test "set \$foo = 101" "" \
+ gdb_test_no_output "set \$foo = 101" \
"Set a new convenience variable"
gdb_test "print \$foo" " = 101" \
"Print contents of new convenience variable"
- gdb_test "set \$foo = 301" "" \
+ gdb_test_no_output "set \$foo = 301" \
"Set convenience variable to a new value"
gdb_test "print \$foo" " = 301" \
"Print new contents of convenience variable"
- gdb_test "set \$_ = 11" "" \
+ gdb_test_no_output "set \$_ = 11" \
"Set convenience variable \$_"
gdb_test "print \$_" " = 11" \
"Print contents of uninitialized convenience variable"
}
+proc test_convenience_functions {} {
+ gdb_test "print \$_isvoid" " = <internal function _isvoid>" \
+ "Print internal function \$_isvoid"
+
+ gdb_test "print \$isvoid_foo" " = void" \
+ "Print void convenience variable"
+
+ gdb_test "print \$_isvoid (\$isvoid_foo)" " = 1" \
+ "Check whether void convenience variable is void"
+
+ gdb_test_no_output "set \$isvoid_foo = 1" \
+ "Set void convenience variable to 1"
+
+ gdb_test "print \$_isvoid (\$isvoid_foo)" " = 0" \
+ "Check whether non-void convenience variable is void"
+
+ # For the next test, we need the inferior to be running.
+ if { ![runto_main] } {
+ return -1
+ }
+
+ gdb_test "print \$_isvoid (foo_void ())" " = 1" \
+ "Check whether void function is void"
+
+ gdb_test "print \$_isvoid (foo_int ())" " = 0" \
+ "Check whether non-void function is void"
+}
+
proc test_value_history {} {
global gdb_prompt
"Use value-history element in arithmetic expression"
}
-# Start with a fresh gdb.
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
+proc test_with_program {} {
+ global hex
+ gdb_test_no_output "set \$prog_var = p" \
+ "Set a new convenience variable to a program variable"
+ gdb_test "print /x \$prog_var" " = $hex" \
+ "Print contents of new convenience variable of program variable"
+}
-send_gdb "set print sevenbit-strings\n" ; gdb_expect -re ".*$gdb_prompt $"
+gdb_test_no_output "set print sevenbit-strings"
test_value_history
test_convenience_variables
+test_convenience_functions
+test_with_program