[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