Home | History | Annotate | Download | only in binutils
      1 /* A program to test BFD.
      2    Copyright (C) 2012-2016 Free Software Foundation, Inc.
      3 
      4    This file is part of the GNU Binutils.
      5 
      6    This program is free software; you can redistribute it and/or modify
      7    it under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3 of the License, or
      9    (at your option) any later version.
     10 
     11    This program is distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with this program; if not, write to the Free Software
     18    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     19    MA 02110-1301, USA.  */
     20 
     21 #include "sysdep.h"
     22 #include "bfd.h"
     23 
     24 static void
     25 die (const char *s)
     26 {
     27   printf ("oops: %s\n", s);
     28   exit (1);
     29 }
     30 
     31 int
     32 main (int argc, char **argv)
     33 {
     34   bfd *archive;
     35   bfd *last, *next;
     36 
     37   if (argc != 2)
     38     die ("usage: bfdtest1 <archive>");
     39 
     40   archive = bfd_openr (argv[1], NULL);
     41   if (archive == NULL)
     42     die ("no such archive");
     43 
     44   if (!bfd_check_format (archive, bfd_archive))
     45     {
     46       bfd_close (archive);
     47       die ("bfd_check_format");
     48     }
     49 
     50   for (last = bfd_openr_next_archived_file (archive, NULL);
     51        last;
     52        last = next)
     53     {
     54       next = bfd_openr_next_archived_file (archive, last);
     55       bfd_close (last);
     56     }
     57 
     58   for (last = bfd_openr_next_archived_file (archive, NULL);
     59        last;
     60        last = next)
     61     {
     62       next = bfd_openr_next_archived_file (archive, last);
     63       bfd_close (last);
     64     }
     65 
     66   if (!bfd_close (archive))
     67     die ("bfd_close");
     68 
     69   return 0;
     70 }
     71