| require 'test/unit' | |
| require 'fast/FastBreakpointManager' | |
| require 'test/MockContext' | |
| require 'ruby-debug-base' | |
| class MockRuntimeError < RuntimeError | |
| end | |
| module XoredDebugger | |
| class FastBreakpointManagerTest < Test::Unit::TestCase | |
| def setup() | |
| Debugger.start | |
| @breakpoint_manager = FastBreakpointManager.new | |
| end | |
| def teardown() | |
| Debugger.stop | |
| end | |
| def test_line_breakpoint | |
| assert_equal(true, Debugger.breakpoints.empty?) | |
| @breakpoint_manager.add_line_breakpoint('test.rb', 100, true) | |
| assert_equal(false, Debugger.breakpoints.empty?) | |
| assert_equal(false, @breakpoint_manager.check_line_breakpoint(41234)) | |
| assert_equal(false, Debugger.breakpoints.empty?) | |
| assert_equal(true, @breakpoint_manager.check_line_breakpoint(Debugger.breakpoints[0].id)) | |
| assert_equal(true, Debugger.breakpoints.empty?) | |
| bp = @breakpoint_manager.add_line_breakpoint('test.rb', 100, false) | |
| assert_equal(true, @breakpoint_manager.check_line_breakpoint(Debugger.breakpoints[0].id)) | |
| assert_equal(true, @breakpoint_manager.check_line_breakpoint(Debugger.breakpoints[0].id)) | |
| @breakpoint_manager.remove_breakpoint(bp.breakpoint_id) | |
| assert_equal(true, Debugger.breakpoints.empty?) | |
| end | |
| def test_exception_breakpoint | |
| context = MockContext.new | |
| assert_equal(true, @breakpoint_manager.breakpoints.empty?) | |
| @breakpoint_manager.add_exception_breakpoint('RuntimeError', true) | |
| assert_equal(false, @breakpoint_manager.breakpoints.empty?) | |
| assert_equal(false, @breakpoint_manager.check_exception_breakpoint(Exception.new, context)) | |
| assert_equal(false, @breakpoint_manager.breakpoints.empty?) | |
| assert_equal(true, @breakpoint_manager.check_exception_breakpoint(RuntimeError.new, context)) | |
| assert_equal(true, @breakpoint_manager.breakpoints.empty?) | |
| bp = @breakpoint_manager.add_exception_breakpoint('RuntimeError', false) | |
| assert_equal(true, @breakpoint_manager.check_exception_breakpoint(RuntimeError.new, context)) | |
| assert_equal(true, @breakpoint_manager.check_exception_breakpoint(MockRuntimeError.new, context)) | |
| @breakpoint_manager.remove_breakpoint(bp.breakpoint_id) | |
| assert_equal(true, @breakpoint_manager.breakpoints.empty?) | |
| end | |
| end | |
| end |