[Libguestfs] [Bug 1406906] [PATCH 3/3] python: add regression test for RHBZ#1406906

Pino Toscano ptoscano at redhat.com
Tue May 9 12:43:07 UTC 2017


On Saturday, 6 May 2017 11:32:29 CEST Matteo Cafasso wrote:
> Signed-off-by: Matteo Cafasso <noxdafox at gmail.com>
> ---
>  python/t/test830RHBZ1406906.py | 55 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
>  create mode 100644 python/t/test830RHBZ1406906.py
> 
> diff --git a/python/t/test830RHBZ1406906.py b/python/t/test830RHBZ1406906.py
> new file mode 100644
> index 000000000..62caf8ce1
> --- /dev/null
> +++ b/python/t/test830RHBZ1406906.py
> @@ -0,0 +1,55 @@
> +# libguestfs Python bindings
> +# Copyright (C) 2017 Red Hat Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 2 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write to the Free Software
> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +
> +import os
> +import shutil
> +import tempfile
> +import unittest
> +
> +import guestfs
> +
> +
> +class Test830RHBZ1406906(unittest.TestCase):
> +    def setUp(self):
> +        self.filename = "rhbz1406906.img"
> +        self.tempdir = tempfile.mkdtemp()
> +        self.guestfs = guestfs.GuestFS(python_return_dict=True)

Usually we call the handle 'g'. Also, it would be better IMHO to
create the handle locally in the test_rhbz1406906 function itself.

> +        self.guestfs.disk_create(self.filename, "raw", 512 * 1024 * 1024)

I'd just use a scratch disk, so the disk is automatically removed.

> +        self.guestfs.add_drive(self.filename)
> +        self.guestfs.launch()
> +
> +    def tearDown(self):
> +        self.guestfs.close()
> +        os.unlink(self.filename)
> +        shutil.rmtree(self.tempdir)
> +
> +    def test_rhbz1406906(self):
> +        self.guestfs.part_disk("/dev/sda", "mbr")
> +        self.guestfs.mkfs("ext3", "/dev/sda1", blocksize=1024)

A simple ext4 with no options should be ok too. (This is not an issue,
just keeping the test simple with no extra options.)

> +        self.guestfs.mount("/dev/sda1", "/")
> +
> +        # touch file with illegal unicode character
> +        open(os.path.join(self.tempdir, "\udcd4"), "w").close()
> +
> +        self.guestfs.copy_in(self.tempdir, "/")
> +
> +        # segfault here on Python 3
> +        try:
> +            self.guestfs.find("/")
> +        except UnicodeDecodeError:
> +            pass

If you expect an exception to happen, and want to check for that,
please use assertRaises, e.g.:

  self.assertRaises(UnicodeDecodeError, g.find, "/")

Does it crash also with Python 2?

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20170509/73d495fe/attachment.sig>


More information about the Libguestfs mailing list