浏览代码

package/avocado: new package

Signed-off-by: José Pekkarinen <jose.pekkarinen@unikie.com>
[Thomas: add test case, add missing dependencies]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
José Pekkarinen 3 年之前
父节点
当前提交
ef321ff4a9

+ 2 - 0
DEVELOPERS

@@ -1560,6 +1560,7 @@ F:	support/testing/tests/package/test_zfs.py
 
 N:	José Pekkarinen <jose.pekkarinen@unikie.com>
 F:	package/alfred/
+F:	package/avocado/
 F:	package/bmx7/
 F:	package/opensc/
 F:	package/python-aexpect/
@@ -1567,6 +1568,7 @@ F:	package/python-alembic/
 F:	package/python-lark/
 F:	package/softhsm2/
 F:	support/testing/tests/package/sample_python_aexpect.py
+F:	support/testing/tests/package/test_avocado.py
 F:	support/testing/tests/package/test_python_aexpect.py
 
 N:	Joseph Kogut <joseph.kogut@gmail.com>

+ 1 - 0
package/Config.in

@@ -158,6 +158,7 @@ menu "Debugging, profiling and benchmark"
 endmenu
 
 menu "Development tools"
+	source "package/avocado/Config.in"
 	source "package/bats-core/Config.in"
 	source "package/binutils/Config.in"
 	source "package/bitwise/Config.in"

+ 21 - 0
package/avocado/Config.in

@@ -0,0 +1,21 @@
+config BR2_PACKAGE_AVOCADO
+	bool "avocado"
+	depends on BR2_USE_WCHAR # python3
+	depends on BR2_USE_MMU # python3
+	depends on BR2_TOOLCHAIN_HAS_THREADS # python3
+	depends on !BR2_STATIC_LIBS # python3
+	select BR2_PACKAGE_PYTHON3
+	select BR2_PACKAGE_PYTHON3_BZIP2
+	select BR2_PACKAGE_PYTHON3_PYEXPAT
+	select BR2_PACKAGE_PYTHON3_SQLITE
+	select BR2_PACKAGE_PYTHON3_XZ
+	select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime, pkg_resources
+	help
+	  Avocado is an automated testing suite containing
+	  tests for various subsystems.
+
+	  https://avocado-framework.readthedocs.io/
+
+comment "avocado needs a toolchain w/ wchar, threads, dynamic library"
+	depends on BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

+ 3 - 0
package/avocado/avocado.hash

@@ -0,0 +1,3 @@
+# Locally computed
+sha256  bec1bfab821030f04306a93d2b2061a4a28db538873702f746d5bc050d92685b  avocado-98.0.tar.gz
+sha256  680ce56e9c4043826f0f1420935d2453ea3ddacd1582cb6f1cef26c1077fcc93  LICENSE

+ 13 - 0
package/avocado/avocado.mk

@@ -0,0 +1,13 @@
+################################################################################
+#
+# avocado
+#
+################################################################################
+
+AVOCADO_VERSION = 98.0
+AVOCADO_SITE = $(call github,avocado-framework,avocado,$(AVOCADO_VERSION))
+AVOCADO_SETUP_TYPE = setuptools
+AVOCADO_LICENSE = Apache-2.0
+AVOCADO_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))

+ 23 - 0
support/testing/tests/package/test_avocado.py

@@ -0,0 +1,23 @@
+import os
+
+import infra.basetest
+
+
+class TestAvocado(infra.basetest.BRTest):
+    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
+        """
+        BR2_PACKAGE_AVOCADO=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        img = os.path.join(self.builddir, "images", "rootfs.cpio")
+        self.emulator.boot(arch="armv5",
+                           kernel="builtin",
+                           options=["-initrd", img])
+        self.emulator.login()
+        cmd = "avocado run /bin/true"
+        self.assertRunOk(cmd, timeout=30)
+        cmd = "avocado plugins"
+        self.assertRunOk(cmd, timeout=30)