2009/12/20 Jiří Paleček <[email protected]>: > On Sun, 20 Dec 2009 02:20:27 +0100, Garrett Cooper <[email protected]> > wrote: > >> 2009/12/19 Jiří Paleček <[email protected]>: >>> >>> On Sat, 19 Dec 2009 05:02:45 +0100, Garrett Cooper <[email protected]> >>> wrote: >>> >>>> On Fri, Dec 18, 2009 at 6:16 PM, Jiri Palecek <[email protected]> wrote: >>>>> >>>>> Hello, >>>>> >>>>> I've found some problems with the sendfile01 testcase (the one under >>>>> network/tcp_cmds). This patch fixes them: >>>>> >>>>> Pass the -6 parameter to gethost if we are to use ipv6 and run the >>>>> ipv6 server in that case. Also, fix the awk code for getting the PID: >>>>> The PID is the second column, which is $2, not $1. >>>>> >>>>> Also: >>>>> >>>>> - initialize addrlen for accept syscall in the server (=> avoid >>>>> EINVAL) >>>>> >>>>> - use tst_resm in the client instead of tst_res, to avoid an error >>>>> message interpreted as a filename >>>>> >>>>> Regards >>>>> Jiri Palecek >>>>> >>>>> Signed-off-by: Jiri Palecek <[email protected]> >>>>> --- >>>>> testcases/network/tcp_cmds/sendfile/SF_Server | 2 +- >>>>> testcases/network/tcp_cmds/sendfile/sendfile01 | 10 +++++----- >>>>> testcases/network/tcp_cmds/sendfile/testsf_c.c | 2 +- >>>>> testcases/network/tcp_cmds/sendfile/testsf_s.c | 2 +- >>>>> 4 files changed, 8 insertions(+), 8 deletions(-) >>>>> >>>>> diff --git a/testcases/network/tcp_cmds/sendfile/SF_Server >>>>> b/testcases/network/tcp_cmds/sendfile/SF_Server >>>>> index 2383ce4..9933db4 100755 >>>>> --- a/testcases/network/tcp_cmds/sendfile/SF_Server >>>>> +++ b/testcases/network/tcp_cmds/sendfile/SF_Server >>>>> @@ -3,4 +3,4 @@ >>>>> cd $3 >>>>> exec 1< /dev/null # open descriptor 1 >>>>> exec 2< /dev/null # open descriptor 1 >>>>> -nohup ./testsf_s $1 $2 & >>>>> +nohup ./$4 $1 $2 & >>>>> diff --git a/testcases/network/tcp_cmds/sendfile/sendfile01 >>>>> b/testcases/network/tcp_cmds/sendfile/sendfile01 >>>>> index 4e93447..7dd4fee 100755 >>>>> --- a/testcases/network/tcp_cmds/sendfile/sendfile01 >>>>> +++ b/testcases/network/tcp_cmds/sendfile/sendfile01 >>>>> @@ -61,7 +61,7 @@ do_setup() >>>>> >>>>> exists awk diff gethost grep rsh stat >>>>> >>>>> - IPADDR=$(gethost $RHOST | awk '/addresses:/ {print $2}') >>>>> + IPADDR=$(gethost ${EXEC_SUFFIX:+-6} $RHOST | awk '/addresses:/ >>>>> {print $2}') >>>>> >>>>> } >>>>> >>>>> @@ -81,17 +81,17 @@ do_test() >>>>> >>>>> mkdir -p $TCtmp >>>>> PORT=$$ >>>>> - if ! rsh -l root $IPADDR "$LTPROOT/testcases/bin/SF_Server $IPADDR >>>>> $PORT $LTPROOT/testcases/bin"; then >>>>> + if ! rsh -l root $IPADDR "$LTPROOT/testcases/bin/SF_Server $IPADDR >>>>> $PORT $LTPROOT/testcases/bin $SERVER"; then >>>>> end_testcase "rsh failed to $IPADDR as root failed" >>>>> fi >>>>> sleep 10 >>>>> - PID=$(rsh -l root $IPADDR "ps -ef" | awk "\$0 !~ /awk/ && >>>>> /$SERVER/ >>>>> && /$PORT/ {print \$1}") >>>>> + PID=$(rsh -l root $IPADDR "ps -ef" | awk "\$0 !~ /awk/ && >>>>> /$SERVER/ >>>>> && /$PORT/ {print \$2}") >>>>> [ -n "$PID" ] || end_testcase "Could not start server" >>>>> >>>>> for clnt_fname in $FILES; do >>>>> serv_fname=$TCdat/$clnt_fname >>>>> SIZE=`stat -c '%s' $serv_fname` >>>>> - tst_resm TINFO "Starting $SERVER $IPADDR Client_filename >>>>> Server_filename Size " >>>>> + tst_resm TINFO "Starting $CLIENT $IPADDR Client_filename >>>>> Server_filename Size " >>>>> >>>>> $CLIENT $IPADDR $PORT "$TCtmp/$clnt_fname" $serv_fname $SIZE >>>>> RetVal=$? >>>>> @@ -118,7 +118,7 @@ do_test() >>>>> >>>>> do_cleanup() >>>>> { >>>>> - PID=$(rsh -n -l root $RHOST "ps -ef" | awk "\$0 !~ /awk/ && >>>>> /$SERVER/ && /$PORT/ {print \$1}") >>>>> + PID=$(rsh -n -l root $RHOST "ps -ef" | awk "\$0 !~ /awk/ && >>>>> /$SERVER/ && /$PORT/ {print \$2}") >>>>> [ -n "$PID" ] && rsh -n -l root $RHOST kill -9 $PID >>>>> tst_cleanup >>>>> } >>>>> diff --git a/testcases/network/tcp_cmds/sendfile/testsf_c.c >>>>> b/testcases/network/tcp_cmds/sendfile/testsf_c.c >>>>> index 52b9ecf..7683927 100644 >>>>> --- a/testcases/network/tcp_cmds/sendfile/testsf_c.c >>>>> +++ b/testcases/network/tcp_cmds/sendfile/testsf_c.c >>>>> @@ -120,7 +120,7 @@ main (int argc, char *argv[]) >>>>> } >>>>> } >>>>> >>>>> - tst_res(TINFO, "Asking for remote file: %s", serv_fname); >>>>> + tst_resm(TINFO, "Asking for remote file: %s", serv_fname); >>>>> >>>>> tst_resm(TINFO, "File %s received\n", argv[4]); >>>>> >>>>> diff --git a/testcases/network/tcp_cmds/sendfile/testsf_s.c >>>>> b/testcases/network/tcp_cmds/sendfile/testsf_s.c >>>>> index bc77712..38baf8c 100644 >>>>> --- a/testcases/network/tcp_cmds/sendfile/testsf_s.c >>>>> +++ b/testcases/network/tcp_cmds/sendfile/testsf_s.c >>>>> @@ -92,7 +92,7 @@ main(int argc, char *argv[]) >>>>> tst_exit(); >>>>> } >>>>> >>>>> - socklen_t fromlen; >>>>> + socklen_t fromlen = sizeof(from); >>>>> >>>>> /* process connections */ >>>>> while (1) { >>>> >>>> Hi Jiri, >>>> I agree with you on all points, but the ps column: >>>> >>>> gcoo...@orangebox ~ $ ps ef >>>> PID TTY STAT TIME COMMAND >>>> 4631 tty1 S 0:00 -bash TERM=linux HOME=/home/gcooper >>>> SHELL=/bin/bash U >>>> 4636 tty1 S+ 0:00 \_ /bin/sh /usr/bin/startx >>>> MANPATH=/etc/java-config- >>>> 4652 tty1 S+ 0:00 \_ xinit /etc/X11/xinit/xinitrc -- >>>> -nolisten tcp >>>> 4667 tty1 S 0:00 \_ /bin/sh /etc/X11/xinit/xinitrc >>>> DISPLAY=:0 >>>> 4682 tty1 S 0:00 \_ /bin/sh >>>> /etc/xdg/xfce4/xinitrc >>>> MANPAT >>>> 4699 tty1 S 0:00 \_ /usr/bin/xfce4-session >>>> MANPATH=/e >>>> 4705 tty1 S 0:02 \_ xfwm4 --sm-client-id >>>> 2d6757e3 >>>> 4707 tty1 Sl 0:03 \_ Thunar --sm-client-id >>>> 276f4b6 >>>> 4711 tty1 S 0:06 \_ xfce4-panel -r >>>> --sm-client-id >>>> 4716 tty1 Sl 0:00 | \_ >>>> /usr/libexec/xfce4/panel- >>>> 4724 tty1 Sl 0:00 | \_ >>>> /usr/libexec/xfce4/panel- >>>> 4712 tty1 S 0:01 \_ xfdesktop >>>> --sm-client-id 293b >>>> 21073 tty1 S 0:00 /usr/bin/xterm >>>> MANPATH=/etc/java-config-2/current-sys >>>> 21075 pts/1 Ss 0:00 \_ bash >>>> MANPATH=/etc/java-config-2/current-system-vm >>>> 21080 pts/1 R+ 0:00 \_ ps ef >>>> MANPATH=/etc/java-config-2/current-syst >>>> 3396 tty1 S 0:00 /usr/bin/xterm >>>> MANPATH=/etc/java-config-2/current-sys >>>> 3398 pts/0 Ss 0:00 \_ bash >>>> MANPATH=/etc/java-config-2/current-system-vm >>>> 21065 pts/0 S+ 0:00 \_ vim sendfile01 >>>> MANPATH=/etc/java-config-2/cur >>>> 3350 tty1 Sl 1:02 /usr/bin/firefox >>>> MANPATH=/etc/java-config-2/current-s >>>> 30806 tty1 Sl 5:26 /usr/lib/jvm/sun-jdk-1.6/bin/java -classpath >>>> /usr/sha >>>> 4791 tty1 S 0:00 /usr/libexec/uim-helper-server >>>> MANPATH=/etc/java-conf >>>> 4714 tty1 S 0:00 xfce4-settings-helper --display :0.0 >>>> --sm-client-id 2 >>>> 4706 tty1 S 0:00 xfsettingsd >>>> MANPATH=/etc/java-config-2/current-system >>>> 4696 tty1 S 0:00 /usr/bin/dbus-launch --sh-syntax >>>> --exit-with-session >>>> gcoo...@orangebox ~ $ ps --version >>>> procps version 3.2.8 >>>> >>>> So to bypass this issue I used ps eopid,cmd: >>>> >>>> 400 [crypto/2] >>>> 401 [crypto/3] >>>> 587 [iscsi_eh] >>>> 593 [scsi_eh_0] >>>> 596 [scsi_eh_1] >>>> 599 [scsi_eh_2] >>>> 602 [scsi_eh_3] >>>> 605 [scsi_eh_4] >>>> 608 [scsi_eh_5] >>>> 692 [kpsmoused] >>>> 700 [kstriped] >>>> 703 [kondemand/0] >>>> 704 [kondemand/1] >>>> 705 [kondemand/2] >>>> 706 [kondemand/3] >>>> 729 [usbhid_resumer] >>>> 809 [reiserfs/0] >>>> 810 [reiserfs/1] >>>> 811 [reiserfs/2] >>>> 812 [reiserfs/3] >>>> 1906 /sbin/udevd --daemon >>>> 2303 /usr/sbin/acpid >>>> 3350 /usr/bin/firefox >>>> 3396 /usr/bin/xterm >>>> 3398 bash >>>> 3535 supervising syslog-ng >>>> 3536 /usr/sbin/syslog-ng >>>> 3596 /usr/bin/dbus-daemon --system >>>> 3653 /usr/sbin/crond >>>> 3707 /usr/sbin/gpm -m /dev/input/mice -t ps2 >>>> 3768 /usr/sbin/hald --use-syslog --verbose=no >>>> 3771 hald-runner >>>> 3774 hald-addon-input: Listening on /dev/input/event4 /dev/input/event3 >>>> /dev/in >>>> 3787 hald-addon-storage: polling /dev/sr0 (every 2 sec) >>>> 3790 /usr/libexec/hald-addon-cpufreq >>>> 3791 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket >>>> 4250 /sbin/dhcpcd -h orangebox eth0 >>>> 4339 /sbin/portmap >>>> 4400 /sbin/rpc.statd --no-notify >>>> 4512 /usr/sbin/sshd >>>> 4580 /sbin/agetty 38400 tty2 linux >>>> 4581 /sbin/agetty 38400 tty3 linux >>>> 4582 /sbin/agetty 38400 tty4 linux >>>> 4583 /sbin/agetty 38400 tty5 linux >>>> 4584 /sbin/agetty 38400 tty6 linux >>>> 4613 [rpciod/0] >>>> 4614 [rpciod/1] >>>> 4615 [rpciod/2] >>>> 4616 [rpciod/3] >>>> 4622 [nfsiod] >>>> 4627 [lockd] >>>> 4629 /bin/login -- >>>> 4631 -bash >>>> 4636 /bin/sh /usr/bin/startx >>>> 4652 xinit /etc/X11/xinit/xinitrc -- -nolisten tcp -br -auth >>>> /home/gcooper/.ser >>>> 4653 X :0 -nolisten tcp -br -auth /home/gcooper/.serverauth.4636 >>>> -deferglyphs 1 >>>> 4667 /bin/sh /etc/X11/xinit/xinitrc >>>> 4682 /bin/sh /etc/xdg/xfce4/xinitrc >>>> 4691 /usr/bin/ssh-agent -s >>>> 4696 /usr/bin/dbus-launch --sh-syntax --exit-with-session >>>> 4697 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 >>>> --session >>>> 4699 /usr/bin/xfce4-session >>>> 4701 /usr/libexec/xfconfd >>>> 4705 xfwm4 --sm-client-id 2d6757e33-4d33-453a-ba49-da83d783acde >>>> --display >>>> :0.0 >>>> 4706 xfsettingsd >>>> 4707 Thunar --sm-client-id 276f4b61e-2bba-4207-8e5e-feed55cbe9b4 >>>> --daemon >>>> 4709 /usr/libexec/gam_server >>>> 4711 xfce4-panel -r --sm-client-id >>>> 260365c00-2a57-4640-9170-8e74ce91bf1e >>>> 4712 xfdesktop --sm-client-id 293b54ac0-804e-45e2-9ae9-2b9adbaeddde >>>> --display : >>>> 4714 xfce4-settings-helper --display :0.0 --sm-client-id >>>> 20a17a11f-321d-40f4-87 >>>> 4716 /usr/libexec/xfce4/panel-plugins/xfce4-menu-plugin socket_id >>>> 18874394 name >>>> 4723 /usr/libexec/gvfsd >>>> 4724 /usr/libexec/xfce4/panel-plugins/xfce4-mixer-plugin socket_id >>>> 18874431 nam >>>> 4791 /usr/libexec/uim-helper-server >>>> 21065 vim sendfile01 >>>> 21073 /usr/bin/xterm >>>> 21075 bash >>>> 21113 ps -eopid,cmd >>>> 28404 /usr/libexec/gvfs-hal-volume-monitor >>>> 28689 /sbin/udevd --daemon >>>> 28690 /sbin/udevd --daemon >>>> 30806 /usr/lib/jvm/sun-jdk-1.6/bin/java -classpath >>>> /usr/share/bcprov/lib/bcprov. >>>> 30860 xchat >>>> 31904 /usr/libexec/gconfd-2 >>>> gcoo...@orangebox ~ $ ps -eopid,cmd >>>> >>>> Do you agree that this is an ok choice? >>> >>> Yes, it is arguably more robust and readable (although I don't think your >>> example shows the need for it). >>> >>> Note that there are differences between ps -ef, ps ef and ps -e f: >>> >>> ji...@debian:~$ ps -ef | head -10 >>> UID PID PPID C STIME TTY TIME CMD >>> root 1 0 0 21:15 ? 00:00:00 init [2] >>> root 2 0 0 21:15 ? 00:00:00 [kthreadd] >>> root 3 2 0 21:15 ? 00:00:00 [migration/0] >>> root 4 2 0 21:15 ? 00:00:00 [ksoftirqd/0] >>> root 5 2 0 21:15 ? 00:00:00 [events/0] >>> root 6 2 0 21:15 ? 00:00:00 [khelper] >>> root 35 2 0 21:15 ? 00:00:00 [kblockd/0] >>> root 36 2 0 21:15 ? 00:00:00 [kacpid] >>> root 37 2 0 21:15 ? 00:00:00 [kacpi_notify] >>> ji...@debian:~$ ps ef | head -10 >>> PID TTY STAT TIME COMMAND >>> 7465 pts/12 Ss 0:00 /bin/bash --noediting -i PWD=/home/jirka >>> TERM=dumb TERMCAP= COLUMNS=136 EMACS=t INSIDE_EMACS=22.3.1,comint GT >>> 7498 pts/12 R+ 0:00 \_ ps ef KDE_MULTIHEAD=false >>> KDEWM=/usr/bin/openbox SHELL=/bin/bash TERM=dumb >>> XDG_SESSION_COOKIE=e07c53451a9 >>> 7499 pts/12 D+ 0:00 \_ head -10 KDE_MULTIHEAD=false >>> KDEWM=/usr/bin/openbox SHELL=/bin/bash TERM=dumb >>> XDG_SESSION_COOKIE=e07c5345 >>> 6355 pts/10 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> 6343 pts/9 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> 6337 pts/8 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> 6325 pts/7 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> 6315 pts/6 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> 6300 pts/5 Ss+ 0:00 /bin/bash GDM_XSERVER_LOCATION=local >>> GDM_LANG=cs_CZ LANGUAGE= KDE_MULTIHEAD=false KDE_SESSION_VERSION=4 KONSO >>> ji...@debian:~$ ps -e f | head -10 >>> PID TTY STAT TIME COMMAND >>> 2 ? S< 0:00 [kthreadd] >>> 3 ? S< 0:00 \_ [migration/0] >>> 4 ? S< 0:00 \_ [ksoftirqd/0] >>> 5 ? S< 0:00 \_ [events/0] >>> 6 ? S< 0:00 \_ [khelper] >>> 35 ? S< 0:00 \_ [kblockd/0] >>> 36 ? S< 0:00 \_ [kacpid] >>> 37 ? S< 0:00 \_ [kacpi_notify] >>> 100 ? S< 0:00 \_ [kseriod] >>> ji...@debian:~$ >>> >>> So you actually used a different command than the one that's used in the >>> testcase. (the first listing is consistent with POSIX specification) >> >> Interesting -- didn't know that! >> >> How about this instead: >> >> gcoo...@orangebox ~ $ ps -eo pid,cmd | head -n 10 >> PID CMD >> 1 init [3] >> 2 [kthreadd] >> 3 [migration/0] >> 4 [ksoftirqd/0] >> 5 [migration/1] >> 6 [ksoftirqd/1] >> 7 [migration/2] >> 8 [ksoftirqd/2] >> 9 [migration/3] >> >> I'm just proposing this because if --columns is set on the target >> system, it's more likely to truncate output and give false positives. >> >> Sound good :)? > > Yes.
Done -- thanks! -Garrett ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
