[LTP] [PATCH] NetNS test fixes

Dan Smith
2010-05-05T18:11:55Z

This patch fixes a couple of netns test issues that cause invalid failures
relating to exiting with a status variable that doesn't exist. It also
fixes an instance of inverted logic and a failure to exec sshd with the
full path (as required).

Additionally, it makes the common child exec function more descriptive of
what it tried to do and why it failed to ease debugging.

Signed-off-by: Dan Smith <danms@us.ibm.com>
---
testcases/kernel/containers/netns/child_1.sh | 1 +
testcases/kernel/containers/netns/child_2.sh | 1 +
testcases/kernel/containers/netns/childns.sh | 4 +++-
testcases/kernel/containers/netns/common.c | 3 +--
testcases/kernel/containers/netns/par_ftp.sh | 3 +++
testcases/kernel/containers/netns/parent_1.sh | 2 +-
testcases/kernel/containers/netns/parent_2.sh | 2 +-
7 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/testcases/kernel/containers/netns/child_1.sh b/testcases/kernel/containers/netns/child_1.sh
index 1fa71a7..7fb9a4f 100755
--- a/testcases/kernel/containers/netns/child_1.sh
+++ b/testcases/kernel/containers/netns/child_1.sh
@@ -68,6 +68,7 @@ export TST_TOTAL
if [ $? = 0 ];
then
tst_resm TINFO "PASS: Child2 is pinging from CHILD1 !"
+ status=0
else
tst_resm TFAIL "FAIL: Unable to Ping Child2 from CHILD1 !"
status=-1
diff --git a/testcases/kernel/containers/netns/child_2.sh b/testcases/kernel/containers/netns/child_2.sh
index d73b785..3098028 100755
--- a/testcases/kernel/containers/netns/child_2.sh
+++ b/testcases/kernel/containers/netns/child_2.sh
@@ -66,6 +66,7 @@ status=0
# Using /tmp/FIFO5 to synchronize with CHILD1
echo 0 > /tmp/FIFO5
sleep 2
+ status=0
else
tst_resm TFAIL "FAIL: Unable to ping Child1NS from Child2NS !"
echo 1 > /tmp/FIFO5
diff --git a/testcases/kernel/containers/netns/childns.sh b/testcases/kernel/containers/netns/childns.sh
index 3634d81..16fc7e8 100755
--- a/testcases/kernel/containers/netns/childns.sh
+++ b/testcases/kernel/containers/netns/childns.sh
@@ -38,6 +38,8 @@ exists awk grep ip ping sshd
. initialize.sh
status=0

+SSHD=`which sshd`
+
if [ $# -eq 1 ] ; then
childscrpt=$1
debug "INFO: The script to be executed in child NS is $childscrpt"
@@ -58,7 +60,7 @@ ifconfig lo up
sleep 2

#starting the sshd inside the child NS
-if ! sshd -p $PORT; then
+if $SSHD -p $PORT; then
debug "INFO: started the sshd @ port no $PORT"
sshpid=`ps -ef | grep "sshd -p $PORT" | grep -v grep | awk '{ print $2 ; exit 0} ' `
else
diff --git a/testcases/kernel/containers/netns/common.c b/testcases/kernel/containers/netns/common.c
index 22d0e99..6d3b02e 100644
--- a/testcases/kernel/containers/netns/common.c
+++ b/testcases/kernel/containers/netns/common.c
@@ -48,8 +48,7 @@ int crtchild(char *s1 , char *s2)
{
char *cmd[] = { "--", s1, s2, (char *)0 };
execve("/bin/sh", cmd, __environ);
- printf("The code would not reach here on success\n");
- perror("execve");
+ fprintf(stderr, "Failed to execve(%s, %s): %m\n", s1, s2);
return 1;
}

diff --git a/testcases/kernel/containers/netns/par_ftp.sh b/testcases/kernel/containers/netns/par_ftp.sh
index 3bfb47b..bb65db4 100755
--- a/testcases/kernel/containers/netns/par_ftp.sh
+++ b/testcases/kernel/containers/netns/par_ftp.sh
@@ -37,6 +37,7 @@ export TST_TOTAL

if [ $? = 0 ] ; then
tst_resm TINFO "Pinging ChildNS from ParentNS"
+ status=0
else
tst_resm TFAIL "Error: Unable to ping ChildNS from ParentNS"
status=-1
@@ -45,3 +46,5 @@ export TST_TOTAL
if [ $stat != 0 ] ; then
status=$stat
fi
+
+ exit $status
diff --git a/testcases/kernel/containers/netns/parent_1.sh b/testcases/kernel/containers/netns/parent_1.sh
index 8577bf2..32f1a47 100755
--- a/testcases/kernel/containers/netns/parent_1.sh
+++ b/testcases/kernel/containers/netns/parent_1.sh
@@ -55,4 +55,4 @@ export TST_TOTAL
echo $vnet1 > /tmp/FIFO1

debug "INFO: PARENT_1: End of $0"
- exit $status
+ exit 0
diff --git a/testcases/kernel/containers/netns/parent_2.sh b/testcases/kernel/containers/netns/parent_2.sh
index 57d3974..f72c16d 100755
--- a/testcases/kernel/containers/netns/parent_2.sh
+++ b/testcases/kernel/containers/netns/parent_2.sh
@@ -51,4 +51,4 @@ export TST_TOTAL
echo $vnet3 > /tmp/FIFO3

debug "INFO: PARENT-2: End of $0"
- exit $status
+ exit 0
--
1.7.0.4