diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-08-16 20:31:34 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-08-16 20:31:34 +0000 |
commit | 58f594cdb752acbd9e5b910cd39f513bcd6ba800 (patch) | |
tree | 878e91a3418bd3f55cdc148735f71de84ac1b9c4 /binutils/bfdtest1.c | |
parent | 8baf7b78b5d92823965cad6263b0e0ea65c9cd36 (diff) | |
download | gdb-58f594cdb752acbd9e5b910cd39f513bcd6ba800.zip gdb-58f594cdb752acbd9e5b910cd39f513bcd6ba800.tar.gz gdb-58f594cdb752acbd9e5b910cd39f513bcd6ba800.tar.bz2 |
Add a testcase for PR binutils/14481
binutils/
PR binutils/14481
* Makefile.am (BFDTEST1_PROG): New.
(TEST_PROGS): Likewise.
(bfdtest1_DEPENDENCIES): Likewise.
(noinst_PROGRAMS): Add $(TEST_PROGS).
* Makefile.in: Regenerated.
* bfdtest1.c: New file.
binutils/testsuite/
PR binutils/14481
* ar.exp (bfdtest1): New.
(long_filenames): Run bfdtest1.
(thin_archive): Likewise.
(thin_archive_with_nested): Likewise.
Diffstat (limited to 'binutils/bfdtest1.c')
-rw-r--r-- | binutils/bfdtest1.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/binutils/bfdtest1.c b/binutils/bfdtest1.c new file mode 100644 index 0000000..b246a04 --- /dev/null +++ b/binutils/bfdtest1.c @@ -0,0 +1,68 @@ +/* A program to test BFD. + Copyright 2012 Free Software Foundation, Inc. + + This file is part of the GNU Binutils. + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" + +static void +die (const char *s) +{ + printf ("oops: %s\n", s); + exit (1); +} + +int +main (int argc, char **argv) +{ + bfd *archive; + bfd *last, *next; + + if (argc != 2) + die ("bad usage"); + + archive = bfd_openr (argv[1], NULL); + + if (!bfd_check_format (archive, bfd_archive)) + { + bfd_close (archive); + die ("bfd_check_format"); + } + + for (last = bfd_openr_next_archived_file (archive, NULL); + last; + last = next) + { + next = bfd_openr_next_archived_file (archive, last); + bfd_close (last); + } + + for (last = bfd_openr_next_archived_file (archive, NULL); + last; + last = next) + { + next = bfd_openr_next_archived_file (archive, last); + bfd_close (last); + } + + if (!bfd_close (archive)) + die ("bfd_close"); + + return 0; +} |