[LTP] [PATCH V2 4/9] ftrace_stress: skip unsupported tests

Chunyu Hu chuhu@redhat.com
Wed May 11 13:14:00 CEST 2016



----- Original Message -----
> From: "Cyril Hrubis" <chrubis@suse.cz>
> To: "Chunyu Hu" <chuhu@redhat.com>
> Cc: ltp@lists.linux.it, liwan@redhat.com
> Sent: Tuesday, May 10, 2016 10:25:04 PM
> Subject: Re: [LTP] [PATCH V2 4/9] ftrace_stress: skip unsupported tests
> 
> Hi!
> > > > +	local p=1;
> > > > +	while [ $p -lt $NR_PIDS ]; do
> > > > +                local kill_pid=pid${p}
> > > > +                kill -KILL ${!kill_pid}
> > >                                 ^
> > > 				Bashism.
> > 
> > I am trying to change to use this way
> > 
> >     local pid_var=pid${p}
> >                 eval local kill_pid=\$${pid_var}
> >                 tst_resm TINFO "killing ${kill_pid}"
> >                 eval kill -KILL $kill_pid
> >                 wait ${kill_pid}
> > 
> > maybe i'm still using bashism?  thanks. if it's ok
> > then i will use this way.
> > 
> > Ideally i should find a dash to try. but i have not
> > found the package in rhel.
> 
> You can always compile it from source:
> 
> http://gondor.apana.org.au/~herbert/dash/files/

Thanks. I compiled and tried, although test didn't hit issue,
but this is all because it's using sh xxxxx.sh to execute sub tests,
if i executed the cmd on bash directly, it would tell me the error.


> 
> And there also seems to be debian devel perl script that can check for
> bashism, maybe we can start using it to check shell scripts:
> 
> https://anonscm.debian.org/cgit/collab-maint/devscripts.git/tree/scripts/checkbashisms.pl

Thanks for the useful info, I tried the tool, it did find the bashism issue of ${!var}. 
and it also found another issue in ftrace_tracing_cpu_mask.sh of $(( a | (1 << $b) )),
i have changed to use $((a | $(( 1 << $b)) )) instead. 


> > > > +export_pids()
> > > > +{
> > > > +	local p=0
> > > > +	while [ $p -lt $NR_PIDS ]; do
> > > > +		export pid${p}
> > > > +		p=$((p + 1))
> > > > +	done
> > > > +}
> > > >  
> > > > +cd ftrace_stress/
> > > 
> > > Why the cd? It does not seem to be needed.
> > 
> > as currently we are in ftrace_test/, but sub stresses
> > cases are in ftrace_test/ftrace_stress/
> > 
> > in test_stress(), i start the sub script using
> > 
> >   sh ftrace_${target}.sh &
> > 
> > This make the path shorter. If you don't have objection,
> > I will move the cd ftrace_stress/ into test_stress().
> > What do you think of this?
> 
> The stress tests are installed into $DESTDIR/testcases/bin/ aren't they?
> 
> If that is the case these scripts are in $PATH and could be executed
> without fiddling with full path.

[root@dhcp-chuhu bin]# ls ftrace_*  -d
ftrace_lib.sh  ftrace_regression01.sh  ftrace_regression02.sh  ftrace_stress  ftrace_stress_test.sh
[root@dhcp-chuhu bin]# pwd
/opt/ltp/testcases/bin

tests are under subdir ftrace_stress of bin. so we need a cd. 
but also  can just remove it and use ftrace_stress/${target}.sh
instead, ok, i will use this way.  Please ignore the previous V3,
that's not complete considering this.

> --
> Cyril Hrubis
> chrubis@suse.cz
> 

-- 
Regards,
Chunyu Hu



More information about the ltp mailing list