Linux Test Project
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: shatur.linux@gmail.com
Cc: ltp@lists.linux.it, sturlapati@vmware.com
Subject: Re: [LTP] [PATCH] run-posix-option-group-test.sh: Log and exit if one attempts to run tests without compiling
Date: Fri, 10 Jun 2022 07:41:55 +0200	[thread overview]
Message-ID: <YqLZoyKV2Y8VDIya@pevik> (raw)
In-Reply-To: <20220607221816.50955-1-sturlapati@vmware.com>

Hi Sharan,

> From: Sharan Turlapati <sturlapati@vmware.com>

> Currently, run-posix-option-group-test.sh erroneously
> logs "***Tests Completed***" when no test has actually run if the script is invoked
> to run without actually compiling the tests.

> Check if the .run-test files actually exist before attempting to run them.
> If not found, log a message indicating the problem and suggest to check if
> the tests were compiled. Exit the script without attempting to run other
> tests.
Can you please describe how this happen? open POSIX failed to compile?

...
> +++ b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh
> @@ -22,9 +22,16 @@ EOF

>  run_option_group_tests()
>  {
> -	for test_script in $(find $1 -name '*.run-test' | sort); do
> -		(cd "$(dirname "$test_script")" && ./$(basename "$test_script"))
> -	done
> +	list_of_tests=`find $1 -name '*.run-test' | sort`
> +	if [[ -n $list_of_tests ]]
[[ ]] are bashisms, we require support for POSIX shell (i.e. dash, busybox sh)

TL;DR: simply use:
if [ -n "$list_of_tests" ]; then
NOTE [ ] require using quotes (unlike [[ ]]).

You can check similar error yourself:
$ checkbashisms run-posix-option-group-test.sh
possible bashism in run-posix-option-group-test.sh line 26 (alternative test command ([[ foo ]] should be [ foo ])):
	if [[ -n $list_of_tests ]]

All is described in:
https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines#22-shell-coding-style

> +	then
> +		for test_script in $list_of_tests; do
> +			(cd "$(dirname "$test_script")" && ./$(basename "$test_script"))
> +		done
> +	else
> +		echo ".run-test files not found under $1. Were the tests compiled?"
> +		exit 1
> +	fi
>  }

I'd prefer slightly different version:
* check for error first, then for can be out of else (readability)
* add local

run_option_group_tests()
{
	local list_of_tests

	list_of_tests=`find $1 -name '*.run-test' | sort`

	if [ -z "$list_of_tests" ]; then
		echo ".run-test files not found under $1. Were the tests compiled?"
		exit 1
	fi

	for test_script in $list_of_tests; do
		(cd "$(dirname "$test_script")" && ./$(basename "$test_script"))
	done
}

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2022-06-10  5:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-07 22:18 [LTP] [PATCH] run-posix-option-group-test.sh: Log and exit if one attempts to run tests without compiling shatur.linux
2022-06-10  5:41 ` Petr Vorel [this message]
2022-06-13 13:46   ` Petr Vorel
  -- strict thread matches above, loose matches on Subject: below --
2022-06-07 22:08 shatur.linux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YqLZoyKV2Y8VDIya@pevik \
    --to=pvorel@suse.cz \
    --cc=ltp@lists.linux.it \
    --cc=shatur.linux@gmail.com \
    --cc=sturlapati@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox