All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH lttng-tools 2/2] Fix: test: unit: the tree origin can be a symlink itself
       [not found] <20190312183031.20265-1-jonathan.rajotte-julien@efficios.com>
@ 2019-03-12 18:30 ` Jonathan Rajotte
  2019-03-29 18:33 ` [PATCH lttng-tools 1/2] Fix: test: skip test_getcpu_override on single thread system Jérémie Galarneau
  1 sibling, 0 replies; 2+ messages in thread
From: Jonathan Rajotte @ 2019-03-12 18:30 UTC (permalink / raw)
  To: lttng-dev; +Cc: jgalar

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.

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

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH lttng-tools 1/2] Fix: test: skip test_getcpu_override on single thread system
       [not found] <20190312183031.20265-1-jonathan.rajotte-julien@efficios.com>
  2019-03-12 18:30 ` [PATCH lttng-tools 2/2] Fix: test: unit: the tree origin can be a symlink itself Jonathan Rajotte
@ 2019-03-29 18:33 ` Jérémie Galarneau
  1 sibling, 0 replies; 2+ messages in thread
From: Jérémie Galarneau @ 2019-03-29 18:33 UTC (permalink / raw)
  To: Jonathan Rajotte; +Cc: lttng-dev, jgalar

Both patches were merged in master, stable-2.11, stable-2.10, and
stable-2.9.

Thanks!
Jérémie

On Tue, Mar 12, 2019 at 02:30:30PM -0400, Jonathan Rajotte wrote:
> There is no value in performing this test on single thread system
> since the only valid value for the cpu field is 0.
> 
> This test currently fails on single thread system (i.e yocto runquemu)
> on the test_getcpu_override_fail test case.
> 
> Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
> ---
>  .../ust/getcpu-override/test_getcpu_override     | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/regression/ust/getcpu-override/test_getcpu_override b/tests/regression/ust/getcpu-override/test_getcpu_override
> index 4ca385aeb..ee3e31953 100755
> --- a/tests/regression/ust/getcpu-override/test_getcpu_override
> +++ b/tests/regression/ust/getcpu-override/test_getcpu_override
> @@ -157,13 +157,19 @@ plan_tests $NUM_TESTS
>  
>  print_test_banner "$TEST_DESC"
>  
> -if [ -x "$CURDIR/.libs/lttng-ust-getcpu-override-test.so" ]; then
> -	foundobj=1
> -else
> -	foundobj=0
> +if [ ! -x "$CURDIR/.libs/lttng-ust-getcpu-override-test.so" ]; then
> +	skip 0 "No shared object generated. Skipping all tests." $NUM_TESTS && exit 0
> +fi
> +
> +if [ "$num_cpus" -eq "1" ]; then
> +	# Skip the test since we cannot perform it as designed since N mod 1
> +	# is always equals to zero. There is no point testing this on a system
> +	# with a single thread. LTTng-UST limits the get_cpu function to return
> +	# value inside the [0, NUM_CPU - 1] range for a valid event (present in
> +	# trace).
> +	skip 0 "Test system only have a single thread. Skipping all tests." $NUM_TESTS && exit 0
>  fi
>  
> -skip $foundobj "No shared object generated. Skipping all tests." $NUM_TESTS && exit 0
>  
>  TESTS=(
>  	test_getcpu_override_fail
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-03-29 18:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190312183031.20265-1-jonathan.rajotte-julien@efficios.com>
2019-03-12 18:30 ` [PATCH lttng-tools 2/2] Fix: test: unit: the tree origin can be a symlink itself Jonathan Rajotte
2019-03-29 18:33 ` [PATCH lttng-tools 1/2] Fix: test: skip test_getcpu_override on single thread system Jérémie Galarneau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.