[OE-core] [PATCH 1/1] acl: enable ptest support
Lu Chong
Chong.Lu at windriver.com
Mon Jan 13 02:28:32 UTC 2014
On 01/11/2014 01:21 AM, Saul Wold wrote:
> On 01/10/2014 01:13 AM, Chong Lu wrote:
>> Install acl test suite and run it as ptest.
>> nfs test cases need depend on nfs service. So exclude them order to
>> make ptest all pass.
>>
>> Signed-off-by: Chong Lu <Chong.Lu at windriver.com>
>> ---
>> meta/recipes-support/attr/acl.inc | 15 +-
>> .../attr/acl/acl-make-ptest-pass.patch | 457
>> +++++++++++++++++++++
>> meta/recipes-support/attr/acl/run-ptest | 5 +
>> 3 files changed, 476 insertions(+), 1 deletion(-)
>> create mode 100644
>> meta/recipes-support/attr/acl/acl-make-ptest-pass.patch
>> create mode 100644 meta/recipes-support/attr/acl/run-ptest
>>
>> diff --git a/meta/recipes-support/attr/acl.inc
>> b/meta/recipes-support/attr/acl.inc
>> index a461232..4bacf80 100644
>> --- a/meta/recipes-support/attr/acl.inc
>> +++ b/meta/recipes-support/attr/acl.inc
>> @@ -9,7 +9,10 @@ LIC_FILES_CHKSUM =
>> "file://doc/COPYING;md5=c781d70ed2b4d48995b790403217a249 \
>> file://doc/COPYING.LGPL;md5=9e9a206917f8af112da634ce3ab41764"
>>
>> DEPENDS = "attr"
>> -SRC_URI =
>> "http://download.savannah.gnu.org/releases/acl/${BP}.src.tar.gz"
>> +SRC_URI =
>> "http://download.savannah.gnu.org/releases/acl/${BP}.src.tar.gz \
>> + file://acl-make-ptest-pass.patch \
>> + file://run-ptest \
>> +"
>>
>> require ea-acl.inc
>>
>> @@ -24,3 +27,13 @@ do_install_append() {
>> sed -i ${D}${libdir}/libacl.la -e \
>> s,^libdir=\'${base_libdir}\'$,libdir=\'${libdir}\',
>> }
>> +
>> +inherit ptest
>> +
>> +do_install_ptest() {
>> + tar -cf - test/ --exclude nfs | ( cd ${D}${PTEST_PATH} && tar
>> -xf - )
>> + mkdir ${D}${PTEST_PATH}/include
>> + cp ${S}/include/builddefs ${S}/include/buildmacros
>> ${S}/include/buildrules ${D}${PTEST_PATH}/include/
>> +}
>> +
>> +RDEPENDS_${PN}-ptest = "coreutils perl-module-filehandle
>> perl-module-getopt-std perl-module-posix"
>> diff --git a/meta/recipes-support/attr/acl/acl-make-ptest-pass.patch
>> b/meta/recipes-support/attr/acl/acl-make-ptest-pass.patch
>> new file mode 100644
>> index 0000000..89c03c2
>> --- /dev/null
>> +++ b/meta/recipes-support/attr/acl/acl-make-ptest-pass.patch
>> @@ -0,0 +1,457 @@
>> +acl: make ptest pass
>> +
>> +Upstream-Status: Inappropriate [embedded specific]
>> +
>> +The daemon user must be a member in the bin group, else
>> permissions.test
>> +will fail. So add daemon user to bin group.
>> +Many results of `ls' are incorrect in some test cases, modify them
>> to make
>> +ptest pass.
>> +
> This does not seem quite right, you don't just change the tests to
> "make ptest pass" What's wrong with the output of ls? Is this because
> it's using busybox's ls instead of coreutils version of ls?
>
> If that's the case then we should really have the acl-ptest package
> have an RDEPENDS on coreutils.
>
> Sau!
>
Saul,
I have already added coreutils in RDEPENDS. But it still failed.
Many failures have the same reason.
In target, the result of `ls -l' command likes:
-rw-rw-r--
But test cases need result:
-rw-rw-r--+
In fact, after set acl, the correct result of `ls -l' should have "+"
character.
But it doesn't have "+" in target.
root at qemuarm:~# which ls
/bin/ls
root at qemuarm:~# ls -l /bin/ls
lrwxrwxrwx 1 root root 17 Jan 10 08:20 /bin/ls -> /bin/ls.coreutils
root at qemuarm:~# rpm -qa |grep coreutils
coreutils-8.22-r0.armv5te
root at qemuarm:~# touch f
root at qemuarm:~# setfacl -m u:bin:rw f
root at qemuarm:~# getfacl f
# file: f
# owner: root
# group: root
user::rw-
user:bin:rw-
group::r--
mask::rw-
other::---
root at qemuarm:~# ls -l
total 0
-rw-rw---- 1 root root 0 Jan 13 02:22 f
So, in order to ignore failure, I modify the result of `ls -l'.
Best Regards
Chong
>> +Signed-off-by: Chong Lu <Chong.Lu at windriver.com>
>> +---
>> + test/Makefile | 2 +-
>> + test/cp.test | 8 ++---
>> + test/misc.test | 86
>> ++++++++++++++++++++++----------------------
>> + test/root/permissions.test | 2 +-
>> + test/root/setfacl.test | 2 +-
>> + test/sbits-restore.test | 6 ++--
>> + 6 files changed, 53 insertions(+), 53 deletions(-)
>> +
>> +diff --git a/test/Makefile b/test/Makefile
>> +index d2baac8..6063a56 100644
>> +--- a/test/Makefile
>> ++++ b/test/Makefile
>> +@@ -42,7 +42,7 @@ $(NFS):
>> + @echo "NFS specific tests"; echo "*** $@ ***"; perl run $@
>> +
>> + $(ROOT):
>> +- @echo "Note: Tests must run as root"; echo "*** $@ ***"; perl
>> run $@
>> ++ @echo "Note: Tests must run as root"; echo "*** $@ ***";
>> usermod -G bin daemon; perl run $@
>> +
>> + .PHONY: $(TESTS) $(NFS) $(ROOT)
>> + .NOTPARALLEL:
>> +diff --git a/test/cp.test b/test/cp.test
>> +index 0867f63..54bee3b 100644
>> +--- a/test/cp.test
>> ++++ b/test/cp.test
>> +@@ -6,16 +6,16 @@ The cp utility should only copy ACLs if `-p' is
>> given.
>> + $ touch f
>> + $ setfacl -m u:bin:rw f
>> + $ ls -l f | awk -- '{ print $1 }'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ cp f g
>> +- $ ls -l g | awk -- '{ print $1 }' | sed 's/\.$//g'
>> ++ $ ls -l g | awk -- '{ print $1 }'
>> + > -rw-r--r--
>> +
>> + $ rm g
>> + $ cp -p f g
>> + $ ls -l f | awk -- '{ print $1 }'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ mkdir h
>> + $ echo blubb > h/x
>> +@@ -33,7 +33,7 @@ The cp utility should only copy ACLs if `-p' is
>> given.
>> + > other::r--
>> + >
>> +
>> +- $ cp -rp h i
>> ++ $ cp -a h i
>> + $ getfacl --omit-header i/x
>> + > user::rw-
>> + > user:bin:rwx
>> +diff --git a/test/misc.test b/test/misc.test
>> +index 6e98053..83080e2 100644
>> +--- a/test/misc.test
>> ++++ b/test/misc.test
>> +@@ -11,7 +11,7 @@ Only change a base ACL:
>> + $ setfacl -m u::r f
>> + $ setfacl -m u::rw,u:bin:rw f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw----+
>> ++ > -rw-rw----
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +@@ -26,7 +26,7 @@ Only change a base ACL:
>> + $ touch f
>> + $ setfacl -m u:bin:rw f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +@@ -41,7 +41,7 @@ Only change a base ACL:
>> + $ mkdir d
>> + $ setfacl -m u:bin:rwx d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxrwx---+
>> ++ > drwxrwx---
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +@@ -56,7 +56,7 @@ Only change a base ACL:
>> + $ mkdir d
>> + $ setfacl -m u:bin:rwx d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxrwxr-x+
>> ++ > drwxrwxr-x
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +@@ -75,12 +75,12 @@ Multiple users
>> + $ touch f
>> + $ setfacl -m u:bin:rw,u:daemon:r f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +- > user:bin:rw-
>> + > user:daemon:r--
>> ++ > user:bin:rw-
>> + > group::r--
>> + > mask::rw-
>> + > other::r--
>> +@@ -90,12 +90,12 @@ Multiple groups
>> +
>> + $ setfacl -m g:users:rw,g:daemon:r f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +- > user:bin:rw-
>> + > user:daemon:r--
>> ++ > user:bin:rw-
>> + > group::r--
>> + > group:daemon:r--
>> + > group:users:rw-
>> +@@ -107,12 +107,12 @@ Remove one group
>> +
>> + $ setfacl -x g:users f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +- > user:bin:rw-
>> + > user:daemon:r--
>> ++ > user:bin:rw-
>> + > group::r--
>> + > group:daemon:r--
>> + > mask::rw-
>> +@@ -123,7 +123,7 @@ Remove one user
>> +
>> + $ setfacl -x u:daemon f
>> + $ ls -dl f | awk '{print $1}'
>> +- > -rw-rw-r--+
>> ++ > -rw-rw-r--
>> +
>> + $ getfacl --omit-header f
>> + > user::rw-
>> +@@ -142,12 +142,12 @@ Default ACL
>> + $ mkdir d
>> + $ setfacl -m u:bin:rwx,u:daemon:rw,d:u:bin:rwx,d:m:rx d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxrwx---+
>> ++ > drwxrwx---
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +- > user:bin:rwx
>> + > user:daemon:rw-
>> ++ > user:bin:rwx
>> + > group::r-x
>> + > mask::rwx
>> + > other::---
>> +@@ -163,7 +163,7 @@ Umask now ignored?
>> + $ umask 027
>> + $ touch d/f
>> + $ ls -dl d/f | awk '{print $1}'
>> +- > -rw-r-----+
>> ++ > -rw-r-----
>> +
>> + $ getfacl --omit-header d/f
>> + > user::rw-
>> +@@ -177,7 +177,7 @@ Umask now ignored?
>> + $ umask 022
>> + $ touch d/f
>> + $ ls -dl d/f | awk '{print $1}'
>> +- > -rw-r-----+
>> ++ > -rw-r-----
>> +
>> + $ getfacl --omit-header d/f
>> + > user::rw-
>> +@@ -194,7 +194,7 @@ Default ACL copying
>> + $ umask 000
>> + $ mkdir d/d
>> + $ ls -dl d/d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/d
>> + > user::rwx
>> +@@ -213,7 +213,7 @@ Default ACL copying
>> + $ umask 022
>> + $ mkdir d/d
>> + $ ls -dl d/d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/d
>> + > user::rwx
>> +@@ -232,20 +232,20 @@ Add some users and groups
>> +
>> + $ setfacl -nm u:daemon:rx,d:u:daemon:rx,g:users:rx,g:daemon:rwx
>> d/d
>> + $ ls -dl d/d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/d
>> + > user::rwx
>> +- > user:bin:rwx #effective:r-x
>> + > user:daemon:r-x
>> ++ > user:bin:rwx #effective:r-x
>> + > group::r-x
>> + > group:daemon:rwx #effective:r-x
>> + > group:users:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:rwx #effective:r-x
>> + > default:user:daemon:r-x
>> ++ > default:user:bin:rwx #effective:r-x
>> + > default:group::r-x
>> + > default:mask::r-x
>> + > default:other::---
>> +@@ -254,24 +254,24 @@ Add some users and groups
>> + Symlink in directory with default ACL?
>> +
>> + $ ln -s d d/l
>> +- $ ls -dl d/l | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d/l | awk '{print $1}'
>> + > lrwxrwxrwx
>> +
>> + $ ls -dl -L d/l | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/l
>> + > user::rwx
>> +- > user:bin:rwx #effective:r-x
>> + > user:daemon:r-x
>> ++ > user:bin:rwx #effective:r-x
>> + > group::r-x
>> + > group:daemon:rwx #effective:r-x
>> + > group:users:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:rwx #effective:r-x
>> + > default:user:daemon:r-x
>> ++ > default:user:bin:rwx #effective:r-x
>> + > default:group::r-x
>> + > default:mask::r-x
>> + > default:other::---
>> +@@ -283,20 +283,20 @@ Does mask manipulation work?
>> +
>> + $ setfacl -m g:daemon:rx,u:bin:rx d/d
>> + $ ls -dl d/d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/d
>> + > user::rwx
>> +- > user:bin:r-x
>> + > user:daemon:r-x
>> ++ > user:bin:r-x
>> + > group::r-x
>> + > group:daemon:r-x
>> + > group:users:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:rwx #effective:r-x
>> + > default:user:daemon:r-x
>> ++ > default:user:bin:rwx #effective:r-x
>> + > default:group::r-x
>> + > default:mask::r-x
>> + > default:other::---
>> +@@ -304,20 +304,20 @@ Does mask manipulation work?
>> +
>> + $ setfacl -m d:u:bin:rwx d/d
>> + $ ls -dl d/d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d/d
>> + > user::rwx
>> +- > user:bin:r-x
>> + > user:daemon:r-x
>> ++ > user:bin:r-x
>> + > group::r-x
>> + > group:daemon:r-x
>> + > group:users:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:rwx
>> + > default:user:daemon:r-x
>> ++ > default:user:bin:rwx
>> + > default:group::r-x
>> + > default:mask::rwx
>> + > default:other::---
>> +@@ -329,12 +329,12 @@ Remove the default ACL
>> +
>> + $ setfacl -k d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxrwx---+
>> ++ > drwxrwx---
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +- > user:bin:rwx
>> + > user:daemon:rw-
>> ++ > user:bin:rwx
>> + > group::r-x
>> + > mask::rwx
>> + > other::---
>> +@@ -343,7 +343,7 @@ Remove the default ACL
>> + Reset to base entries
>> +
>> + $ setfacl -b d
>> +- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d | awk '{print $1}'
>> + > drwxr-x---
>> +
>> + $ getfacl --omit-header d
>> +@@ -355,7 +355,7 @@ Reset to base entries
>> + Now, chmod should change the group_obj entry
>> +
>> + $ chmod 775 d
>> +- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d | awk '{print $1}'
>> + > drwxrwxr-x
>> +
>> + $ getfacl --omit-header d
>> +@@ -369,18 +369,18 @@ Now, chmod should change the group_obj entry
>> + $ mkdir d
>> + $ setfacl -m u:daemon:rwx,u:bin:rx,d:u:daemon:rwx,d:u:bin:rx d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxrwxr-x+
>> ++ > drwxrwxr-x
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +- > user:bin:r-x
>> + > user:daemon:rwx
>> ++ > user:bin:r-x
>> + > group::rwx
>> + > mask::rwx
>> + > other::r-x
>> + > default:user::rwx
>> +- > default:user:bin:r-x
>> + > default:user:daemon:rwx
>> ++ > default:user:bin:r-x
>> + > default:group::rwx
>> + > default:mask::rwx
>> + > default:other::r-x
>> +@@ -388,18 +388,18 @@ Now, chmod should change the group_obj entry
>> +
>> + $ chmod 750 d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +- > user:bin:r-x
>> + > user:daemon:rwx #effective:r-x
>> ++ > user:bin:r-x
>> + > group::rwx #effective:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:r-x
>> + > default:user:daemon:rwx
>> ++ > default:user:bin:r-x
>> + > default:group::rwx
>> + > default:mask::rwx
>> + > default:other::r-x
>> +@@ -407,18 +407,18 @@ Now, chmod should change the group_obj entry
>> +
>> + $ chmod 750 d
>> + $ ls -dl d | awk '{print $1}'
>> +- > drwxr-x---+
>> ++ > drwxr-x---
>> +
>> + $ getfacl --omit-header d
>> + > user::rwx
>> +- > user:bin:r-x
>> + > user:daemon:rwx #effective:r-x
>> ++ > user:bin:r-x
>> + > group::rwx #effective:r-x
>> + > mask::r-x
>> + > other::---
>> + > default:user::rwx
>> +- > default:user:bin:r-x
>> + > default:user:daemon:rwx
>> ++ > default:user:bin:r-x
>> + > default:group::rwx
>> + > default:mask::rwx
>> + > default:other::r-x
>> +diff --git a/test/root/permissions.test b/test/root/permissions.test
>> +index afaf5f0..042005a 100644
>> +--- a/test/root/permissions.test
>> ++++ b/test/root/permissions.test
>> +@@ -217,7 +217,7 @@ Test if symlinks are properly followed.
>> + $ ln -s g l
>> + $ setfacl -m u:bin:rw l
>> + $ ls -l g | awk -- '{ print $1, $3, $4 }'
>> +- > -rw-rw----+ root root
>> ++ > -rw-rw---- root root
>> +
>> +
>> + Test if ACLs are effective for block and character special files,
>> fifos,
>> +diff --git a/test/root/setfacl.test b/test/root/setfacl.test
>> +index 630e9fb..6726e63 100644
>> +--- a/test/root/setfacl.test
>> ++++ b/test/root/setfacl.test
>> +@@ -13,7 +13,7 @@ Setfacl utility tests. Run these tests on a
>> filesystem with ACL support.
>> +
>> + $ setfacl -m m:- g
>> + $ ls -dl g | awk '{print $1}'
>> +- > -rw-------+
>> ++ > -rw-------
>> +
>> + $ getfacl g
>> + > # file: g
>> +diff --git a/test/sbits-restore.test b/test/sbits-restore.test
>> +index de21340..e5e4fb2 100644
>> +--- a/test/sbits-restore.test
>> ++++ b/test/sbits-restore.test
>> +@@ -13,10 +13,10 @@ Ensure setting of SUID/SGID/sticky via --restore
>> works
>> + $ touch d/g
>> + $ touch d/u
>> + $ setfacl --restore d.acl
>> +- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d | awk '{print $1}'
>> + > drwxr-xr-t
>> +- $ ls -dl d/u | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d/u | awk '{print $1}'
>> + > -rwSr--r--
>> +- $ ls -dl d/g | awk '{print $1}' | sed 's/\.$//g'
>> ++ $ ls -dl d/g | awk '{print $1}'
>> + > -rw-r-Sr--
>> + $ rm -Rf d
>> +--
>> +1.7.9.5
>> +
>> diff --git a/meta/recipes-support/attr/acl/run-ptest
>> b/meta/recipes-support/attr/acl/run-ptest
>> new file mode 100644
>> index 0000000..a6c6867
>> --- /dev/null
>> +++ b/meta/recipes-support/attr/acl/run-ptest
>> @@ -0,0 +1,5 @@
>> +#!/bin/sh
>> +
>> +make -C test -k tests root-tests |sed \
>> + -e 's|^\[.*\] \(.*\) -- ok$|PASS: \1|' \
>> + -e 's|^\[.*\] \(.*\) -- failed|FAIL: \1|'
>>
>
>
More information about the Openembedded-core
mailing list