diff --git a/spin/cmds/meson.py b/spin/cmds/meson.py index bb29e12..344a34c 100644 --- a/spin/cmds/meson.py +++ b/spin/cmds/meson.py @@ -483,6 +483,16 @@ def _get_configured_command(command_name): default="html", help=f"Format of the gcov report. Can be one of {', '.join(e.value for e in GcovReportFormat)}.", ) +@click.option( + "--lldb", + is_flag=True, + help="Run pytest via lldb.", +) +@click.option( + "--gdb", + is_flag=True, + help="Run pytest via gdb.", +) @build_option @build_dir_option @click.pass_context @@ -496,6 +506,8 @@ def test( coverage=False, gcov=None, gcov_format=None, + lldb=False, + gdb=False, build=None, build_dir=None, ): @@ -632,6 +644,17 @@ def test( else: cmd = ["pytest"] + if lldb: + cmd = [ + "lldb", + "-O", + "settings set target.process.follow-fork-mode child", + "--", + ] + cmd + + if gdb: + cmd = ["gdb", "-ex", "set detach-on-fork on", "--args"] + cmd + install_dir = _get_install_dir(build_dir) if not os.path.exists(install_dir): os.mkdir(install_dir)