Hi,
Yes, you are right.
Cai Qian
--- Elder Costa <[EMAIL PROTECTED]> wrote:
> Hello, Cai.
>
> Disclaimer: I may be missing something so please be patient. :)
>
> CAI Qian wrote:
> [snipped]
>
> > ltp-cvs-081006a/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh.ORIG
> >> 2008-10-01 09:50:25.000000000 -0300
> >> +++
> >>
> > ltp-cvs-081006a/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh
> >> 2008-10-07 11:23:41.000000000 -0300
> >> @@ -99,7 +99,7 @@
> >> fi
> >>
> >> # Get the semphore ID by "ipcs -s"
> >> -SEMS=`ipcs -s | awk '{printf " %d", $2}' | sed -e 's/ 0//g'`
> >> +SEMS=`LANG= ipcs -s | awk '{print $2}' | grep [[:digit:]]`
> >> for SEM_IPCS in $SEMS
> >> do
> >> if [ $SEM_IPCS -eq $SEM_ID ] ;then
> >
> > No, this will break the original behaviour. In my system,
> >
> > $ ipcs -s | awk '{printf " %d", $2}' | sed -e 's/ 0//g'
> > <empty>
>
> That is exactly the point of the patch. I think the behavior above is
> plain wrong as the script intention is to identify the semaphores ids in
> every line. The first time test_semaphore_01 runs the id is 0, awk's
> output is the string " 0 0 0 0 0" and sed just returns an empty string
> due as the match to occur with the first 0 which is wrong (it
> corresponds to the blank line of ipcs output.) The subsequent runs in
> which the id is nonzero produce the right behavior as the only non zero
> is the id.
>
> >
> > $ LANG= ipcs -s | awk '{print $2}' | grep [[:digit:]]
> > 0
> >
>
> I think this is the intended behavior as the id is 0. awk explicitly
> returns the second column of every line (not formatted so the nonnumeric
> ones are and grep filters out the non numeric ones. There must be a
> better way to to it though.
>
>
> $ LANG= ipcs -s
>
> ------ Semaphore Arrays --------
> key semid owner perms nsems
> 0x00000000 0 elder 660 1
> 0x00000000 32769 elder 660 1
> 0x00000000 65538 elder 660 1
> 0x00000000 98307 elder 660 1
> 0x00000000 131076 elder 660 1
>
> $ ipcs -s | awk '{printf " %d", $2}'
> 0 0 0 0 32769 65538 98307 131076 0
>
> $ ipcs -s | awk '{printf " %d", $2}' | sed -e 's/ 0//g'
> 32769 65538 98307 131076
>
> ^^^^^^^^^^
> id 0 is missed!!!!!
>
>
>
> $ LANG= ipcs -s | awk '{print $2}'
>
> Semaphore
> semid
> 0
> 32769
> 65538
> 98307
> 131076
>
>
> $ LANG= ipcs -s | awk '{print $2}' | grep [[:digit:]]
> 0
> 32769
> 65538
> 98307
> 131076
>
>
> As I said before I may be missing something but the change does not seem
> to break the testcase and the first run does not fail anymore.
>
> Elder.
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list