import os import dap_server import lldbdap_testcase from lldbsuite.test import lldbtest, lldbutil from lldbsuite.test.decorators import * class TestDAP_commands(lldbdap_testcase.DAPTestCaseBase): def test_command_directive_quiet_on_success(self): program = self.getBuildArtifact("a.out") command_quiet = ( "settings set target.show-hex-variable-values-with-leading-zeroes false" ) command_not_quiet = ( "settings set target.show-hex-variable-values-with-leading-zeroes true" ) self.build_and_launch( program, initCommands=["?" + command_quiet, command_not_quiet], terminateCommands=["?" + command_quiet, command_not_quiet], stopCommands=["?" + command_quiet, command_not_quiet], exitCommands=["?" + command_quiet, command_not_quiet], ) full_output = self.collect_console( timeout_secs=1.0, pattern=command_not_quiet, ) self.assertNotIn(command_quiet, full_output) self.assertIn(command_not_quiet, full_output) def do_test_abort_on_error( self, use_init_commands=False, use_launch_commands=False, use_pre_run_commands=False, use_post_run_commands=False, ): program = self.getBuildArtifact("a.out") command_quiet = ( "settings set target.show-hex-variable-values-with-leading-zeroes false" ) command_abort_on_error = "settings set foo bar" commands = ["?!" + command_quiet, "!" + command_abort_on_error] self.build_and_launch( program, initCommands=commands if use_init_commands else None, launchCommands=commands if use_launch_commands else None, preRunCommands=commands if use_pre_run_commands else None, postRunCommands=commands if use_post_run_commands else None, expectFailure=True, ) full_output = self.collect_console( timeout_secs=1.0, pattern=command_abort_on_error, ) self.assertNotIn(command_quiet, full_output) self.assertIn(command_abort_on_error, full_output) def test_command_directive_abort_on_error_init_commands(self): self.do_test_abort_on_error(use_init_commands=True) def test_command_directive_abort_on_error_launch_commands(self): self.do_test_abort_on_error(use_launch_commands=True) def test_command_directive_abort_on_error_pre_run_commands(self): self.do_test_abort_on_error(use_pre_run_commands=True) def test_command_directive_abort_on_error_post_run_commands(self): self.do_test_abort_on_error(use_post_run_commands=True) def test_command_directive_abort_on_error_attach_commands(self): program = self.getBuildArtifact("a.out") command_quiet = ( "settings set target.show-hex-variable-values-with-leading-zeroes false" ) command_abort_on_error = "settings set foo bar" self.build_and_create_debug_adaptor() self.attach( program, attachCommands=["?!" + command_quiet, "!" + command_abort_on_error], expectFailure=True, ) full_output = self.collect_console( timeout_secs=1.0, pattern=command_abort_on_error, ) self.assertNotIn(command_quiet, full_output) self.assertIn(command_abort_on_error, full_output)