Home | History | Annotate | Download | only in testsuite
      1 #!/bin/sh
      2 
      3 # dwp_test_2.sh -- Test the dwp tool.
      4 
      5 # Copyright (C) 2012-2014 Free Software Foundation, Inc.
      6 # Written by Cary Coutant <ccoutant (at] google.com>.
      7 
      8 # This file is part of gold.
      9 
     10 # This program is free software; you can redistribute it and/or modify
     11 # it under the terms of the GNU General Public License as published by
     12 # the Free Software Foundation; either version 3 of the License, or
     13 # (at your option) any later version.
     14 
     15 # This program is distributed in the hope that it will be useful,
     16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     18 # GNU General Public License for more details.
     19 
     20 # You should have received a copy of the GNU General Public License
     21 # along with this program; if not, write to the Free Software
     22 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     23 # MA 02110-1301, USA.
     24 
     25 check()
     26 {
     27     if ! grep -q "$2" "$1"
     28     then
     29 	echo "Did not find expected output:"
     30 	echo "   $2"
     31 	echo ""
     32 	echo "Actual error output below:"
     33 	cat "$1"
     34 	exit 1
     35     fi
     36 }
     37 
     38 check_num()
     39 {
     40     n=$(grep -c "$2" "$1")
     41     if test "$n" -ne "$3"
     42     then
     43 	echo "Found $n occurrences (should find $3):"
     44 	echo "   $2"
     45 	echo ""
     46 	echo "Actual error output below:"
     47 	cat "$1"
     48 	exit 1
     49     fi
     50 }
     51 
     52 STDOUT="dwp_test_2.stdout"
     53 
     54 check $STDOUT "^Contents of the .debug_info.dwo section"
     55 check_num $STDOUT "DW_TAG_compile_unit" 4
     56 check_num $STDOUT "DW_TAG_type_unit" 3
     57 check_num $STDOUT "DW_AT_name.*: C1" 3
     58 check_num $STDOUT "DW_AT_name.*: C2" 2
     59 check_num $STDOUT "DW_AT_name.*: C3" 3
     60 check_num $STDOUT "DW_AT_name.*: testcase1" 6
     61 check_num $STDOUT "DW_AT_name.*: testcase2" 6
     62 check_num $STDOUT "DW_AT_name.*: testcase3" 6
     63 check_num $STDOUT "DW_AT_name.*: testcase4" 4
     64