summaryrefslogtreecommitdiffstats
path: root/poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch')
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch
new file mode 100644
index 000000000..822b26a36
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch
@@ -0,0 +1,80 @@
+From 83d165442d1c3658b6bafa28ddade8ffee7092ad Mon Sep 17 00:00:00 2001
+From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
+Date: Wed, 6 Mar 2019 16:46:49 -0500
+Subject: [PATCH lttng-tools 2/2] Fix: test: unit: the tree origin can be a
+ symlink itself
+
+Problem:
+
+The base tree is defined as "/tmp/.....XXXXXX".
+On systems where "/tmp/" is itself a symlink utils_expand_path will
+expand the tree origin itself.
+
+For example on a base core-image-minimal Yocto build /tmp is a symlink
+to "/var/tmp", which is a symlink to "/var/volatile".
+
+utils_expand_path will return something like this for the symlink test:
+"/var/volative/.....XXXXXX/...." which is the valid result.
+
+Solution:
+
+Simply use realpath on the tree_origin and use this path to perform the
+test validation.
+
+This work was performed in the effort to support yocto fully and be able
+to run the test suite to detect problem as early as possible.
+
+
+Upstream-Status: Accepted [f66e964a2e0c75f5e1a55fbcc963b1c5e2b4519d]
+Backported to 2.11 and 2.10
+
+Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
+---
+ tests/unit/test_utils_expand_path.c | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/tests/unit/test_utils_expand_path.c b/tests/unit/test_utils_expand_path.c
+index d5cab002e..d047c207d 100644
+--- a/tests/unit/test_utils_expand_path.c
++++ b/tests/unit/test_utils_expand_path.c
+@@ -281,8 +281,8 @@ error:
+ static void test_utils_expand_path(void)
+ {
+ char *result;
+- char name[100], tmppath[PATH_MAX];
+- int i;
++ char name[100], tmppath[PATH_MAX], real_tree_origin[PATH_MAX];
++ int i, treelen;
+
+ /* Test valid cases */
+ for (i = 0; i < num_valid_tests; i++) {
+@@ -295,14 +295,24 @@ static void test_utils_expand_path(void)
+ free(result);
+ }
+
++ /*
++ * Get the realpath for the tree_origin since it can itself be a
++ * symlink.
++ */
++ result = realpath(tree_origin, real_tree_origin);
++ if (!result) {
++ fail("realpath failed.");
++ return;
++ }
++
+ /* Test symlink tree cases */
+- int treelen = strlen(tree_origin) + 1;
++ treelen = strlen(real_tree_origin) + 1;
+ for (i = 0; i < num_symlink_tests; i++) {
+ sprintf(name, "symlink tree test case: [tmppath/]%s",
+ symlink_tests_inputs[i].input);
+
+ snprintf(tmppath, PATH_MAX, "%s/%s",
+- tree_origin, symlink_tests_inputs[i].input);
++ real_tree_origin, symlink_tests_inputs[i].input);
+ result = utils_expand_path(tmppath);
+ ok(result != NULL && strcmp(result + treelen,
+ symlink_tests_inputs[i].expected_result) == 0, name);
+--
+2.17.1
+
OpenPOWER on IntegriCloud