Add testcases for "ar -d" and "ar -m".
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 2 May 2011 12:47:47 +0000 (12:47 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 2 May 2011 12:47:47 +0000 (12:47 +0000)
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.

binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/ar.exp

index 178b3eb3fe588e661826802df887cfd6be2c8856..773070be1c28f7d169196b108806da19237527e4 100644 (file)
@@ -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
index 4b8a2dabad56a3d8a25b6fc7184056ea73f03992..0caa84713d3ff1994aca967c13f39f950ca60187 100644 (file)
@@ -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*-*-*"] } {