public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH 2/9] metadata: parse.sh: Allow to pass list of files
Date: Fri, 23 Feb 2024 15:11:46 +0100	[thread overview]
Message-ID: <20240223141146.GC1463543@pevik> (raw)
In-Reply-To: <ZdiSqReYgNf88ema@yuki>

HI Cyril,

> Hi!
> > +if [ $# -gt 0 ]; then
> > +	tests=$*
> > +else
> > +	tests=$(find testcases/ -name '*.c' | sort)
> > +fi

> This unfortunately does not work when there are unexpected characters in
> the paths. Which shouldn't happen unless you pass an absoulte path to
> the script which contains for example space.

Ah :(.

> I do not think that we can safely pass a list in a variable without
> breaking it in that case. E.g. it works directly with $* or $@ if it's
> quoted properly as:

> for test in "$@"; do
> 	...

OK, we can either drop it entirely, or use something like this (I'm not happy
about global):

parse()
{
	local test="$1"

	a=$($top_builddir/metadata/metaparse -Iinclude -Itestcases/kernel/syscalls/utils/ "$test")
	if [ -n "$a" ]; then
		if [ -z "$first" ]; then
			echo ','
		fi
		first=
		cat <<EOF
$a
EOF
	fi
}

first=1

if [ $# -gt 0 ]; then
	for test in "$@"; do
		parse "$test"
	done
else
	for test in $(find testcases/ -name '*.c' | sort); do
		parse "$test"
	done
fi

> But as long as you pass $@ indirectly it breaks on spaces.


> Note that the subshell $() with find has the same problem, but there is
> much less room for breaking something because that is passed relative
> paths inside of LTP.

> And yes I hate argument parsing in shell..

Yeah, we all love shell pitfalls :).

Kind regards,
Petr

> > +for test in $tests; do
> >  	a=$($top_builddir/metadata/metaparse -Iinclude -Itestcases/kernel/syscalls/utils/ "$test")
> >  	if [ -n "$a" ]; then
> >  		if [ -z "$first" ]; then

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

  reply	other threads:[~2024-02-23 14:12 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 20:46 [LTP] [PATCH 0/9] metadata: improvements Petr Vorel
2024-01-04 20:46 ` [LTP] [PATCH 1/9] metaparse: Print parsing file on verbose Petr Vorel
2024-01-05 12:03   ` Petr Vorel
2024-02-23 12:12     ` Cyril Hrubis
2024-02-23 13:51       ` Petr Vorel
2024-02-23 12:24   ` Cyril Hrubis
2024-01-04 20:46 ` [LTP] [PATCH 2/9] metadata: parse.sh: Allow to pass list of files Petr Vorel
2024-02-23 12:42   ` Cyril Hrubis
2024-02-23 14:11     ` Petr Vorel [this message]
2024-01-04 20:46 ` [LTP] [PATCH 3/9] metadata: parse.sh: Pass -v to metaparse on VERBOSE=1 Petr Vorel
2024-02-23 12:46   ` Cyril Hrubis
2024-02-23 14:33     ` Petr Vorel
2024-02-23 14:37       ` Petr Vorel
2024-02-23 14:40       ` Cyril Hrubis
2024-01-04 20:46 ` [LTP] [PATCH 4/9] metadata: test.sh: Print more info " Petr Vorel
2024-02-23 12:53   ` Cyril Hrubis
2024-02-23 14:54     ` Petr Vorel
2024-01-04 20:46 ` [LTP] [PATCH 5/9] metaparse: Verbose output on V=1 Petr Vorel
2024-02-23 12:50   ` Cyril Hrubis
2024-02-23 14:40     ` Petr Vorel
2024-01-04 20:46 ` [LTP] [PATCH 6/9] metaparse: Add missing blank line on the list Petr Vorel
2024-02-23 13:08   ` Cyril Hrubis
2024-02-23 14:42     ` Cyril Hrubis
2024-02-23 15:04     ` Petr Vorel
2024-01-04 20:46 ` [LTP] [PATCH 7/9] metadata: Add test for missing blank line in list Petr Vorel
2024-01-04 20:46 ` [LTP] [PATCH 8/9] ci/debian: Allow to install packages only for docparse Petr Vorel
2024-02-23 13:17   ` Cyril Hrubis
2024-02-23 13:46     ` Petr Vorel
2024-01-04 21:23 ` [LTP] [PATCH 0/9] metadata: improvements Petr Vorel
  -- strict thread matches above, loose matches on Subject: below --
2024-01-04 21:16 Petr Vorel
2024-01-04 21:16 ` [LTP] [PATCH 2/9] metadata: parse.sh: Allow to pass list of files Petr Vorel

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=20240223141146.GC1463543@pevik \
    --to=pvorel@suse.cz \
    --cc=chrubis@suse.cz \
    --cc=ltp@lists.linux.it \
    /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