diff options
-rw-r--r-- | binutils/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/ar.exp | 84 |
2 files changed, 91 insertions, 0 deletions
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 178b3eb..773070b 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-05-02 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/12720 + * binutils-all/ar.exp (delete_an_element): New. + (move_an_element): Likewise. + Run delete_an_element and move_an_element. + 2011-04-30 H.J. Lu <hongjiu.lu@intel.com> * binutils-all/x86-64/compressed-1a.d: Adjust for change in output diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp index 4b8a2da..0caa847 100644 --- a/binutils/testsuite/binutils-all/ar.exp +++ b/binutils/testsuite/binutils-all/ar.exp @@ -438,6 +438,88 @@ proc unique_symbol { } { pass $testname } +# Test deleting an element. + +proc delete_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar deleting an element" + + 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 "-r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "-d $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Test moving an element. + +proc move_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar moving an element" + + 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 "-r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "-m $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + # Run the tests. long_filenames @@ -446,6 +528,8 @@ thin_archive thin_archive_with_nested argument_parsing deterministic_archive +delete_an_element +move_an_element if { [is_elf_format] && ![istarget "*-*-hpux*"] && ![istarget "msp*-*-*"] } { |