From: Simon Marchi Date: Mon, 23 Nov 2020 03:04:27 +0000 (-0500) Subject: gdb/testsuite: add template for test cases X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=199225823d86e3cd6844a4886296610261e3abb4;p=binutils-gdb.git gdb/testsuite: add template for test cases The wiki contains a template for new test cases: https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Building_the_Example_Program ... which is helpful, because even after many years I can't write all the boilerplate for writing a test case without doing some mistakes. However, I think it would be nice to have it in the tree. It's much faster to cp the files than going to the wiki and copy/pasting the contents. As a bonus, the copyright years will get updated in these files, unlike those in the wiki. So they will always be good when we start a new test. If this patch is merged, I plan to change the wiki to just point to these files. gdb/testsuite/ChangeLog: * gdb.base/template.exp: New. * gdb.base/template.c: New. Change-Id: I7dbf068a043b48f83cc325087d70e868eee998c6 --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 91fc9e0112f..185d7cd79c4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-11-22 Simon Marchi + + * gdb.base/template.exp: New. + * gdb.base/template.c: New. + 2020-11-22 Gary Benson PR gdb/26905 diff --git a/gdb/testsuite/gdb.base/template.c b/gdb/testsuite/gdb.base/template.c new file mode 100644 index 00000000000..a09574caec1 --- /dev/null +++ b/gdb/testsuite/gdb.base/template.c @@ -0,0 +1,24 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2020 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 . */ + +int +main (void) +{ + int i = 0; + + return i; /* next-line */ +} diff --git a/gdb/testsuite/gdb.base/template.exp b/gdb/testsuite/gdb.base/template.exp new file mode 100644 index 00000000000..007a1472fee --- /dev/null +++ b/gdb/testsuite/gdb.base/template.exp @@ -0,0 +1,32 @@ +# Copyright 2020 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 . + +# This serves as a template for writing new test cases. Replace this with +# a description of what this test case tests. + +standard_testfile + +if { [prepare_for_testing "failed to prepare" \ + ${testfile} ${srcfile}] } { + return +} + +if { ![runto_main] } { + untested "could not run to main" + return +} + +set lineno [gdb_get_line_number "next-line"] +gdb_test "advance $lineno" "next-line.*" "advance to next-line"