diff options
Diffstat (limited to 'ACE/tests/Bug_2980_Regression_Test.cpp')
-rw-r--r-- | ACE/tests/Bug_2980_Regression_Test.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/ACE/tests/Bug_2980_Regression_Test.cpp b/ACE/tests/Bug_2980_Regression_Test.cpp index c8cf34e84fe..50c3b22aabe 100644 --- a/ACE/tests/Bug_2980_Regression_Test.cpp +++ b/ACE/tests/Bug_2980_Regression_Test.cpp @@ -4,6 +4,8 @@ #include <iostream> #include <assert.h> #include <stdio.h> +#include <string.h> +#include <stdlib.h> #include "ace/config-lite.h" @@ -65,7 +67,23 @@ void* loadDll(void*) PRINTF ("loadDll - entered\n"); #if defined (CAN_RUN_TEST) - dllHandle = dlopen(DllTestName, RTLD_NOW); + + const char *subdir_env = getenv ("ACE_EXE_SUB_DIR"); + if (subdir_env) + { + char *dllFile = + (char *) malloc (2 + strlen (subdir_env) + strlen (DllTestName)); + strcpy (dllFile, subdir_env); + strcat (dllFile, "/"); + strcat (dllFile, DllTestName); + dllHandle = dlopen (dllFile, RTLD_NOW); + free (dllFile); + } + else + { + dllHandle = dlopen (DllTestName, RTLD_NOW); + } + if (dllHandle == 0) { PRINTF ("unable to load library: %s\n", dlerror()); |