Quoting Serge E. Hallyn ([EMAIL PROTECTED]):
> Quoting Subrata Modak ([EMAIL PROTECTED]):
> > Hi Rishikesh/Sergei,
> > 
> > Any fix available for the same ?? ;-)
> 
> Please try the following patch...

I'm sorry, that should handle archictures without unshare (?) but not
older kernels.

The following patch adds a check for a 2.6.16 kernel, which it looks
like is where unshare was added.

BTW, I may be off, but I think the comments for
lib/tst_kvercmp.c:tst_kvercmp() are wrong, aren't they?  Doesn't it
return a positive int if arg < current kernel version, and positive int
if arg > current kernel version?

thanks,
-serge

diff -Nrup ltp/testcases/kernel/containers/Makefile 
ltp-patched/testcases/kernel/containers/Makefile
--- ltp/testcases/kernel/containers/Makefile    2007-04-26 13:02:50.000000000 
+0200
+++ ltp-patched/testcases/kernel/containers/Makefile    2007-06-26 
04:08:24.000000000 +0200
@@ -1,14 +1,23 @@
 SUBDIRS = libclone utsname
 
-all noltp noltp_check:
-       @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
+CFLAGS += -I../../../include
 
-install:
-       @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i install ; done
-       chmod ugo+x container_test.sh
-       ln -f container_test.sh ../../bin/container_test.sh
+check_for_unshare: check_for_unshare.c
+       $(CC) -o $@ $< ../../../lib/tst_kvercmp.c $(CFLAGS)
 
-clean:
-       @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean ; done
+all noltp noltp_check: check_for_unshare
+       @set -e; if './check_for_unshare' > /dev/null 2>&1; then \
+               for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done \
+       else echo "system does not support unshare"; true; fi
 
+install: check_for_unshare
+       @set -e; ln -f check_for_unshare ../../bin/check_for_unshare; \
+       if './check_for_unshare' > /dev/null 2>&1; then \
+               for i in $(SUBDIRS); do $(MAKE) -C $$i install ; done; \
+               chmod ugo+x container_test.sh; \
+               ln -f container_test.sh ../../bin/container_test.sh; \
+       else echo "system does not support unshare"; true; fi
 
+clean:
+       @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean ; done
+       rm -f check_for_unshare
diff -Nrup ltp/testcases/kernel/containers/check_for_unshare.c 
ltp-patched/testcases/kernel/containers/check_for_unshare.c
--- ltp/testcases/kernel/containers/check_for_unshare.c 1970-01-01 
01:00:00.000000000 +0100
+++ ltp-patched/testcases/kernel/containers/check_for_unshare.c 2007-06-26 
04:08:52.000000000 +0200
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <test.h>
+
+int kernel_is_too_old(void) {
+       if (tst_kvercmp(2,6,16) < 0)
+               return 1;
+       return 0;
+}
+
+/*
+ * yeah, to make the makefile coding easier, do_check returns 
+ * 1 if unshare is not supported, 0 if it is
+ */
+#ifndef SYS_unshare
+#ifdef __NR_unshare
+int do_check(void) { return kernel_is_too_old(); }
+#elif __i386__
+int do_check(void) { return kernel_is_too_old(); }
+#elif __ia64__
+int do_check(void) { return kernel_is_too_old(); }
+#elif __x86_64__
+int do_check(void) { return kernel_is_too_old(); }
+#elif __s390x__ || __s390__
+int do_check(void) { return kernel_is_too_old(); }
+#elif __powerpc__
+int do_check(void) { return kernel_is_too_old(); }
+#else
+int do_check(void) { return 1; }
+#endif
+#endif
+
+int main() {
+       return do_check();
+}
diff -Nrup ltp/testcases/kernel/containers/container_test.sh 
ltp-patched/testcases/kernel/containers/container_test.sh
--- ltp/testcases/kernel/containers/container_test.sh   2007-04-26 
13:02:50.000000000 +0200
+++ ltp-patched/testcases/kernel/containers/container_test.sh   2007-06-25 
20:27:17.000000000 +0200
@@ -10,6 +10,12 @@
 # any later version.
 
 #check_utsns_enabled
+check_for_unshare
+if [ $? -eq 1 ]; then
+       echo "Unshare not supported.  Not running container tests"
+       exit 0
+fi
+
 #if [ $? -eq 0 ]; then
        echo "Running utsns tests."
        runutstest.sh

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to