All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joerg Vehlow <lkml@jv-coder.de>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v2] pec: Fix multiple event test
Date: Mon, 19 Apr 2021 09:34:34 +0200	[thread overview]
Message-ID: <1672a8d4-e278-801b-a2f6-babdc473f42e@jv-coder.de> (raw)
In-Reply-To: <YHnLrGS1lXy5Awvk@pevik>

Hi,

On 4/16/2021 7:38 PM, Petr Vorel wrote:
> Hi Joerg,
>
> ...
>> +# Find a free file handle
>> +free_fd()
>> +{
>> +	local fd
>> +
>> +	for fd in $(seq 200); do
>> +		# Sapwn a new sh, because redirecting to a non existing file handle
>> +		# will trigger a syntax error.
>> +		/bin/sh -c ": 2>/dev/null >&$fd || : 2>/dev/null <&$fd" 2>/dev/null
> Probably better to use sh -c "..."
I used? /bin/sh, because that is the same interpreter specified in the 
shebang. Just using sh could theoretically fail or spawn a different shell.
Maybe $SHELL would be better, but I don't know how widely this is 
supported...

>
>> +		if [ $? -eq 2 ]; then
>> +			echo $fd
>> +			return
>> +		fi
>> +	done
> maybe I do something wrong, but this version fails for me
> (and I'm still testing it only on bash):
>
> cn_pec 1 TINFO: timeout per run is 0h 5m 0s
> cn_pec 1 TINFO: Test process events connector
> cn_pec 1 TINFO: Testing fork event (nevents=10)
> cn_pec 1 TBROK: No free filehandle found
>
> I guess there is something wrong free_fd().

Damn shells... I just realized /bin/sh on my system was dash's sh 
emulation and it does not emulate sh the same way bash does...
The return value in bash is 1, not two... Can you please check the patch 
with [ $? -ne 0 ]? That should work for all shells.

J?rg

  reply	other threads:[~2021-04-19  7:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-15  9:05 [LTP] [PATCH v2] pec: Fix multiple event test Joerg Vehlow
2021-04-16 17:38 ` Petr Vorel
2021-04-19  7:34   ` Joerg Vehlow [this message]
2021-04-19  7:52     ` Petr Vorel
2021-04-23 17:22 ` 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=1672a8d4-e278-801b-a2f6-babdc473f42e@jv-coder.de \
    --to=lkml@jv-coder.de \
    --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 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.