Update PR ld/21964 tests
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 22 Aug 2017 16:41:21 +0000 (09:41 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 22 Aug 2017 16:41:43 +0000 (09:41 -0700)
* testsuite/ld-elf/pr21964-1a.c (foo): Renamed to ...
(foo1): This.
* testsuite/ld-elf/pr21964-1b.c: Rewrite.
* testsuite/ld-elf/pr21964-1c.c: New file.
* testsuite/ld-elf/pr21964-2c.c: Likewise.
* testsuite/ld-elf/pr21964-2a.c (foo): Renamed to ...
(foo1): This.
* testsuite/ld-elf/pr21964-2b.c: Rewrite.
* testsuite/ld-elf/shared.exp: Update PR ld/21964 tests.

ld/ChangeLog
ld/testsuite/ld-elf/pr21964-1a.c
ld/testsuite/ld-elf/pr21964-1b.c
ld/testsuite/ld-elf/pr21964-1c.c [new file with mode: 0644]
ld/testsuite/ld-elf/pr21964-2a.c
ld/testsuite/ld-elf/pr21964-2b.c
ld/testsuite/ld-elf/pr21964-2c.c [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index 5e2ddf478e42c837694970c1903fa73dc1725fb6..64e7c743ad635c186815c5be8064f670a6e620e6 100644 (file)
@@ -1,3 +1,16 @@
+2017-08-22  H.J. Lu  <hongjiu.lu@intel.com>
+           Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-elf/pr21964-1a.c (foo): Renamed to ...
+       (foo1): This.
+       * testsuite/ld-elf/pr21964-1b.c: Rewrite.
+       * testsuite/ld-elf/pr21964-1c.c: New file.
+       * testsuite/ld-elf/pr21964-2c.c: Likewise.
+       * testsuite/ld-elf/pr21964-2a.c (foo): Renamed to ...
+       (foo1): This.
+       * testsuite/ld-elf/pr21964-2b.c: Rewrite.
+       * testsuite/ld-elf/shared.exp: Update PR ld/21964 tests.
+
 2017-08-21  H.J. Lu  <hongjiu.lu@intel.com>
            Alan Modra  <amodra@gmail.com>
 
index f2eae5355274d7f9582c7c314e725ca20c2b703a..680bda4dbfe54c07d12eac08beb1a84e23e05cf1 100644 (file)
@@ -1,6 +1,7 @@
 extern int __start___verbose[];
 extern int __stop___verbose[];
-int foo (void)
+int
+foo1 (void)
 {
   static int my_var __attribute__((used, section("__verbose"))) = 5;
   if (__start___verbose == __stop___verbose
index 440c937f786e5a93ddbf77ffe5d31caffcd84156..1507b2280886ca2f1fe653cce15603d6743faf0f 100644 (file)
@@ -1,24 +1,12 @@
-#include <stdio.h>
-
-extern int foo (void);
-
 extern int __start___verbose[];
 extern int __stop___verbose[];
-static int my_var __attribute__((used, section("__verbose"))) = 6;
-int bar (void)
+int
+foo2 (void)
 {
-  if (__start___verbose == __stop___verbose)
+  static int my_var __attribute__((used, section("__verbose"))) = 10;
+  if (__start___verbose == __stop___verbose
+      || __start___verbose[0] != 10)
     return -1;
-
-  if (__start___verbose[0] != 6)
-    return -2;
   else
     return 0;
 }
-
-int main()
-{
-  if (bar () == 0 && foo () == 0)
-    printf ("PASS\n");
-  return 0;
-}
diff --git a/ld/testsuite/ld-elf/pr21964-1c.c b/ld/testsuite/ld-elf/pr21964-1c.c
new file mode 100644 (file)
index 0000000..996a9e1
--- /dev/null
@@ -0,0 +1,29 @@
+#include <stdio.h>
+
+extern int foo1 (void);
+extern int foo2 (void);
+
+extern int __start___verbose[];
+extern int __stop___verbose[];
+static int my_var __attribute__((used, section("__verbose"))) = 6;
+int
+bar (void)
+{
+  if (__start___verbose == __stop___verbose)
+    return -1;
+
+  if (__start___verbose[0] != 6)
+    return -2;
+  else
+    return 0;
+}
+
+int
+main ()
+{
+  if (bar () == 0
+      && foo1 () == 0
+      && foo2 () == 0)
+    printf ("PASS\n");
+  return 0;
+}
index 617ce75eea3f969069ba3d6a771b48b6a07381a1..6331ff063b9247c994e57cc53f215fa9595088e0 100644 (file)
@@ -1,6 +1,7 @@
 extern int __start___verbose[];
 extern int __stop___verbose[];
-int foo (void)
+int
+foo1 (void)
 {
   static int my_var __attribute__((used, section("__verbose"))) = 5;
   if (__start___verbose == __stop___verbose
index 5f638a3dec8b1519f5cfba84cc90242ce2237ce2..1507b2280886ca2f1fe653cce15603d6743faf0f 100644 (file)
@@ -1,27 +1,12 @@
-#include <dlfcn.h>
-#include <stdio.h>
-
-int main()
+extern int __start___verbose[];
+extern int __stop___verbose[];
+int
+foo2 (void)
 {
-  void *dl;
-  void *sym;
-  int (*func) (void);
-
-  dl = dlopen("pr21964-2.so", RTLD_LAZY);
-  if (!dl)
-    return 1;
-
-  sym = dlsym(dl, "__start___verbose");
-  if (!sym)
-    return 2;
-
-  func = dlsym(dl, "foo");
-  if (!func)
-    return 3;
-  if (func () == 0)
-    printf ("PASS\n");
-
-  dlclose(dl);
-
-  return 0;
+  static int my_var __attribute__((used, section("__verbose"))) = 10;
+  if (__start___verbose == __stop___verbose
+      || __start___verbose[0] != 10)
+    return -1;
+  else
+    return 0;
 }
diff --git a/ld/testsuite/ld-elf/pr21964-2c.c b/ld/testsuite/ld-elf/pr21964-2c.c
new file mode 100644 (file)
index 0000000..f879dd5
--- /dev/null
@@ -0,0 +1,32 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+extern int foo1 (void);
+
+int main()
+{
+  void *dl;
+  void *sym;
+  int (*func) (void);
+
+  if (foo1 () != 0)
+    return 1;
+
+  dl = dlopen("pr21964-2b.so", RTLD_LAZY);
+  if (!dl)
+    return 2;
+
+  sym = dlsym(dl, "__start___verbose");
+  if (!sym)
+    return 3;
+
+  func = dlsym(dl, "foo2");
+  if (!func)
+    return 4;
+  if (func () == 0)
+    printf ("PASS\n");
+
+  dlclose(dl);
+
+  return 0;
+}
index 0802fa24c6884f067bc6c98fa06b69217b8ad297..eee73778da27ac64ffccd450d30a1dd1e5469c3f 100644 (file)
@@ -423,12 +423,18 @@ set build_tests {
   {"Build libpr19073.so"
    "-shared -Wl,--version-script=pr19073.map tmpdir/pr19073a.o" "-fPIC"
    {dummy.c} {{readelf {--dyn-syms --wide} pr19073.rd}} "libpr19073.so"}
-  {"Build pr21964-1.so"
+  {"Build pr21964-1a.so"
    "-shared" "-fPIC"
-   {pr21964-1a.c} {} "pr21964-1.so"}
-  {"Build pr21964-2.so"
+   {pr21964-1a.c} {} "pr21964-1a.so"}
+  {"Build pr21964-1b.so"
    "-shared" "-fPIC"
-   {pr21964-2a.c} {} "pr21964-2.so"}
+   {pr21964-1b.c} {} "pr21964-1b.so"}
+  {"Build pr21964-2a.so"
+   "-shared" "-fPIC"
+   {pr21964-2a.c} {} "pr21964-2a.so"}
+  {"Build pr21964-2b.so"
+   "-shared" "-fPIC"
+   {pr21964-2b.c} {} "pr21964-2b.so"}
 }
 
 run_cc_link_tests $build_tests
@@ -547,8 +553,8 @@ set run_tests [list \
      "-Wl,--no-as-needed,-z,now tmpdir/libpr18458a.so tmpdir/libpr18458b.so" "" \
      {pr18458c.c} "pr18458" "pass.out" ] \
     [list "Run pr21964-1" \
-     "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1.so" "" \
-     {pr21964-1b.c} "pr21964-1" "pass.out" ] \
+     "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1a.so tmpdir/pr21964-1b.so" "" \
+     {pr21964-1c.c} "pr21964-1" "pass.out" ] \
 ]
 
 # NetBSD ELF systems do not currently support the .*_array sections.
@@ -596,8 +602,8 @@ set dlopen_run_tests [list \
      "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
      {dl6dmain.c} "dl6d1" "dl6b.out" ] \
     [list "Run pr21964-2" \
-     "-Wl,--no-as-needed,-rpath,tmpdir $extralibs" "" \
-     {pr21964-2b.c} "pr21964-2" "pass.out" ] \
+     "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-2a.so $extralibs" "" \
+     {pr21964-2c.c} "pr21964-2" "pass.out" ] \
 ]
 
 # Only run them when libdl is available.