1*4882a593Smuzhiyunfreediameter ptest cases testmesg_stress.c and testloadext.c need load 2*4882a593Smuzhiyunextensions both build time and runtime. Then they search extensions with 3*4882a593Smuzhiyunbuild directory that causes runtime failures. 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunPass an environment variable to define runtime extension path. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunUpstream-Status: Inappropriate [OE ptest specific] 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunSigned-off-by: Kai Kang <kai.kang@windriver.com> 10*4882a593SmuzhiyunSigned-off-by: Jackie Huang <jackie.huang@windriver.com> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundiff -Nur freeDiameter-1.2.0.orig/tests/testloadext.c freeDiameter-1.2.0/tests/testloadext.c 13*4882a593Smuzhiyun--- freeDiameter-1.2.0.orig/tests/testloadext.c 2014-02-19 17:33:24.785405032 +0800 14*4882a593Smuzhiyun+++ freeDiameter-1.2.0/tests/testloadext.c 2014-02-19 20:08:03.871403924 +0800 15*4882a593Smuzhiyun@@ -49,7 +49,7 @@ 16*4882a593Smuzhiyun { 17*4882a593Smuzhiyun DIR *dir; 18*4882a593Smuzhiyun struct dirent *dp; 19*4882a593Smuzhiyun- char fullname[512]; 20*4882a593Smuzhiyun+ char fullname[1024]; 21*4882a593Smuzhiyun int pathlen; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun /* First, initialize the daemon modules */ 24*4882a593Smuzhiyun@@ -57,11 +57,16 @@ 25*4882a593Smuzhiyun CHECK( 0, fd_queues_init() ); 26*4882a593Smuzhiyun CHECK( 0, fd_msg_init() ); 27*4882a593Smuzhiyun CHECK( 0, fd_rtdisp_init() ); 28*4882a593Smuzhiyun- 29*4882a593Smuzhiyun+ 30*4882a593Smuzhiyun+ char *ext_dir = getenv("EXTENSIONS_DIR"); 31*4882a593Smuzhiyun+ if (ext_dir) 32*4882a593Smuzhiyun+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir); 33*4882a593Smuzhiyun+ else 34*4882a593Smuzhiyun+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); 35*4882a593Smuzhiyun+ 36*4882a593Smuzhiyun /* Find all extensions which have been compiled along the test */ 37*4882a593Smuzhiyun- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions"); 38*4882a593Smuzhiyun- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 ); 39*4882a593Smuzhiyun- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); 40*4882a593Smuzhiyun+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname); 41*4882a593Smuzhiyun+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 ); 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun while ((dp = readdir (dir)) != NULL) { 44*4882a593Smuzhiyun char * dot = strrchr(dp->d_name, '.'); 45*4882a593Smuzhiyundiff -Nur freeDiameter-1.2.0.orig/tests/testmesg_stress.c freeDiameter-1.2.0/tests/testmesg_stress.c 46*4882a593Smuzhiyun--- freeDiameter-1.2.0.orig/tests/testmesg_stress.c 2014-02-19 17:33:24.785405032 +0800 47*4882a593Smuzhiyun+++ freeDiameter-1.2.0/tests/testmesg_stress.c 2014-02-19 20:08:03.928403924 +0800 48*4882a593Smuzhiyun@@ -67,15 +67,20 @@ 49*4882a593Smuzhiyun { 50*4882a593Smuzhiyun DIR *dir; 51*4882a593Smuzhiyun struct dirent *dp; 52*4882a593Smuzhiyun- char fullname[512]; 53*4882a593Smuzhiyun+ char fullname[1024]; 54*4882a593Smuzhiyun int pathlen; 55*4882a593Smuzhiyun struct fd_list all_extensions = FD_LIST_INITIALIZER(all_extensions); 56*4882a593Smuzhiyun struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends); 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun+ char *ext_dir = getenv("EXTENSIONS_DIR"); 59*4882a593Smuzhiyun+ if (ext_dir) 60*4882a593Smuzhiyun+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir); 61*4882a593Smuzhiyun+ else 62*4882a593Smuzhiyun+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); 63*4882a593Smuzhiyun+ 64*4882a593Smuzhiyun /* Find all extensions which have been compiled along the test */ 65*4882a593Smuzhiyun- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: ""); 66*4882a593Smuzhiyun- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 ); 67*4882a593Smuzhiyun- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); 68*4882a593Smuzhiyun+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname); 69*4882a593Smuzhiyun+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 ); 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun while ((dp = readdir (dir)) != NULL) { 72*4882a593Smuzhiyun char * dot = strrchr(dp->d_name, '.'); 73