X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Ftestsuite%2Fgdb.reverse%2Finsn-reverse.c;h=b3881d44251cd168cc4ac81808f13396f92efadd;hb=9c027c2f6c5cdb3db0b8c72c06b691c5ba502279;hp=08d382d080b49bbca06246159db452aa10012607;hpb=c524d11e50729ac1a14ac1e749d9a5c459881391;p=deliverable%2Fbinutils-gdb.git
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.c b/gdb/testsuite/gdb.reverse/insn-reverse.c
index 08d382d080..b3881d4425 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse.c
+++ b/gdb/testsuite/gdb.reverse/insn-reverse.c
@@ -15,6 +15,9 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
+#include
+#include
+
typedef void (*testcase_ftype) (void);
/* The arch-specific files need to implement both the initialize function
@@ -45,16 +48,48 @@ initialize (void)
array is defined together with them. */
static int n_testcases = (sizeof (testcases) / sizeof (testcase_ftype));
+static void
+usage (void)
+{
+ printf ("usage: insn-reverse <0-%d>\n", n_testcases - 1);
+}
+
+static int test_nr;
+
+static void
+parse_args (int argc, char **argv)
+{
+ if (argc != 2)
+ {
+ usage ();
+ exit (1);
+ }
+
+ char *tail;
+ test_nr = strtol (argv[1], &tail, 10);
+ if (*tail != '\0')
+ {
+ usage ();
+ exit (1);
+ }
+
+ int in_range_p = 0 <= test_nr && test_nr < n_testcases;
+ if (!in_range_p)
+ {
+ usage ();
+ exit (1);
+ }
+}
+
int
-main ()
+main (int argc, char **argv)
{
- int i = 0;
+ parse_args (argc, argv);
/* Initialize any required arch-specific bits. */
initialize ();
- for (i = 0; i < n_testcases; i++)
- testcases[i] ();
+ testcases[test_nr] ();
return 0;
}