Changeset 8e3bc063 in mainline
- Timestamp:
- 2019-01-14T14:38:18Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1c3c287
- Parents:
- e0e5e6f5
- git-author:
- Jiri Svoboda <jiri@…> (2018-01-13 18:38:00)
- git-committer:
- Jiri Svoboda <jiri@…> (2019-01-14 14:38:18)
- Location:
- uspace
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/dltest/dltest.c
re0e5e6f5 r8e3bc063 91 91 } 92 92 93 /** Test calling function that calls a function that returns a constant */ 94 static bool test_dlfcn_dl_get_constant_via_call(void) 95 { 96 int (*p_dl_get_constant)(void); 97 int val; 98 99 printf("Call dlsym/dl_get_constant_via_call...\n"); 100 101 p_dl_get_constant = dlsym(handle, "dl_get_constant_via_call"); 102 if (p_dl_get_constant == NULL) { 103 printf("FAILED\n"); 104 return false; 105 } 106 107 val = p_dl_get_constant(); 108 109 printf("Got %d, expected %d... ", val, dl_constant); 110 if (val != dl_constant) { 111 printf("FAILED\n"); 112 return false; 113 } 114 115 printf("Passed\n"); 116 return true; 117 } 118 93 119 /** Test calling a function that returns contents of a private initialized 94 120 * variable. … … 564 590 } 565 591 592 /** Test directly calling function that calls a function that returns a constant */ 593 static bool test_lnk_dl_get_constant_via_call(void) 594 { 595 int val; 596 597 printf("Call linked dl_get_constant_via_call...\n"); 598 599 val = dl_get_constant_via_call(); 600 601 printf("Got %d, expected %d... ", val, dl_constant); 602 if (val != dl_constant) { 603 printf("FAILED\n"); 604 return false; 605 } 606 607 printf("Passed\n"); 608 return true; 609 } 610 566 611 /** Test dircetly calling a function that returns contents of a private 567 612 * initialized variable. … … 853 898 return 1; 854 899 900 if (!test_dlfcn_dl_get_constant_via_call()) 901 return 1; 902 855 903 if (!test_dlfcn_dl_get_private_var()) 856 904 return 1; … … 905 953 { 906 954 if (!test_lnk_dl_get_constant()) 955 return 1; 956 957 if (!test_lnk_dl_get_constant_via_call()) 907 958 return 1; 908 959 -
uspace/lib/dltest/dltest.c
re0e5e6f5 r8e3bc063 60 60 { 61 61 return dl_constant; 62 } 63 64 /** Return constant value by calling another function. 65 * 66 * This can be used to test dynamically linked call (via PLT) even in case 67 * binaries are statically linked. 68 */ 69 int dl_get_constant_via_call(void) 70 { 71 return dl_get_constant(); 62 72 } 63 73 -
uspace/lib/dltest/libdltest.h
re0e5e6f5 r8e3bc063 47 47 48 48 extern int dl_get_constant(void); 49 extern int dl_get_constant_via_call(void); 49 50 extern int dl_get_private_var(void); 50 51 extern int *dl_get_private_var_addr(void);
Note:
See TracChangeset
for help on using the changeset viewer.