[Buildroot] [git commit] support/testing: add suite of tests for gdb

Yann E. MORIN yann.morin.1998 at free.fr
Sun Oct 10 17:41:32 UTC 2021


commit: https://git.buildroot.net/buildroot/commit/?id=1ea0ae0349dfb905ba8c4a91d43882a12f73b123
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

The list of tests is as follows:

TestGdbHostOnlyDefault: build just minimal host-gdb, default version

TestGdbHostOnlyAllFeatures: build host-gdb, default version, with all
features enabled (TUI, Python, simulator)

TestGdbserverOnly: build just target gdbserver, default version

TestGdbFullTarget: build just target gdb, default version

TestGdbHostOnly9x: build minimal host-gdb, 9.x version

TestGdbHostGdbserver9x: build minimal host-gdb 9.x + gdbserver

TestGdbHostGdbTarget9x: build minimal host-gdb 9.x + full gdb

TestGdbHostOnly11x: build minimal host-gdb, 11.x version

TestGdbHostGdbserver11x: build minimal host-gdb 11.x + gdbserver

TestGdbHostGdbTarget11x: build minimal host-gdb 11.x + gdb

TestGdbArc: build minimal host-gdb + gdb + gdbserver, for the special
ARC architecture version

Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
---
 support/testing/tests/package/test_gdb.py | 215 ++++++++++++++++++++++++++++++
 1 file changed, 215 insertions(+)

diff --git a/support/testing/tests/package/test_gdb.py b/support/testing/tests/package/test_gdb.py
new file mode 100644
index 0000000000..a7b0870644
--- /dev/null
+++ b/support/testing/tests/package/test_gdb.py
@@ -0,0 +1,215 @@
+import os
+import infra.basetest
+
+
+class BaseGdb(infra.basetest.BRTest):
+    def verify_host_gdb(self, prefix="arm-linux"):
+        cmd = ["host/bin/%s-gdb" % prefix, "--version"]
+        # We don't check the return value, as it automatically raises
+        # an exception if the command returns with a non-zero value
+        infra.run_cmd_on_host(self.builddir, cmd)
+
+    def boot(self):
+        img = os.path.join(self.builddir, "images", "rootfs.cpio")
+        self.emulator.boot(arch="armv5",
+                           kernel="builtin",
+                           options=["-initrd", img,
+                                    "-net", "nic",
+                                    "-net", "user"])
+        self.emulator.login()
+
+    def verify_gdbserver(self):
+        cmd = "gdbserver --version"
+        self.assertRunOk(cmd)
+
+    def verify_gdb(self):
+        cmd = "gdb --version"
+        self.assertRunOk(cmd)
+
+
+class TestGdbHostOnlyDefault(BaseGdb):
+    config = \
+        infra.basetest.MINIMAL_CONFIG + \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+
+
+class TestGdbHostOnlyAllFeatures(BaseGdb):
+    config = \
+        infra.basetest.MINIMAL_CONFIG + \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_PACKAGE_HOST_GDB_TUI=y
+        BR2_PACKAGE_HOST_GDB_PYTHON3=y
+        BR2_PACKAGE_HOST_GDB_SIM=y
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+
+
+class TestGdbserverOnly(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_GDB=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.boot()
+        self.verify_gdbserver()
+
+
+class TestGdbFullTarget(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_GDB=y
+        BR2_PACKAGE_GDB_DEBUGGER=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.boot()
+        self.verify_gdb()
+
+
+class TestGdbHostOnly9x(BaseGdb):
+    config = \
+        infra.basetest.MINIMAL_CONFIG + \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_9_2=y
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+
+
+class TestGdbHostGdbserver9x(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_9_2=y
+        BR2_PACKAGE_GDB=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+        self.boot()
+        self.verify_gdbserver()
+
+
+class TestGdbHostGdbTarget9x(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_9_2=y
+        BR2_PACKAGE_GDB=y
+        BR2_PACKAGE_GDB_DEBUGGER=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+        self.boot()
+        self.verify_gdb()
+
+
+class TestGdbHostOnly11x(BaseGdb):
+    config = \
+        infra.basetest.MINIMAL_CONFIG + \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_11=y
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+
+
+class TestGdbHostGdbserver11x(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_11=y
+        BR2_PACKAGE_GDB=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+        self.boot()
+        self.verify_gdbserver()
+
+
+class TestGdbHostGdbTarget11x(BaseGdb):
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_GDB_VERSION_11=y
+        BR2_PACKAGE_GDB=y
+        BR2_PACKAGE_GDB_DEBUGGER=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        self.verify_host_gdb()
+        self.boot()
+        self.verify_gdb()
+
+
+class TestGdbArc(BaseGdb):
+    config = \
+        """
+        BR2_arcle=y
+        BR2_archs4x_rel31=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_PACKAGE_HOST_GDB=y
+        BR2_PACKAGE_GDB=y
+        BR2_PACKAGE_GDB_SERVER=y
+        BR2_PACKAGE_GDB_DEBUGGER=y
+        """
+
+    def test_run(self):
+        self.verify_host_gdb("arc-linux")


More information about the buildroot mailing list