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