Browse Source

Update the tests a little bit

Eric Andersen 22 years ago
parent
commit
59146c3583
4 changed files with 33 additions and 16 deletions
  1. 9 4
      test/dlopen/Makefile
  2. 4 4
      test/dlopen/libtest1.c
  3. 7 8
      test/dlopen/libtest2.c
  4. 13 0
      test/dlopen/test3.c

+ 9 - 4
test/dlopen/Makefile

@@ -27,6 +27,9 @@ test1: test1.c
 test2: test2.c
 	$(CC) $(CFLAGS) -o test2 test2.c -ldl
 
+test3: test3.c
+	$(CC) $(CFLAGS) -o test3 test3.c -ldl ./libtest1.so ./libtest2.so
+
 libtest1.o: libtest1.c
 	$(CC) $(CFLAGS) -fPIC -c libtest1.c -o libtest1.o
 
@@ -39,11 +42,13 @@ libtest1.so: libtest1.o
 libtest2.so: libtest2.o
 	$(CC) $(CFLAGS) -fPIC -shared -o libtest2.so -Wl,-soname,libtest2.so libtest2.o
 
-run: libtest2.so libtest1.so test1 test2
+run: libtest2.so libtest1.so test1 test2 test3
 	@echo "----------running test 1--------------"
-	-LD_LIBRARY_PATH=`pwd`:. ./test1
+	-LD_LIBRARY_PATH=`pwd`:. LD_DEBUG=all ./test1
 	@echo "----------running test 2--------------"
-	-LD_LIBRARY_PATH=`pwd`:. ./test2
+	-LD_LIBRARY_PATH=`pwd`:. LD_DEBUG=all ./test2
+	@echo "----------running test 3--------------"
+	-LD_LIBRARY_PATH=`pwd`:. LD_DEBUG=all ./test3
 
 clean:
-	rm -f *.o libtest1.so* libtest2.so* test1 test2
+	rm -f *.o libtest1.so* libtest2.so* test1 test2 test3

+ 4 - 4
test/dlopen/libtest1.c

@@ -5,22 +5,22 @@ extern int libtest2_func(const char *s);
 
 void __attribute__((constructor)) libtest1_ctor(void)
 {
-    printf("I am the libtest1 constructor!\n");
+    printf("libtest1: constructor!\n");
 }
 
 void __attribute__((destructor)) libtest1_dtor(void)
 {
-    printf("I am the libtest1 destructor!\n");
+    printf("libtest1: destructor!\n");
 }
 
 void __attribute__((weak)) function1(void)
 {
-    printf("libtest1: I am function1 from libtest1!\n");
+    printf("libtest1: I am weak function1!\n");
 }
 
 void function2(void)
 {
-    printf("libtest1: I am overriding function2!\n");
+    printf("libtest1: I am function2!\n");
 }
 
 

+ 7 - 8
test/dlopen/libtest2.c

@@ -6,33 +6,32 @@ extern int __pthread_mutex_init (void);
 
 void __attribute__((constructor)) libtest2_ctor(void)
 {
-    printf("I am the libtest2 constructor!\n");
+    printf("libtest2: constructor!\n");
 }
 
 void __attribute__((destructor)) libtest2_dtor(void)
 {
-    printf("I am the libtest2 destructor!\n");
+    printf("libtest2: destructor!\n");
 }
 
 void function1(void)
 {
-    printf("libtest2: I am overriding function1!\n");
+    printf("libtest2: I am function1!\n");
 }
 
 void __attribute__((weak)) function2(void)
 {
-    printf("libtest2: I am function2 from libtest2!\n");
+    printf("libtest2: I am weak function2!\n");
 }
 
 
 int libtest2_func(const char *s)
 {
+    printf( "libtest2: function1 = %p\n"
+	    "libtest2: function2 = %p\n",
+	    function1, function2);
     function1();
     function2();
-    printf( "libtest2: function1 = %p\n"
-	    "libtest2: function2 = %p\n"
-	    "libtest2: message from main() = '%s'\n",
-	    function1, function2, s);
     return 0;
 }
 

+ 13 - 0
test/dlopen/test3.c

@@ -0,0 +1,13 @@
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <dlfcn.h>
+
+extern int dltest(const char *s);
+
+int main(int argc, char **argv)
+{
+	dltest("hello world!");
+	return EXIT_SUCCESS;
+}
+