Quoting CAI Qian ([EMAIL PROTECTED]): > Hi, > > --- Veerendra <[EMAIL PROTECTED]> wrote: > > > This patch addresses the comments if any, on the below files > > > > child_propogate.sh - Propagates the contents of the child sysfs to > > parentNS. > > parent_share.sh - Creates a sharable volume of the sysfs for child to > > access. > > parent_view.sh - Parent NS verifies the contents of the child sysfs. > > sysfsview.c - Basic program to create namespaces for sysfs checking > > > > > > > > > > > > > Signed off by Veerendra C <[EMAIL PROTECTED]> > > ACKed by Serge Hallyn <[EMAIL PROTECTED]> > > > > > > Renamed the file to child_propagate.sh to address the spelling change > > ! > > --- containers.old/netns/child_propogate.sh 2008-09-08 > > 17:18:28.000000000 +0530 > > +++ containers/netns/child_propogate.sh 1970-01-01 05:30:00.000000000 > > +0530 > > @@ -1,47 +0,0 @@ > > -#!/bin/bash > > -# This script propogates the child sysfs contents to be visible for > > parent > > -# Also it will check the parent sysfs contents are visible. > > -#Propogate child sys directory > > - > > -# The test case ID, the test case count and the total number of test > > case > > -TCID=${TCID:-child_propogate.sh} > > -TST_TOTAL=1 > > -TST_COUNT=1 > > -#set -x > > -export TCID > > -export TST_COUNT > > -export TST_TOTAL > > - > > - ret=0 > > - PROPOGATE=`cat /tmp/FIFO4` > > - debug "INFO: CHILD propopagated.." > > - mount -t sysfs none /sys || ret=1 > > - mkdir -p /tmp/mnt/sys || ret=1 > > - mount --bind /sys /tmp/mnt/sys > /dev/null || ret=1 > > - > > - if [ $ret -ne 0 ]; then > > - status=1 > > - tst_resm TFAIL "error while doing bind mount" > > - exit $status > > - fi > > - #Capture childs sysfs contents > > - ls /sys/class/net > /tmp/child_sysfs > > - echo propogated > /tmp/FIFO5 > > - > > - #Capture parent sysfs in child > > - ls /tmp/par_sysfs/class/net > /tmp/parent_sysfs_in_child > > - diff /tmp/parent_sysfs_in_child /tmp/parent_sysfs > /dev/null > > 2>&1 > > - if [ $? -eq 0 ] > > - then > > - tst_resm TINFO "Pass:Child is able to view parent sysfs" > > - status=0 > > - else > > - tst_resm TFAIL "Fail:Child view of sysfs is not same as > > parent sysfs" > > - status=1 > > - fi > > - > > - echo $status > /tmp/FIFO6 > > - > > - #cleanup > > - rm -f /tmp/parent_sysfs_in_child /tmp/parent_sysfs > > - umount /tmp/mnt/sys > > --- containers.old/netns/child_propagate.sh 1970-01-01 > > 05:30:00.000000000 +0530 > > +++ containers/netns/child_propagate.sh 2008-09-10 01:06:42.000000000 > > +0530 > > @@ -0,0 +1,46 @@ > > +#!/bin/bash > > +# This script propagates the child sysfs contents to be visible for > > parent > > +# Also it will check the parent sysfs contents are visible. > > +#Propagate child sys directory > > + > > +# The test case ID, the test case count and the total number of test > > case > > +TCID=${TCID:-child_propagate.sh} > > +TST_TOTAL=1 > > +TST_COUNT=1 > > +#set -x > > +export TCID > > +export TST_COUNT > > +export TST_TOTAL > > + > > + ret=0 > > + PROPAGATE=`cat /tmp/FIFO4` > > + debug "INFO: CHILD propagated.." > > + mount -t sysfs none /sys || ret=1 > > The test will fail if sysfs has been mounted by default in test > systems.
IIUC this will be the first task in the child network namespace. So sys needs to be remounted. The fact that it has been mounted on the host is not a problem. It will choose a new super-block and mount that. The mount shouldn't fail, else something was actually wrong. > Moreover, users will also see the confusing error message > "error while doing bind mount" later. What do you mean, could you elaborate? > Cai Qian > > > + mkdir -p /tmp/mnt/sys || ret=1 > > + mount --bind /sys /tmp/mnt/sys > /dev/null || ret=1 > > + > > + if [ $ret -ne 0 ]; then > > + status=1 > > + tst_resm TFAIL "error while doing bind mount" > > + exit $status > > + fi > > + #Capture childs sysfs contents > > + ls /sys/class/net > /tmp/child_sysfs > > + echo propagated > /tmp/FIFO5 > > + > > + #Capture parent sysfs in child > > + ls /tmp/par_sysfs/class/net > /tmp/parent_sysfs_in_child > > + diff /tmp/parent_sysfs_in_child /tmp/parent_sysfs > /dev/null > > 2>&1 > > + if [ $? -eq 0 ] > > + then > > + tst_resm TINFO "Pass:Child is able to view parent sysfs" > > + status=0 > > + else > > + tst_resm TFAIL "Fail:Child view of sysfs is not same as > > parent sysfs" > > + status=1 > > + fi > > + > > + #cleanup > > + rm -f /tmp/parent_sysfs_in_child /tmp/parent_sysfs > > + umount /tmp/mnt/sys > > + rm -rf /tmp/mnt > /dev/null 2>&1 || true > > Addressing the spelling error and also removed the redundant entry > > of passing status value. > > --- containers.old/netns/parent_view.sh 2008-09-08 17:18:28.000000000 > > +0530 > > +++ containers/netns/parent_view.sh 2008-09-10 01:06:42.000000000 > > +0530 > > @@ -13,9 +13,9 @@ export TST_TOTAL > > > > debug "INFO: Parent SYSFS view" > > ls /sys/class/net > /tmp/parent_sysfs > > - echo PROPOGATE > /tmp/FIFO4 > > + echo PROPAGATE > /tmp/FIFO4 > > > > - PROPOGATED=`cat /tmp/FIFO5` > > + PROPAGATED=`cat /tmp/FIFO5` > > ls /tmp/mnt/sys/class/net > /tmp/child_sysfs_in_parent > > diff /tmp/child_sysfs_in_parent /tmp/child_sysfs > > if [ $? -eq 0 ] > > @@ -27,14 +27,11 @@ export TST_TOTAL > > status=-1 > > fi > > > > - stat=`cat /tmp/FIFO6` > > - if [ $stat != 0 ] ; then > > - status=$stat > > - fi > > - > > #cleanup temp files > > + > > rm -f /tmp/child_sysfs_in_parent /tmp/child_sysfs > > umount /tmp/par_sysfs > > umount /tmp/mnt > > sleep 1 > > rm -rf /tmp/par_sysfs /tmp/mnt > /dev/null 2>&1 || true > > + cleanup $sshpid $vnet0 > > Modified to include the filename change and to return proper return > > value. > > --- containers.old/netns/sysfsview.c 2008-09-08 17:18:28.000000000 > > +0530 > > +++ containers/netns/sysfsview.c 2008-09-10 21:55:00.000000000 +0530 > > @@ -24,7 +24,7 @@ > > * Also it checks the sysfs contents of the child are visible from > > the parent NS. > > * On Success it returns PASS else returns FAIL > > * > > -* Scripts used: parent_share.sh parent_view.sh child_propogate.sh > > +* Scripts used: parent_share.sh parent_view.sh child_propagate.sh > > * parentns.sh childns.sh > > * > > * > > @@ -38,7 +38,6 @@ > > #include <sys/wait.h> > > #include "../libclone/libclone.h" > > > > -extern int create_net_namespace(char *, char *); > > int main() > > { > > int len, ret, status = 0; > > @@ -59,12 +58,12 @@ int main() > > /* Parent should be able to view child sysfs and vice versa */ > > ret = system(script); > > status = WEXITSTATUS(ret); > > - if (status != 0) { > > + if ( ret == -1 || status != 0) { > > printf("Error while executing the script %s\n", script); > > fflush(stdout); > > exit(1); > > } > > > > - status = > > create_net_namespace("parent_view.sh","child_propogate.sh"); > > + status = > > create_net_namespace("parent_view.sh","child_propagate.sh"); > > return status; > > } > > > > ------------------------------------------------------------------------- > > 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 > > Ltp-list@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/ltp-list > > > > > ------------------------------------------------------------------------- > 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 > Ltp-list@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ltp-list ------------------------------------------------------------------------- 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 Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list