Add a testcase for PR binutils/23460
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 2 Aug 2018 12:00:45 +0000 (05:00 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 2 Aug 2018 12:00:59 +0000 (05:00 -0700)
Add a testcase to limit open files to 16 for AR with plugin.  Before

commit 103da91bc083f94769e3758175a96d06cef1f8fe
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Aug 1 14:34:41 2018 +0100

    Close resource leaks in the BFD library's plugin handler.

it failed with:

../binutils/ar: tmpdir/pr23460f.o: plugin needed to handle lto object

PR binutils/23460
* testsuite/ld-plugin/lto.exp: Run the PR binutils/23460 test.
* testsuite/ld-plugin/pr23460a.c: New file.
* testsuite/ld-plugin/pr23460b.c: Likewise.
* testsuite/ld-plugin/pr23460c.c: Likewise.
* testsuite/ld-plugin/pr23460d.c: Likewise.
* testsuite/ld-plugin/pr23460e.c: Likewise.
* testsuite/ld-plugin/pr23460f.c: Likewise.

ld/ChangeLog
ld/testsuite/ld-plugin/lto.exp
ld/testsuite/ld-plugin/pr23460a.c [new file with mode: 0644]
ld/testsuite/ld-plugin/pr23460b.c [new file with mode: 0644]
ld/testsuite/ld-plugin/pr23460c.c [new file with mode: 0644]
ld/testsuite/ld-plugin/pr23460d.c [new file with mode: 0644]
ld/testsuite/ld-plugin/pr23460e.c [new file with mode: 0644]
ld/testsuite/ld-plugin/pr23460f.c [new file with mode: 0644]

index b1ccec8b0c5e50789256d3721f1dd7ad9881d251..c5838d294bbe56a26a136ee8d33ccfe58930f815 100644 (file)
@@ -1,3 +1,14 @@
+2018-08-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/23460
+       * testsuite/ld-plugin/lto.exp: Run the PR binutils/23460 test.
+       * testsuite/ld-plugin/pr23460a.c: New file.
+       * testsuite/ld-plugin/pr23460b.c: Likewise.
+       * testsuite/ld-plugin/pr23460c.c: Likewise.
+       * testsuite/ld-plugin/pr23460d.c: Likewise.
+       * testsuite/ld-plugin/pr23460e.c: Likewise.
+       * testsuite/ld-plugin/pr23460f.c: Likewise.
+
 2018-08-01  Roland McGrath  <mcgrathr@google.com>
 
        * testsuite/ld-aarch64/ifunc-1-local.d: Adjust regexps to match
index 7c50b0f1021c95ed25d1aeaf140550575f056faa..5d354bfa9e6a6c6d18bcceeb33ff61a4a2c1970b 100644 (file)
@@ -556,6 +556,32 @@ if { [at_least_gcc_version 4 7] } {
     } {
         fail $testname
     }
+
+    run_cc_link_tests [list \
+       [list \
+           "Build pr23460*.o" \
+           "$plug_opt" \
+           "-O2 -fPIC -flto $lto_no_fat" \
+           {pr23460a.c pr23460b.c pr23460c.c \
+            pr23460d.c pr23460e.c pr23460f.c} \
+       ] \
+    ]
+    set exec_output [run_host_cmd "sh" \
+                                 "-c \"ulimit -n 16; \
+                                  $ar -rc $plug_opt \
+                                  tmpdir/libpr23460.a \
+                                  tmpdir/pr23460a.o \
+                                  tmpdir/pr23460b.o \
+                                  tmpdir/pr23460c.o \
+                                  tmpdir/pr23460d.o \
+                                  tmpdir/pr23460e.o \
+                                  tmpdir/pr23460f.o\""]
+    set exec_output [prune_warnings $exec_output]
+    if [string match "" $exec_output] then {
+       pass "PR binutils/23460"
+    } else {
+       fail "PR binutils/23460"
+    }
 }
 
 # Run "ld -r" to generate inputs for complex LTO tests.
diff --git a/ld/testsuite/ld-plugin/pr23460a.c b/ld/testsuite/ld-plugin/pr23460a.c
new file mode 100644 (file)
index 0000000..4a8cd14
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x1 (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr23460b.c b/ld/testsuite/ld-plugin/pr23460b.c
new file mode 100644 (file)
index 0000000..6c178fb
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x2 (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr23460c.c b/ld/testsuite/ld-plugin/pr23460c.c
new file mode 100644 (file)
index 0000000..99b23c5
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x3 (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr23460d.c b/ld/testsuite/ld-plugin/pr23460d.c
new file mode 100644 (file)
index 0000000..432d39b
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x4 (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr23460e.c b/ld/testsuite/ld-plugin/pr23460e.c
new file mode 100644 (file)
index 0000000..2809011
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x5 (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr23460f.c b/ld/testsuite/ld-plugin/pr23460f.c
new file mode 100644 (file)
index 0000000..e500bf5
--- /dev/null
@@ -0,0 +1,4 @@
+void
+x6 (void)
+{
+}