⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar.exp

📁 binary ultilities binary ultilities binary ultilities
💻 EXP
字号:
#   Copyright (C) 1995, 1997 Free Software Foundation, Inc.# 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.# Please email any bugs, comments, and/or additions to this file to:# bug-dejagnu@prep.ai.mit.edu# Written by Ian Lance Taylor <ian@cygnus.com>if ![is_remote host] {    if {[which $AR] == 0} then {        perror "$AR does not exist"        return    }}# send_user "Version [binutil_version $AR]"# Test long file name supportproc long_filenames { } {    global AR    global host_triplet    set testname "ar long file names"    set n1 "abcdefghijklmnopqrstuvwxyz1"    set n2 "abcdefghijklmnopqrstuvwxyz2"    set file1 tmpdir/$n1    set file2 tmpdir/$n2    remote_file build delete $file1    # Some file systems truncate file names at 14 characters, which    # makes it impossible to run this test.  Check for that now.    set status [catch "set f [open tmpdir/$n1 w]" errs]    if { $status != 0 } {	verbose -log "open tmpdir/$n1 returned $errs"	unsupported $testname	return    }    puts $f "first"    close $f    remote_file build delete $file2    set status [catch "set f [open tmpdir/$n2 w]" errs]    if { $status != 0 } {	verbose -log "open tmpdir/$n2 returned $errs"	unsupported $testname	return    }    puts $f "second"    close $f    if [is_remote host] {	set file1 [remote_download host $file1];	set file2 [remote_download host $file2];	set dest artest.a    } else {	set dest tmpdir/artest.a    }    remote_file host delete $dest;    set got [binutils_run $AR "rc $dest $file1 $file2"]    if [is_remote host] {	remote_upload host $file1 tmpdir/$n1    }    set f [open tmpdir/$n1 r]    gets $f string    close $f    if ![string match "first" $string] {	verbose -log "reading tmpdir/$n1 returned $string"	unsupported $testname	return    }    remote_file host delete $dest;    set got [binutils_run $AR "rc $dest $file1 $file2"]    if ![string match "" $got] {	fail $testname	return    }    remote_file build delete tmpdir/$n1    remote_file build delete tmpdir/$n2    set got [binutils_run $AR "t $dest"]    regsub "\[\r\n \t\]*$" "$got" "" got;    if ![string match "$n1*$n2" $got] {	fail $testname	return    }        if [is_remote host] {	remote_file host delete $file1;	remote_file host delete $file2;    }    verbose -log "$AR x $dest"    set exec_output [binutils_run $AR "x $dest"]    set exec_output [prune_warnings $exec_output]    if ![string match "" $exec_output] {	verbose -log $exec_output	fail $testname	return    }    if [is_remote host] {	remote_upload host $n1 tmpdir/$n1;	remote_upload host $n2 tmpdir/$n2;	set file1 tmpdir/$n1	set file2 tmpdir/$n2    } else {	set file1 $n1	set file2 $n2    }    if ![file exists $file1] {	verbose -log "$file1 does not exist"	fail $testname	return    }    if ![file exists $file2] {	verbose -log "$file2 does not exist"	fail $testname	return    }    set f [open $file1 r]    if { [gets $f line] == -1 || $line != "first" } {	verbose -log "$file1 contents:"	verbose -log "$line"	close $f	fail $testname	return    }    close $f    set f [open $file2 r]    if { [gets $f line] == -1 || $line != "second" } {	verbose -log "$file2 contents:"	verbose -log "$line"	close $f	fail $testname	return    }    close $f    pass $testname}# Test building the symbol table.proc symbol_table { } {    global AR    global AS    global NM    global srcdir    global subdir    set testname "ar symbol table"    if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {	unresolved $testname	return    }    if [is_remote host] {	set archive artest.a	set objfile [remote_download host tmpdir/bintest.o]	remote_file host delete $archive    } else {	set archive tmpdir/artest.a	set objfile tmpdir/bintest.o    }    remote_file build delete tmpdir/artest.a    set got [binutils_run $AR "rc $archive ${objfile}"]    if ![string match "" $got] {	fail $testname	return    }    set got [binutils_run $NM "--print-armap $archive"]    if { ![string match "*text_symbol in bintest.o*" $got] \	 || ![string match "*data_symbol in bintest.o*" $got] \	 || ![string match "*common_symbol in bintest.o*" $got] \	 || [string match "*static_text_symbol in bintest.o*" $got] \	 || [string match "*static_data_symbol in bintest.o*" $got] \	 || [string match "*external_symbol in bintest.o*" $got] } {	fail $testname	return    }    pass $testname}# Run the tests.long_filenamessymbol_table

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -