summaryrefslogtreecommitdiff
path: root/ACE/tests/Bug_2980_Regression_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/Bug_2980_Regression_Test.cpp')
-rw-r--r--ACE/tests/Bug_2980_Regression_Test.cpp20
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());