diff --git a/tests.scm b/tests.scm index b6573b7..b69571a 100644 --- a/tests.scm +++ b/tests.scm @@ -1,6 +1,7 @@ (use-modules (d- test) (scmvm assembler) (scmvm vm) + (scmvm debugger) (rnrs bytevectors) (rnrs io ports) ((scheme base) @@ -129,3 +130,18 @@ (vm-pc-set! my-vm 5) (run-vm my-vm) (assert-equal 55 (vm-memory-ref my-vm 1)))) + +(define-test-suite "debugger" + (define-test "modify-running-program" + (define my-debugger (make-debugger fib-program-asm)) + (define my-vm (debugger-vm my-debugger)) + (define my-data (vm-data-stack my-vm)) + (vm-memory-set! my-vm 1 10) + (vm-pc-set! my-vm 5) + (debugger-breakpoint-add! my-debugger 'fib) + (debugger-continue my-debugger) + (assert-equal 10 (stack-peek my-data)) + (stack-pop my-data) + (stack-push my-data 1) + (debugger-continue my-debugger) + (assert-equal 1 (vm-memory-ref my-vm 1))))