aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r--gdb/testsuite/gdb.base/smoke.c40
-rw-r--r--gdb/testsuite/gdb.base/smoke.cc480
-rw-r--r--gdb/testsuite/gdb.base/smoke.exp181
3 files changed, 0 insertions, 701 deletions
diff --git a/gdb/testsuite/gdb.base/smoke.c b/gdb/testsuite/gdb.base/smoke.c
deleted file mode 100644
index 69d34c9..0000000
--- a/gdb/testsuite/gdb.base/smoke.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Test various kinds of stepping.
-*/
-int glob = 0;
-
-int callee() {
- glob++;
- return (0);
-}
-
-int main () {
- int w,x,y,z;
- int a[10], b[10];
-
- /* Test "next" and "step" */
- w = 0;
- x = 1;
- y = 2;
- z = 3;
- w = w + 2;
- x = x + 3;
- y = y + 4;
- z = z + 5;
-
- /* Test that "next" goes over a call */
- callee(); /* OVER */
-
- /* Test that "step" doesn't */
- callee(); /* INTO */
-
- /* Test "stepi" */
- a[5] = a[3] - a[4];
- callee(); /* STEPI */
-
- /* Test "nexti" */
- callee(); /* NEXTI */
-
- y = w + z;
-
- return (0);
-}
diff --git a/gdb/testsuite/gdb.base/smoke.cc b/gdb/testsuite/gdb.base/smoke.cc
deleted file mode 100644
index 931fdaf..0000000
--- a/gdb/testsuite/gdb.base/smoke.cc
+++ /dev/null
@@ -1,480 +0,0 @@
-// Test various -*- C++ -*- things.
-
-typedef struct fleep fleep;
-struct fleep { int a; } s;
-
-// ====================== simple class structures =======================
-
-struct default_public_struct {
- // defaults to public:
- int a;
- int b;
-};
-
-struct explicit_public_struct {
- public:
- int a;
- int b;
-};
-
-struct protected_struct {
- protected:
- int a;
- int b;
-};
-
-struct private_struct {
- private:
- int a;
- int b;
-};
-
-struct mixed_protection_struct {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
-};
-
-class public_class {
- public:
- int a;
- int b;
-};
-
-class protected_class {
- protected:
- int a;
- int b;
-};
-
-class default_private_class {
- // defaults to private:
- int a;
- int b;
-};
-
-class explicit_private_class {
- private:
- int a;
- int b;
-};
-
-class mixed_protection_class {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
-};
-
-// ========================= simple inheritance ==========================
-
-class A {
- public:
- int a;
- int x;
-};
-
-A g_A;
-
-class B : public A {
- public:
- int b;
- int x;
-};
-
-B g_B;
-
-class C : public A {
- public:
- int c;
- int x;
-};
-
-C g_C;
-
-class D : public B, public C {
- public:
- int d;
- int x;
-};
-
-D g_D;
-
-class E : public D {
- public:
- int e;
- int x;
-};
-
-E g_E;
-
-class class_with_anon_union
-{
- public:
- int one;
- union
- {
- int a;
- long b;
- };
-};
-
-class_with_anon_union g_anon_union;
-
-void inheritance2 (void)
-{
-}
-
-void inheritance1 (void)
-{
- int ival;
- int *intp;
-
- // {A::a, A::x}
-
- g_A.A::a = 1;
- g_A.A::x = 2;
-
- // {{A::a,A::x},B::b,B::x}
-
- g_B.A::a = 3;
- g_B.A::x = 4;
- g_B.B::b = 5;
- g_B.B::x = 6;
-
- // {{A::a,A::x},C::c,C::x}
-
- g_C.A::a = 7;
- g_C.A::x = 8;
- g_C.C::c = 9;
- g_C.C::x = 10;
-
- // {{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_D, ival = 11;
- intp < ((int *) &g_D + sizeof (g_D) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 11; (g_D.A::a = 11; is ambiguous)
- // ????? = 12; (g_D.A::x = 12; is ambiguous)
- g_D.B::b = 13;
- g_D.B::x = 14;
- // ????? = 15;
- // ????? = 16;
- g_D.C::c = 17;
- g_D.C::x = 18;
- g_D.D::d = 19;
- g_D.D::x = 20;
-
-
- // {{{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}},E::e,E::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_E, ival = 21;
- intp < ((int *) &g_E + sizeof (g_E) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 21; (g_E.A::a = 21; is ambiguous)
- // ????? = 22; (g_E.A::x = 22; is ambiguous)
- g_E.B::b = 23;
- g_E.B::x = 24;
- // ????? = 25;
- // ????? = 26;
- g_E.C::c = 27;
- g_E.C::x = 28;
- g_E.D::d = 29;
- g_E.D::x = 30;
- g_E.E::e = 31;
- g_E.E::x = 32;
-
- g_anon_union.one = 1;
- g_anon_union.a = 2;
-
- inheritance2 ();
-}
-
-// ======================== virtual base classes=========================
-
-class vA {
- public:
- int va;
- int vx;
-};
-
-vA g_vA;
-
-class vB : public virtual vA {
- public:
- int vb;
- int vx;
-};
-
-vB g_vB;
-
-class vC : public virtual vA {
- public:
- int vc;
- int vx;
-};
-
-vC g_vC;
-
-class vD : public virtual vB, public virtual vC {
- public:
- int vd;
- int vx;
-};
-
-vD g_vD;
-
-class vE : public virtual vD {
- public:
- int ve;
- int vx;
-};
-
-vE g_vE;
-
-void inheritance4 (void)
-{
-}
-
-void inheritance3 (void)
-{
- int ival;
- int *intp;
-
- // {vA::va, vA::vx}
-
- g_vA.vA::va = 1;
- g_vA.vA::vx = 2;
-
- // {{vA::va, vA::vx}, vB::vb, vB::vx}
-
- g_vB.vA::va = 3;
- g_vB.vA::vx = 4;
- g_vB.vB::vb = 5;
- g_vB.vB::vx = 6;
-
- // {{vA::va, vA::vx}, vC::vc, vC::vx}
-
- g_vC.vA::va = 7;
- g_vC.vA::vx = 8;
- g_vC.vC::vc = 9;
- g_vC.vC::vx = 10;
-
- // {{{{vA::va, vA::vx}, vB::vb, vB::vx}, vC::vc, vC::vx}, vD::vd,vD::vx}
-
- g_vD.vA::va = 11;
- g_vD.vA::vx = 12;
- g_vD.vB::vb = 13;
- g_vD.vB::vx = 14;
- g_vD.vC::vc = 15;
- g_vD.vC::vx = 16;
- g_vD.vD::vd = 17;
- g_vD.vD::vx = 18;
-
-
- // {{{{{vA::va,vA::vx},vB::vb,vB::vx},vC::vc,vC::vx},vD::vd,vD::vx},vE::ve,vE::vx}
-
- g_vD.vA::va = 19;
- g_vD.vA::vx = 20;
- g_vD.vB::vb = 21;
- g_vD.vB::vx = 22;
- g_vD.vC::vc = 23;
- g_vD.vC::vx = 24;
- g_vD.vD::vd = 25;
- g_vD.vD::vx = 26;
- g_vE.vE::ve = 27;
- g_vE.vE::vx = 28;
-
- inheritance4 ();
-}
-
-// ======================================================================
-
-class Base1 {
- public:
- int x;
- Base1(int i) { x = i; }
-};
-
-class Foo
-{
- public:
- int x;
- int y;
- static int st;
- Foo (int i, int j) { x = i; y = j; }
- int operator! ();
- operator int ();
- int times (int y);
-};
-
-class Bar : public Base1, public Foo {
- public:
- int z;
- Bar (int i, int j, int k) : Base1 (10*k), Foo (i, j) { z = k; }
-};
-
-int Foo::operator! () { return !x; }
-
-int Foo::times (int y) { return x * y; }
-
-int Foo::st = 100;
-
-Foo::operator int() { return x; }
-
-Foo foo(10, 11);
-Bar bar(20, 21, 22);
-
-class Contains_static_instance
-{
- public:
- int x;
- int y;
- Contains_static_instance (int i, int j) { x = i; y = j; }
- static Contains_static_instance null;
-};
-
-Contains_static_instance Contains_static_instance::null(0,0);
-Contains_static_instance csi(10,20);
-
-class Contains_nested_static_instance
-{
- public:
- class Nested
- {
- public:
- Nested(int i) : z(i) {}
- int z;
- static Contains_nested_static_instance xx;
- };
-
- Contains_nested_static_instance(int i, int j) : x(i), y(j) {}
-
- int x;
- int y;
-
- static Contains_nested_static_instance null;
- static Nested yy;
-};
-
-Contains_nested_static_instance Contains_nested_static_instance::null(0, 0);
-Contains_nested_static_instance::Nested Contains_nested_static_instance::yy(5);
-Contains_nested_static_instance
- Contains_nested_static_instance::Nested::xx(1,2);
-Contains_nested_static_instance cnsi(30,40);
-
-typedef struct {
- int one;
- int two;
-} tagless_struct;
-tagless_struct v_tagless;
-
-/* Try to get the compiler to allocate a class in a register. */
-class small {
- public:
- int x;
- int method ();
-};
-int small::method ()
-{
- return x + 5;
-}
-void marker_reg1 () {}
-
-int
-register_class ()
-{
- /* We don't call any methods for v, so gcc version cygnus-2.3.3-930220
- might put this variable in a register. This is a lose, though, because
- it means that GDB can't call any methods for that variable. */
- register small v;
-
- int i;
-
- /* Perform a computation sufficiently complicated that optimizing compilers
- won't optimized out the variable. If some compiler constant-folds this
- whole loop, maybe using a parameter to this function here would help. */
- v.x = 0;
- for (i = 0; i < 13; ++i)
- v.x += i;
- --v.x; /* v.x is now 77 */
- marker_reg1 ();
- return v.x + 5;
-}
-
-int
-main()
-{
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- inheritance1 ();
- inheritance3 ();
- register_class ();
-
- /* FIXME: pmi gets optimized out. Need to do some more computation with
- it or something. (No one notices, because the test is xfail'd anyway,
- but that probably won't always be true...). */
- int Foo::* pmi = &Foo::y;
-
- /* Make sure the AIX linker doesn't remove the variable. */
- v_tagless.one = 5;
-
- return foo.*pmi;
-}
-
-/* Create an instance for some classes, otherwise they get optimized away. */
-default_public_struct default_public_s;
-explicit_public_struct explicit_public_s;
-protected_struct protected_s;
-private_struct private_s;
-mixed_protection_struct mixed_protection_s;
-public_class public_c;
-protected_class protected_c;
-default_private_class default_private_c;
-explicit_private_class explicit_private_c;
-mixed_protection_class mixed_protection_c;
diff --git a/gdb/testsuite/gdb.base/smoke.exp b/gdb/testsuite/gdb.base/smoke.exp
deleted file mode 100644
index af107e0..0000000
--- a/gdb/testsuite/gdb.base/smoke.exp
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright (C) 1997, 1998 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 2 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# smoke.exp -- Expect script to test gdb before checkins
-
-# use this to debug:
-#
-#log_user 1
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-set testfile smoke
-set testfile1 smoke1
-set c_srcfile ${srcdir}/${subdir}/${testfile}.c
-set cpp_srcfile ${srcdir}/${subdir}/${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-set binfile1 ${objdir}/${subdir}/${testfile1}
-
-#remote_exec build "rm -f ${binfile}"
-remote_exec build "rm -f core"
-
-# "C" section, using source copied from "step-test.c" from "gdb.base"
-#
-if { [gdb_compile "${c_srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# Some basic tests
-#
-gdb_test "tb main" ".*Breakpoint 1 at.*line 15.*" "temp breakpoint"
-gdb_test "b callee" ".*Breakpoint 2 at.*line 6.*" "breakpoint"
-gdb_test "l 10" ".*10.*int main.*11.*int w,x,y,z;.*12.*int a.*" "list"
-gdb_test "c" ".*The program is not being run.*" "catch error"
-gdb_test "r" ".*Starting program.*main.*15.*" "hit bp"
-gdb_test "hel r" ".*Start debugged program.*without arguments.*" "help"
-gdb_test "n" ".*x = 1;.*" "next"
-gdb_test "s" ".*y = 2;.*" "step"
-gdb_test "p/t x" ".* = 1.*" "print x in binary"
-gdb_test "p 1+2*3+4" ".* = 11.*" "calculate"
-gdb_test "p/t 1+2*3+4" ".* = 1011.*" "binary"
-
-# Note: accept either "Watchpoint" or "Hardware watchpoint";
-# 10.20 can't do the hardware watch. The hardware kind
-# triggers one line earlier than the regular kind.
-#
-gdb_test "wat y" ".*atchpoint.*y.*" "set watch"
-gdb_test "c" ".*atchpoint.*Old.*= .*New.*= 2.*1\[78\].*" "continue, hit watch"
-
-gdb_test "set glob=999" ".*.*" "set"
-gdb_test "p glob" ".*= 999.*.*" "print glob"
-gdb_test "p/x glob" ".*= 0x3e7.*" "hex"
-gdb_test "c" ".*atchpoint.*Old.*= 2.*New.*= 6.*2\[12\].*" "continue, 2nd hit watch"
-gdb_test "d 5" "No breakpoint number 5." "del non existing watch"
-gdb_test "c" ".*Breakpoint.*callee.*6.*" "hit bp"
-gdb_test "bt" ".*callee.*6.*main.*25.*" "bt"
-gdb_test "fin" ".*Run till exit.*callee.*Value returned.*0.*" "finish"
-gdb_test "c" ".*Breakpoint.*callee.*6.*" "hit bp again"
-gdb_test "cle" ".*Deleted breakpoint.*" "clear"
-gdb_test "wat glob" ".*atchpoint.*glob.*" "set 2nd watch"
-gdb_test "i wat" ".*" ""
-gdb_test "whe" ".*" ""
-
-# ??rehrauer: We're now disabling watchpoints while an interactive
-# call is "in flight". When/if we can teach gdb how to unwind through
-# the call dummy frame, we can then allow watches during calls, and
-# also then restore this testpoint to the original, commented-out form.
-#
-gdb_test "call callee()" ".*\[0-9\]* = 0.*" "call, didn't hit watch"
-#gdb_test "call callee()" ".*atchpoint.*Old.*= 1000.*New.*= 1001.*\[67\].*being debug.*is done.*" "call, hit watch"
-
-gdb_test "d 4" ".*" "del watch 2"
-gdb_test "d 3" ".*" "del watch 1"
-gdb_test "info break" "No breakpoints or watchpoints."
-# since we have deleted all the watchpoints this test is useless
-#gdb_test "c" ".*Continuing.*" "end call"
-gdb_test "c" ".*Program exited normally.*" "pgm exit"
-
-# Check for production of a core file
-#
-#set exec_output [execute_anywhere "ls core"]
-set exec_output [remote_exec build "ls core"]
-
-if [ regexp "core not found" $exec_output] {
- pass "No core dumped on quit"
-} else {
- if [ regexp "No such file or directory" $exec_output] {
- pass "ls: core: No core dumped on quit"
- } else {
- remote_exec build "rm -f core"
- fail "Core dumped on quit"
- }
-}
-
-
-#========================================
-#
-# "C++" section, using source copied from "misc.cc" from "gdb.c++"
-#
-
-#
-#remote_exec build "rm -f ${binfile}"
-#remote_exec build "CC -g -o ${binfile} ${cpp_srcfile}"
-if {[gdb_compile "${cpp_srcfile}" "${binfile1}" executable {c++ debug}] != ""} {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile1}
-
-# Tests, some copied from misc.exp.
-#
-
- # See what language gdb thinks main() is, prior to reading full symbols.
- # I think this fails for COFF targets.
- setup_xfail "a29k-*-udi"
- send_gdb "show language\n"
- gdb_expect {
- -re ".* source language is \"auto; currently c\\+\\+\".*$gdb_prompt $" {
- pass "deduced language is C++, before full symbols"
- }
- -re ".*$gdb_prompt $" { fail "source language not correct for C++ (psymtabs only)"}
- return
-
- timeout { fail "can't show language (timeout)"}
- return
- }
-
-gdb_test "b main" ".*Breakpoint 1 at.*" ""
-gdb_test "r" ".*Starting program.*Breakpoint 1.*" "run to main"
-gdb_test "ptype Foo" ".*type = class Foo.*static int st;.*int operator.*" "ptype"
-gdb_test "step" ".*inheritance1.*" "step"
-gdb_test "ptype g_anon_union" ".*anon_union.*union.*int a;.*" "anon"
-gdb_test "p g_E" ".*class D.*class B.*class A.*class C.*class A.*x = 0.*" "print inherited class "
-gdb_test "p g_E.x = 99" ".*warn.*x ambiguous; using E::x. Use a cast to disambig.*99.*" "set via print"
-gdb_test "c" ".*Program exited.*" "run to end"
-
-gdb_exit
-
-# Check for production of a core file
-#
-#set exec_output [execute_anywhere "ls core"]
-set exec_output [remote_exec build "ls core"]
-if [ regexp "core not found" $exec_output] {
- pass "No core dumped on quit"
-} else {
- if [ regexp "No such file or directory" $exec_output] {
- pass "ls: core: No core dumped on quit"
- } else {
- remote_exec build "rm -f core"
- fail "Core dumped on quit"
- }
-}
-
-# execute_anywhere "rm -f ${binfile1}"
-#
-return 0