[pacman-dev] [PATCH 5/5] Add unit tests for -Qkk with altered files.

Allan McRae allan at archlinux.org
Mon Dec 30 03:24:23 EST 2013


On 11/11/13 21:47, Jeremy Heiner wrote:
> The first test (007) checks every permutation of file type mismatch
> that -Qkk warns about. The second (008) checks for the other types of
> mismatch (permissions, modification time, size, and symlink path) that
> the test framework can set up without root permission.

These look fine in principle.  I'd like a pactest that tests each
difference individually, as that will help us limit down any failures.

Allan

> Signed-off-by: Jeremy Heiner <ScalaProtractor at gmail.com>
> ---
>  test/pacman/tests/TESTS            |  2 ++
>  test/pacman/tests/querycheck007.py | 25 +++++++++++++++++++++++++
>  test/pacman/tests/querycheck008.py | 25 +++++++++++++++++++++++++
>  3 files changed, 52 insertions(+)
>  create mode 100644 test/pacman/tests/querycheck007.py
>  create mode 100644 test/pacman/tests/querycheck008.py
> 
> diff --git a/test/pacman/tests/TESTS b/test/pacman/tests/TESTS
> index c460fe0..abe0558 100644
> --- a/test/pacman/tests/TESTS
> +++ b/test/pacman/tests/TESTS
> @@ -94,6 +94,8 @@ TESTS += test/pacman/tests/querycheck003.py
>  TESTS += test/pacman/tests/querycheck004.py
>  TESTS += test/pacman/tests/querycheck005.py
>  TESTS += test/pacman/tests/querycheck006.py
> +TESTS += test/pacman/tests/querycheck007.py
> +TESTS += test/pacman/tests/querycheck008.py
>  TESTS += test/pacman/tests/reason001.py
>  TESTS += test/pacman/tests/remove001.py
>  TESTS += test/pacman/tests/remove002.py
> diff --git a/test/pacman/tests/querycheck007.py b/test/pacman/tests/querycheck007.py
> new file mode 100644
> index 0000000..9a2c765
> --- /dev/null
> +++ b/test/pacman/tests/querycheck007.py
> @@ -0,0 +1,25 @@
> +self.description = "Query--check mtree, bad types"
> +
> +pkg = pmpkg("dummy")
> +pkg.files = ["dummy/z"]
> +pkg.makemtree = True
> +script = []
> +for file, mangle in [
> +        ("dummy/d1/", ["rmdir", "touch"]),
> +        ("dummy/d2/", ["rmdir", "ln -s z"]),
> +        ("dummy/f1", ["rm", "mkdir"]),
> +        ("dummy/f2", ["rm", "ln -s z"]),
> +        ("dummy/l1 -> z", ["rm", "mkdir"]),
> +        ("dummy/l2 -> z", ["rm", "touch"])]:
> +    pkg.files.append(file)
> +    parsed = pkg.parse_filename(file).rstrip('/')
> +    for cmd in mangle:
> +        script.append(cmd +" ../"+parsed)
> +    self.addrule("PACMAN_OUTPUT=%s .File type mismatch" % parsed)
> +pkg.install['post_install'] = ";".join(script)
> +self.addpkg2db("local",pkg)
> +
> +self.args = "-Qkk"
> +
> +self.addrule("PACMAN_RETCODE=1")
> +self.addrule("PACMAN_OUTPUT=, 6 altered files")
> diff --git a/test/pacman/tests/querycheck008.py b/test/pacman/tests/querycheck008.py
> new file mode 100644
> index 0000000..538eb75
> --- /dev/null
> +++ b/test/pacman/tests/querycheck008.py
> @@ -0,0 +1,25 @@
> +self.description = "Query--check mtree, bad perms+time+size+link"
> +
> +pkg = pmpkg("dummy")
> +pkg.files = ["dummy/z"]
> +pkg.makemtree = True
> +script = []
> +for file, err, mangle in [
> +        #("dummy/uid", "UID", ["chown ?"]),#needs root
> +        #("dummy/gid", "GID", ["chgrp ?"]),#needs root
> +        ("dummy/mode", "Permissions", ["chmod 600"]),
> +        ("dummy/mtime", "Modification time", ["touch"]),
> +        ("dummy/size", "Size", ["echo x >"]),
> +        ("dummy/link -> size", "Symlink path", ["rm", "ln -s z"])]:
> +    pkg.files.append(file)
> +    parsed = pkg.parse_filename(file)
> +    for cmd in mangle:
> +        script.append(cmd +" ../"+parsed)
> +    self.addrule("PACMAN_OUTPUT=%s .%s mismatch" % (parsed,err))
> +pkg.install['post_install'] = ";".join(script)
> +self.addpkg2db("local",pkg)
> +
> +self.args = "-Qkk"
> +
> +self.addrule("PACMAN_RETCODE=1")
> +self.addrule("PACMAN_OUTPUT=, 4 altered files")
> 



More information about the pacman-dev mailing list