summaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorMingli Yu <mingli.yu@windriver.com>2022-08-24 17:06:56 +0800
committerKhem Raj <raj.khem@gmail.com>2022-08-24 08:26:55 -0700
commit8e6b9583d67ffa480e23ee61709e32dbbe17af41 (patch)
treedcdd79e3a5f984a1d92e8c2646b7e2849065f6c2 /meta-networking
parenta9bb79e1b9bef281e4d83eb575426c60b5abc5e1 (diff)
downloadmeta-openembedded-8e6b9583d67ffa480e23ee61709e32dbbe17af41.tar.gz
freediameter: fix buildpaths issue
The pass-ptest-env.patch uses ${B}/extensions as the EXTENSIONS_DIR at build time and pass the env variable EXTENSIONS_DIR as ${libdir}/${fd_pkgname} at run time to fix the run time error. But there still exists buildpaths issue. So rework the pass-ptest-env.patch to make sure EXTENSIONS_DIR to be ${libdir}/${fd_pkgname} both in build and run time. Fixes: WARNING: freediameter-1.4.0-r0 do_package_qa: QA Issue: File /usr/lib/freeDiameter/ptest/testloadext in package freediameter-ptest contains reference to TMPDIR File /usr/lib/freeDiameter/ptest/testmesg_stress in package freediameter-ptest contains reference to TMPDIR File /usr/lib/freeDiameter/ptest/CTestTestfile.cmake in package freediameter-ptest contains reference to TMPDIR [buildpaths] WARNING: freediameter-1.4.0-r0 do_package_qa: QA Issue: File /usr/src/debug/freediameter/1.4.0-r0/build/libfdcore/fdd.tab.c in package freediameter-src contains reference to TMPDIR Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch92
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch72
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/run-ptest1
-rw-r--r--meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb7
4 files changed, 97 insertions, 75 deletions
diff --git a/meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch b/meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch
new file mode 100644
index 000000000..4cedc21ce
--- /dev/null
+++ b/meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch
@@ -0,0 +1,92 @@
1From 935fcac46e2790e0e297ca855b8033895c1b8941 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Wed, 24 Aug 2022 13:45:32 +0800
4Subject: [PATCH] tests: use EXTENSIONS_DIR
5
6Use EXTENSIONS_DIR to replace BUILD_DIR as the BUILD_DIR is meanlingless
7on target and also fix buildpaths issue.
8
9Upstream-Status: Inappropriate [OE ptest specific]
10
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12---
13 tests/CMakeLists.txt | 1 +
14 tests/testloadext.c | 12 ++++++------
15 tests/testmesg_stress.c | 12 ++++++------
16 3 files changed, 13 insertions(+), 12 deletions(-)
17
18diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
19index 8b698ce..2c83cbb 100644
20--- a/tests/CMakeLists.txt
21+++ b/tests/CMakeLists.txt
22@@ -37,6 +37,7 @@ SET(TEST_LIST
23
24 ADD_DEFINITIONS(-DTEST_DEBUG)
25 ADD_DEFINITIONS(-DBUILD_DIR="${CMAKE_BINARY_DIR}")
26+ADD_DEFINITIONS(-DEXTENSIONS_DIR="${EXTENSIONS_DIR}")
27
28 INCLUDE_DIRECTORIES( "../libfdproto" )
29 INCLUDE_DIRECTORIES( "../libfdcore" )
30diff --git a/tests/testloadext.c b/tests/testloadext.c
31index 452737f..3fffef5 100644
32--- a/tests/testloadext.c
33+++ b/tests/testloadext.c
34@@ -35,9 +35,9 @@
35
36 #include "tests.h"
37
38-#ifndef BUILD_DIR
39-#error "Missing BUILD_DIR information"
40-#endif /* BUILD_DIR */
41+#ifndef EXTENSIONS_DIR
42+#error "Missing EXTENSIONS_DIR information"
43+#endif /* EXTENSIONS_DIR */
44
45 #include <sys/types.h>
46 #include <dirent.h>
47@@ -59,9 +59,9 @@ int main(int argc, char *argv[])
48 CHECK( 0, fd_rtdisp_init() );
49
50 /* Find all extensions which have been compiled along the test */
51- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions");
52- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
53- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
54+ TRACE_DEBUG(INFO, "Loading from: '%s'", EXTENSIONS_DIR);
55+ CHECK( 0, (dir = opendir (EXTENSIONS_DIR)) == NULL ? 1 : 0 );
56+ pathlen = snprintf(fullname, sizeof(fullname), EXTENSIONS_DIR "/");
57
58 while ((dp = readdir (dir)) != NULL) {
59 char * dot = strrchr(dp->d_name, '.');
60diff --git a/tests/testmesg_stress.c b/tests/testmesg_stress.c
61index 310a9d2..97dfe07 100644
62--- a/tests/testmesg_stress.c
63+++ b/tests/testmesg_stress.c
64@@ -38,9 +38,9 @@
65 #include <libgen.h>
66 #include <dlfcn.h>
67
68-#ifndef BUILD_DIR
69-#error "Missing BUILD_DIR information"
70-#endif /* BUILD_DIR */
71+#ifndef EXTENSIONS_DIR
72+#error "Missing EXTENSIONS_DIR information"
73+#endif /* EXTENSIONS_DIR */
74
75
76 /* The number of times each operation is repeated to measure the average operation time */
77@@ -73,9 +73,9 @@ static void load_all_extensions(char * prefix)
78 struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends);
79
80 /* Find all extensions which have been compiled along the test */
81- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: "");
82- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
83- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
84+ LOG_D("Loading %s*.fdx from: '%s'", EXTENSIONS_DIR, prefix ?: "");
85+ CHECK( 0, (dir = opendir (EXTENSIONS_DIR)) == NULL ? 1 : 0 );
86+ pathlen = snprintf(fullname, sizeof(fullname), EXTENSIONS_DIR "/");
87
88 while ((dp = readdir (dir)) != NULL) {
89 char * dot = strrchr(dp->d_name, '.');
90--
912.25.1
92
diff --git a/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch b/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch
deleted file mode 100644
index ea857af7d..000000000
--- a/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1freediameter ptest cases testmesg_stress.c and testloadext.c need load
2extensions both build time and runtime. Then they search extensions with
3build directory that causes runtime failures.
4
5Pass an environment variable to define runtime extension path.
6
7Upstream-Status: Inappropriate [OE ptest specific]
8
9Signed-off-by: Kai Kang <kai.kang@windriver.com>
10Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
11
12diff -Nur freeDiameter-1.2.0.orig/tests/testloadext.c freeDiameter-1.2.0/tests/testloadext.c
13--- freeDiameter-1.2.0.orig/tests/testloadext.c 2014-02-19 17:33:24.785405032 +0800
14+++ freeDiameter-1.2.0/tests/testloadext.c 2014-02-19 20:08:03.871403924 +0800
15@@ -49,7 +49,7 @@
16 {
17 DIR *dir;
18 struct dirent *dp;
19- char fullname[512];
20+ char fullname[1024];
21 int pathlen;
22
23 /* First, initialize the daemon modules */
24@@ -57,11 +57,16 @@
25 CHECK( 0, fd_queues_init() );
26 CHECK( 0, fd_msg_init() );
27 CHECK( 0, fd_rtdisp_init() );
28-
29+
30+ char *ext_dir = getenv("EXTENSIONS_DIR");
31+ if (ext_dir)
32+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir);
33+ else
34+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
35+
36 /* Find all extensions which have been compiled along the test */
37- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions");
38- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
39- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
40+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname);
41+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 );
42
43 while ((dp = readdir (dir)) != NULL) {
44 char * dot = strrchr(dp->d_name, '.');
45diff -Nur freeDiameter-1.2.0.orig/tests/testmesg_stress.c freeDiameter-1.2.0/tests/testmesg_stress.c
46--- freeDiameter-1.2.0.orig/tests/testmesg_stress.c 2014-02-19 17:33:24.785405032 +0800
47+++ freeDiameter-1.2.0/tests/testmesg_stress.c 2014-02-19 20:08:03.928403924 +0800
48@@ -67,15 +67,20 @@
49 {
50 DIR *dir;
51 struct dirent *dp;
52- char fullname[512];
53+ char fullname[1024];
54 int pathlen;
55 struct fd_list all_extensions = FD_LIST_INITIALIZER(all_extensions);
56 struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends);
57
58+ char *ext_dir = getenv("EXTENSIONS_DIR");
59+ if (ext_dir)
60+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir);
61+ else
62+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
63+
64 /* Find all extensions which have been compiled along the test */
65- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: "");
66- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
67- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
68+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname);
69+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 );
70
71 while ((dp = readdir (dir)) != NULL) {
72 char * dot = strrchr(dp->d_name, '.');
diff --git a/meta-networking/recipes-protocols/freediameter/files/run-ptest b/meta-networking/recipes-protocols/freediameter/files/run-ptest
index d0ca8d962..3c841644b 100644
--- a/meta-networking/recipes-protocols/freediameter/files/run-ptest
+++ b/meta-networking/recipes-protocols/freediameter/files/run-ptest
@@ -6,6 +6,5 @@ if ! lsmod | grep -q sctp && ! modprobe sctp 2>/dev/null; then
6 echo 6 echo
7fi 7fi
8 8
9export EXTENSIONS_DIR=$EXTENSIONS_DIR
10cmake -E cmake_echo_color --cyan "Running tests..." 9cmake -E cmake_echo_color --cyan "Running tests..."
11ctest --force-new-ctest-process 10ctest --force-new-ctest-process
diff --git a/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
index 3ec20d3ab..93a607d3c 100644
--- a/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
+++ b/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
@@ -18,7 +18,7 @@ SRC_URI = "\
18 file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \ 18 file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \
19 file://freediameter.service \ 19 file://freediameter.service \
20 file://freediameter.init \ 20 file://freediameter.init \
21 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://pass-ptest-env.patch', '', d)} \ 21 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://0001-tests-use-EXTENSIONS_DIR.patch', '', d)} \
22 file://freeDiameter.conf \ 22 file://freeDiameter.conf \
23 file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \ 23 file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \
24 " 24 "
@@ -46,6 +46,7 @@ EXTRA_OECMAKE = " \
46 -DBUILD_TEST_RT_ANY:BOOL=ON \ 46 -DBUILD_TEST_RT_ANY:BOOL=ON \
47 -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \ 47 -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \
48 -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${fd_pkgname} \ 48 -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${fd_pkgname} \
49 -DEXTENSIONS_DIR:PATH=${libdir}/${fd_pkgname} \
49 -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \ 50 -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \
50 -DCMAKE_SKIP_RPATH:BOOL=ON \ 51 -DCMAKE_SKIP_RPATH:BOOL=ON \
51" 52"
@@ -107,13 +108,15 @@ EOF
107 openssl req -x509 -config ${STAGING_DIR_NATIVE}/etc/ssl/openssl.cnf -newkey rsa:4096 -sha256 -nodes -out ${D}${sysconfdir}/freeDiameter/${FD_PEM} -keyout ${D}${sysconfdir}/freeDiameter/${FD_KEY} -days 3650 -subj '/CN=${FD_HOSTNAME}.${FD_REALM}' 108 openssl req -x509 -config ${STAGING_DIR_NATIVE}/etc/ssl/openssl.cnf -newkey rsa:4096 -sha256 -nodes -out ${D}${sysconfdir}/freeDiameter/${FD_PEM} -keyout ${D}${sysconfdir}/freeDiameter/${FD_KEY} -days 3650 -subj '/CN=${FD_HOSTNAME}.${FD_REALM}'
108 openssl dhparam -out ${D}${sysconfdir}/freeDiameter/${FD_DH_PEM} 1024 109 openssl dhparam -out ${D}${sysconfdir}/freeDiameter/${FD_DH_PEM} 1024
109 110
111 find ${B} \( -name "*.c" -o -name "*.h" \) -exec sed -i -e 's#${WORKDIR}##g' {} \;
110} 112}
111 113
112do_install_ptest() { 114do_install_ptest() {
113 sed -i "s#\(EXTENSIONS_DIR=\).*\$#\1${libdir}/${fd_pkgname}/#" ${D}${PTEST_PATH}/run-ptest
114 mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/ 115 mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/
115 rmdir ${D}${PTEST_PATH}-tests 116 rmdir ${D}${PTEST_PATH}-tests
116 install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/ 117 install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/
118 sed -i -e 's#${WORKDIR}##g' ${D}${PTEST_PATH}/CTestTestfile.cmake
119 sed -i "/^set_tests_properties/d" ${D}${PTEST_PATH}/CTestTestfile.cmake
117} 120}
118 121
119FILES:${PN}-dbg += "${libdir}/${fd_pkgname}/.debug/*" 122FILES:${PN}-dbg += "${libdir}/${fd_pkgname}/.debug/*"