From 10d8cbd222af0f56ca41e17a29fbdea46c5dc288 Mon Sep 17 00:00:00 2001 From: Sanimir Agovic Date: Wed, 20 Nov 2013 13:45:36 +0000 Subject: [PATCH] test: test eval routines with EVAL_AVOID_SIDE_EFFECTS flag set Ensure that certain commands (e.g. whatis/ptype) and sizeof intrinsic have no side effects (variables cannot be altered). 2013-11-20 Sanimir Agovic testsuite/ * gdb.base/eval-avoid-side-effects.exp: New test. --- gdb/testsuite/ChangeLog | 4 ++ .../gdb.base/eval-avoid-side-effects.exp | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 gdb/testsuite/gdb.base/eval-avoid-side-effects.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 560f674d8dc..aa25faa3658 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-11-20 Sanimir Agovic + + * gdb.base/eval-avoid-side-effects.exp: New file. + 2013-11-20 Walfred Tedeschi * gdb.arch/i386-mpx.c: New file diff --git a/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp b/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp new file mode 100644 index 00000000000..da1e36f22c4 --- /dev/null +++ b/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp @@ -0,0 +1,40 @@ +# Copyright 2013 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 +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Tests to cover evaluate_subexp and others with EVAL_AVOID_SIDE_EFFECTS +# flag set. + +standard_testfile int-type.c + +if { [prepare_for_testing ${testfile}.exp $testfile $srcfile] } { + return -1 +} + +if ![runto_main] { + return -1 +} + +set sizeof_int [get_sizeof "int" 4] + +gdb_test_no_output "set variable x=42" "set variable x=42" + +gdb_test "print sizeof ++x" "= ${sizeof_int}" "test sizeof side effects" +gdb_test "print x" "= 42" "sizeof has no side effects" + +gdb_test "ptype ++x" "= int" "test ptype side effects" +gdb_test "print x" "= 42" "ptype has no side effects" + +gdb_test "whatis ++x" "= int" "test whatis side effects" +gdb_test "print x" "= 42" "whatis has no side effects" -- 2.30.2