2002-11-05 Jeff Johnston <jjohnstn@redhat.com>
* gdb792.cc: New file to test patch for PR gdb/792. * gdb792.exp: Ditto.
This commit is contained in:
parent
6e382aa38c
commit
f80a3b5fb4
3 changed files with 154 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-11-05 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* gdb792.cc: New file to test patch for PR gdb/792.
|
||||
* gdb792.exp: Ditto.
|
||||
|
||||
2002-11-04 Elena Zannoni <ezannoni@redhat.com>
|
||||
|
||||
* mi-console.exp: Use mi_runto, mi_run_to_main, mi_next_to,
|
||||
|
|
59
gdb/testsuite/gdb.mi/gdb792.cc
Normal file
59
gdb/testsuite/gdb.mi/gdb792.cc
Normal file
|
@ -0,0 +1,59 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
class Q
|
||||
{
|
||||
int v;
|
||||
protected:
|
||||
int qx;
|
||||
int qy;
|
||||
int w;
|
||||
};
|
||||
|
||||
class B
|
||||
{
|
||||
int k;
|
||||
public:
|
||||
int bx;
|
||||
int by;
|
||||
};
|
||||
|
||||
class A
|
||||
{
|
||||
int u;
|
||||
|
||||
public:
|
||||
A()
|
||||
{
|
||||
};
|
||||
int x;
|
||||
char buffer[10];
|
||||
|
||||
protected:
|
||||
int y;
|
||||
B b;
|
||||
|
||||
private:
|
||||
float z;
|
||||
};
|
||||
|
||||
class C : public A
|
||||
{
|
||||
public:
|
||||
C()
|
||||
{
|
||||
};
|
||||
int zzzz;
|
||||
private:
|
||||
int ssss;
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A a;
|
||||
C c;
|
||||
Q q;
|
||||
strcpy( a.buffer, "test" );
|
||||
printf ( "%.10s\n", a.buffer );
|
||||
return 0;
|
||||
}
|
90
gdb/testsuite/gdb.mi/gdb792.exp
Normal file
90
gdb/testsuite/gdb.mi/gdb792.exp
Normal file
|
@ -0,0 +1,90 @@
|
|||
# Copyright 2002 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
|
||||
|
||||
#
|
||||
# test gdb/792
|
||||
#
|
||||
|
||||
load_lib mi-support.exp
|
||||
set MIFLAGS "-i=mi"
|
||||
|
||||
gdb_exit
|
||||
if [mi_gdb_start] {
|
||||
continue
|
||||
}
|
||||
|
||||
set testfile gdb792
|
||||
set srcfile "$testfile.cc"
|
||||
set binfile $objdir/$subdir/$testfile
|
||||
|
||||
if [get_compiler_info ${binfile} "c++"] {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""} {
|
||||
gdb_suppress_entire_file "Testcase compile failed, so all test in this file will automatically fail."
|
||||
}
|
||||
|
||||
# Test that children of classes are properly reported
|
||||
|
||||
# Run to main
|
||||
mi_run_to_main
|
||||
|
||||
mi_gdb_test "-var-create - * a" \
|
||||
"(&\".*\"\r\n)*\\^done,name=\"var1\",numchild=\"3\",type=\"A\"" \
|
||||
"create var for class A"
|
||||
|
||||
mi_gdb_test "-var-list-children var1" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"3\",children=\{child=\{name=\"var1\.public\",exp=\"public\",numchild=\"2\"\},child=\{name=\"var1\.private\",exp=\"private\",numchild=\"2\"\},child=\{name=\"var1\.protected\",exp=\"protected\",numchild=\"2\"\}\}" \
|
||||
"list children of class A"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.public" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"2\",children=\{child=\{name=\"var1\.public\.x\",exp=\"x\",numchild=\"0\",type=\"int\"\},child=\{name=\"var1\.public\.buffer\",exp=\"buffer\",numchild=\"10\",type=\"char \\\[10\\\]\"\}\}" \
|
||||
"list children of A.public"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.private" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"2\",children=\{child=\{name=\"var1\.private\.u\",exp=\"u\",numchild=\"0\",type=\"int\"\},child=\{name=\"var1\.private\.z\",exp=\"z\",numchild=\"0\",type=\"float\"\}\}" \
|
||||
"list children of A.private"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.protected" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"2\",children=\{child=\{name=\"var1\.protected\.y\",exp=\"y\",numchild=\"0\",type=\"int\"\},child=\{name=\"var1\.protected\.b\",exp=\"b\",numchild=\"2\",type=\"B\"\}\}" \
|
||||
"list children of A.protected"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.protected.b" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"2\",children=\{child=\{name=\"var1\.protected\.b\.public\",exp=\"public\",numchild=\"2\"\},child=\{name=\"var1\.protected\.b\.private\",exp=\"private\",numchild=\"1\"\}\}" \
|
||||
"list children of A.protected.b"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.protected.b.public" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"2\",children=\{child=\{name=\"var1\.protected\.b\.public\.bx\",exp=\"bx\",numchild=\"0\",type=\"int\"\},child=\{name=\"var1\.protected\.b\.public\.by\",exp=\"by\",numchild=\"0\",type=\"int\"\}\}" \
|
||||
"list children of A.protected.b.public"
|
||||
|
||||
mi_gdb_test "-var-list-children var1.protected.b.private" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"1\",children=\{child=\{name=\"var1\.protected\.b\.private\.k\",exp=\"k\",numchild=\"0\",type=\"int\"\}\}" \
|
||||
"list children of A.protected.b.private"
|
||||
|
||||
mi_gdb_test "-var-create - * c" \
|
||||
"(&\".*\"\r\n)*\\^done,name=\"var2\",numchild=\"3\",type=\"C\"" \
|
||||
"create var for class C which has baseclass A"
|
||||
|
||||
mi_gdb_test "-var-list-children var2" \
|
||||
"(&\".*\"\r\n)*\\^done,numchild=\"3\",children=\{child=\{name=\"var2\.A\",exp=\"A\",numchild=\"3\",type=\"A\"\},child=\{name=\"var2\.public\",exp=\"public\",numchild=\"1\"\},child=\{name=\"var2\.private\",exp=\"private\",numchild=\"1\"\}\}" \
|
||||
"list children of class C"
|
||||
|
||||
mi_gdb_exit
|
||||
return 0
|
Loading…
Reference in a new issue