From: Andrey Smirnov Date: Wed, 12 Jul 2017 02:40:05 +0000 (-0700) Subject: testing/tests/package/test_python: refactor TestPythonBase X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4c85d3e4596ae1e9ff5fe25977abb8ef8f2294e0;p=buildroot.git testing/tests/package/test_python: refactor TestPythonBase Convert TestPythonBase to a true base class that only provides code implementing various tests without defining tests themselves in a "discoverable" form. To retain correct testing functionality, add TestPython2 derived class that uses code from TestPythonBase to define actual runnable test. Signed-off-by: Andrey Smirnov Reviewed-by: Ricardo Martincoski Tested-by: Ricardo Martincoski [Thomas: fix typo in commit log, update .gitlab-ci.yml, both pointed by Ricardo.] Signed-off-by: Thomas Petazzoni --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e494ffa96..fe55763d33 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -226,7 +226,7 @@ tests.fs.test_squashfs.TestSquashfs: *runtime_test tests.fs.test_ubi.TestUbi: *runtime_test tests.fs.test_yaffs2.TestYaffs2: *runtime_test tests.package.test_dropbear.TestDropbear: *runtime_test -tests.package.test_python.TestPythonBase: *runtime_test +tests.package.test_python.TestPython2: *runtime_test tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: *runtime_test tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: *runtime_test tests.toolchain.test_external.TestExternalToolchainCtngMusl: *runtime_test diff --git a/support/testing/tests/package/test_python.py b/support/testing/tests/package/test_python.py index 5532fb538a..250827e93a 100644 --- a/support/testing/tests/package/test_python.py +++ b/support/testing/tests/package/test_python.py @@ -5,31 +5,46 @@ import infra.basetest class TestPythonBase(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ """ -BR2_PACKAGE_PYTHON=y BR2_TARGET_ROOTFS_CPIO=y # BR2_TARGET_ROOTFS_TAR is not set """ - - def test_run(self): + def login(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") self.emulator.boot(arch="armv5", kernel="builtin", options=["-initrd", cpio_file]) self.emulator.login() - cmd = "python --version 2>&1 | grep '^Python 2'" + + def version_test(self, version): + cmd = "python --version 2>&1 | grep '^{}'".format(version) _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) + def math_floor_test(self): cmd = "python -c 'import math; math.floor(12.3)'" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) + def libc_time_test(self): cmd = "python -c 'import ctypes;" cmd += "libc = ctypes.cdll.LoadLibrary(\"libc.so.1\");" cmd += "print libc.time(None)'" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 0) + def zlib_test(self): cmd = "python -c 'import zlib'" _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 1) + +class TestPython2(TestPythonBase): + config = TestPythonBase.config + \ +""" +BR2_PACKAGE_PYTHON=y +""" + def test_run(self): + self.login() + self.version_test("Python 2") + self.math_floor_test() + self.libc_time_test() + self.zlib_test()