1 # Copyright (C) 1993-2016 Free Software Foundation, Inc. 2 3 # This program is free software; you can redistribute it and/or modify 4 # it under the terms of the GNU General Public License as published by 5 # the Free Software Foundation; either version 3 of the License, or 6 # (at your option) any later version. 7 # 8 # This program is distributed in the hope that it will be useful, 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # GNU General Public License for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with this program; if not, write to the Free Software 15 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 16 17 # Please email any bugs, comments, and/or additions to this file to: 18 # bug-dejagnu (at) prep.ai.mit.edu 19 20 # This file was written by Rob Savoye <rob (at) cygnus.com> 21 # and rewritten by Ian Lance Taylor <ian (at) cygnus.com> 22 23 if ![is_remote host] { 24 if {[which $SIZE] == 0} then { 25 perror "$SIZE does not exist" 26 return 27 } 28 } 29 30 send_user "Version [binutil_version $SIZE]" 31 32 33 if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { 34 return 35 } 36 37 if [is_remote host] { 38 set testfile [remote_download host tmpdir/bintest.o] 39 } else { 40 set testfile tmpdir/bintest.o 41 } 42 43 set dec "\[0-9\]+" 44 set hex "\[0-9a-fA-F\]+" 45 46 # Test size with no arguments 47 48 set got [binutils_run $SIZE "$SIZEFLAGS $testfile"] 49 50 set want "($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($hex)\[ \]+${testfile}" 51 52 if ![regexp $want $got all text data bss dtot hextot] then { 53 fail "size (no arguments)" 54 } else { 55 if {$text < 8 || $data < 4} then { 56 # The z80-coff port defaults to a "binary" like output 57 # file format which does not include a data section. 58 setup_xfail "z80-*-coff" 59 fail "size (no arguments)" 60 } else { 61 pass "size (no arguments)" 62 } 63 } 64 65 # Test size -A 66 67 set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"] 68 69 set want "${testfile}.*(text|TEXT|P)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA|D_1)\[^\n\r\]*\[ \]($dec)\[ \]+$dec" 70 71 if ![regexp $want $got all textname textsize dataname datasize] then { 72 fail "size -A" 73 } else { 74 verbose "text size: $textsize" 75 verbose "data size: $datasize" 76 if {$textsize < 8 || $datasize < 4} then { 77 fail "size -A" 78 } else { 79 pass "size -A" 80 } 81 } 82