From 52a2a21c1cdefb241aa0e43b9e0b0a027f6dc511 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Wed, 10 Apr 2019 17:22:00 -0700 Subject: 5074 Fail early when writing to a fake file runs out of space. Makes debugging tests easier. Reads from files, on the other hand, are only buffering to a temporary stream, so it makes sense to silently stop when they run out of space. In the process I uncovered a testing bug in pack.subx: I was missing a trailing space in the expected result, but the test still passed because the space was getting truncated. Being principled about aborting on overflow by default will help avoid such issues. --- subx/apps/crenshaw2-1 | Bin 17957 -> 18156 bytes subx/apps/crenshaw2-1.subx | 11 +- subx/apps/crenshaw2-1b | Bin 18516 -> 18715 bytes subx/apps/crenshaw2-1b.subx | 11 +- subx/apps/factorial | Bin 16875 -> 17018 bytes subx/apps/handle | Bin 17649 -> 17792 bytes subx/apps/hex | Bin 20928 -> 21191 bytes subx/apps/hex.subx | 19 +++- subx/apps/pack | Bin 35463 -> 35607 bytes subx/apps/pack.subx | 264 +++++++++++++++++++++++++------------------- 10 files changed, 185 insertions(+), 120 deletions(-) (limited to 'subx/apps') diff --git a/subx/apps/crenshaw2-1 b/subx/apps/crenshaw2-1 index 71a66394..c30a1910 100755 Binary files a/subx/apps/crenshaw2-1 and b/subx/apps/crenshaw2-1 differ diff --git a/subx/apps/crenshaw2-1.subx b/subx/apps/crenshaw2-1.subx index 05fdbbfe..4aa83988 100644 --- a/subx/apps/crenshaw2-1.subx +++ b/subx/apps/crenshaw2-1.subx @@ -33,7 +33,7 @@ Entry: # run tests if necessary, call 'compile' if not #? # for debugging: run a single test; don't bother setting status code -#? e8/call test-get-num-reads-single-digit/disp32 +#? e8/call test-get-num-aborts-on-non-digit-in-Look/disp32 #? eb/jump $main:end/disp8 # . prolog @@ -594,8 +594,15 @@ _test-error-stream: # current read index 0/imm32 # length - 8/imm32 + 0x40/imm32 # data 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes # . . vim:nowrap:textwidth=0 diff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index 1528d546..79979b26 100755 Binary files a/subx/apps/crenshaw2-1b and b/subx/apps/crenshaw2-1b differ diff --git a/subx/apps/crenshaw2-1b.subx b/subx/apps/crenshaw2-1b.subx index ba30ef94..87826588 100644 --- a/subx/apps/crenshaw2-1b.subx +++ b/subx/apps/crenshaw2-1b.subx @@ -722,6 +722,7 @@ expected: # ed : (address exit-descriptor), f : fd or (address stream), s : (ad # . . call e8/call stop/disp32 # should never get past this point +$expected:dead-end: # . epilog 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . . # copy EBP to ESP 5d/pop-to-EBP @@ -743,6 +744,7 @@ get-char: # f : (address buffered-file) -> 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # save EAX to Look 89/copy 0/mod/indirect 5/rm32/.disp32 . . 0/r32/EAX Look/disp32 . # copy EAX to *Look +$get-char:end: # . restore registers 58/pop-to-EAX # . epilog @@ -791,8 +793,15 @@ _test-error-stream: # current read index 0/imm32 # length - 8/imm32 + 0x40/imm32 # data 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes # . . vim:nowrap:textwidth=0 diff --git a/subx/apps/factorial b/subx/apps/factorial index 30244f79..6ce4fc6b 100755 Binary files a/subx/apps/factorial and b/subx/apps/factorial differ diff --git a/subx/apps/handle b/subx/apps/handle index 3c80796e..3de933dd 100755 Binary files a/subx/apps/handle and b/subx/apps/handle differ diff --git a/subx/apps/hex b/subx/apps/hex index 66c66b5b..331997cf 100755 Binary files a/subx/apps/hex and b/subx/apps/hex differ diff --git a/subx/apps/hex.subx b/subx/apps/hex.subx index 88dc19fd..08aff7e5 100644 --- a/subx/apps/hex.subx +++ b/subx/apps/hex.subx @@ -20,7 +20,7 @@ Entry: # run tests if necessary, convert stdin if not #? # for debugging: run a single test -#? e8/call test-skip-until-newline/disp32 +#? e8/call test-convert-next-octet-aborts-on-single-hex-byte/disp32 #? 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX #? eb/jump $main:end/disp8 @@ -1516,9 +1516,24 @@ _test-error-stream: # current read index 0/imm32 # length - 8/imm32 + 0x80/imm32 # data 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes + 00 00 00 00 00 00 00 00 # 8 bytes # a test buffered file for _test-error-stream _test-error-buffered-file: diff --git a/subx/apps/pack b/subx/apps/pack index 41593ba3..06d5e32b 100755 Binary files a/subx/apps/pack and b/subx/apps/pack differ diff --git a/subx/apps/pack.subx b/subx/apps/pack.subx index ae065f61..ef2a52c0 100644 --- a/subx/apps/pack.subx +++ b/subx/apps/pack.subx @@ -21,7 +21,7 @@ Entry: # run tests if necessary, convert stdin if not # for debugging: run a single test -#? e8/call test-convert-data-trailing-comment/disp32 +#? e8/call test-emit-non-number-with-all-hex-digits-and-metadata/disp32 #? 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX #? eb/jump $main:end/disp8 @@ -1280,7 +1280,7 @@ test-convert-data-passes-comments-through: 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -3573,7 +3573,7 @@ test-convert-instruction-passes-comments-through: 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6604,16 +6604,16 @@ test-emit-number: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6624,27 +6624,27 @@ test-emit-number: 68/push _test-slice-three-zero-end/imm32/end 68/push _test-slice-three-zero/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 1) + # emit(_test-output-buffered-file, slice, 1) # . . push args 68/push 1/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "30 ", msg) + # check-stream-equal(_test-output-stream, "30 ", msg) # . . push args 68/push "F - test-emit-number/1"/imm32 68/push "30 "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -6660,16 +6660,16 @@ test-emit-negative-number: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6680,27 +6680,27 @@ test-emit-negative-number: 68/push _test-slice-negative-two-end/imm32/end 68/push _test-slice-negative-two/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 2) + # emit(_test-output-buffered-file, slice, 2) # . . push args 68/push 2/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "fe ff ", msg) + # check-stream-equal(_test-output-stream, "fe ff ", msg) # . . push args 68/push "F - test-emit-number/1"/imm32 68/push "fe ff "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -6715,16 +6715,16 @@ test-emit-number-with-metadata: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6735,28 +6735,28 @@ test-emit-number-with-metadata: 68/push _test-slice-negative-two-metadata-end/imm32/end 68/push _test-slice-negative-two/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 2) + # emit(_test-output-buffered-file, slice, 2) # . . push args 68/push 2/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # the '/foo' will have no impact on the output - # check-stream-equal(_test-stream, "fe ff ", msg) + # check-stream-equal(_test-output-stream, "fe ff ", msg) # . . push args 68/push "F - test-emit-number-with-metadata"/imm32 68/push "fe ff "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -6771,16 +6771,16 @@ test-emit-non-number: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6791,27 +6791,27 @@ test-emit-non-number: 68/push _test-slice-non-number-word-end/imm32/end 68/push _test-slice-non-number-word/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 2) + # emit(_test-output-buffered-file, slice, 2) # . . push args 68/push 2/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "xyz", msg) + # check-stream-equal(_test-output-stream, "xyz", msg) # . . push args 68/push "F - test-emit-non-number"/imm32 68/push "xyz "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -6826,16 +6826,16 @@ test-emit-non-number-with-metadata: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6846,27 +6846,27 @@ test-emit-non-number-with-metadata: 68/push _test-slice-non-number-word-metadata-end/imm32/end 68/push _test-slice-non-number-word/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 2) + # emit(_test-output-buffered-file, slice, 2) # . . push args 68/push 2/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "xyz/", msg) + # check-stream-equal(_test-output-stream, "xyz/", msg) # . . push args 68/push "F - test-emit-non-number-with-metadata"/imm32 68/push "xyz/ "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -6881,16 +6881,16 @@ test-emit-non-number-with-all-hex-digits-and-metadata: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -6901,27 +6901,61 @@ test-emit-non-number-with-all-hex-digits-and-metadata: 68/push _test-slice-hexlike-non-number-word-metadata-end/imm32/end 68/push _test-slice-hexlike-non-number-word/imm32/start 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . . # copy ESP to ECX - # emit(_test-buffered-file, slice, 2) + # emit(_test-output-buffered-file, slice, 2) # . . push args 68/push 2/imm32 51/push-ECX - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "abcd/xyz") +#? # dump output {{{ +#? # . write(2/stderr, "^") +#? # . . push args +#? 68/push "^"/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . write-stream(2/stderr, _test-output-stream) +#? # . . push args +#? 68/push _test-output-stream/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write-stream/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . write(2/stderr, "$") +#? # . . push args +#? 68/push "$"/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . write(2/stderr, "\n") +#? # . . push args +#? 68/push Newline/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # }}} + # check-stream-equal(_test-output-stream, "abcd/xyz") # . . push args 68/push "F - test-emit-non-number-with-all-hex-digits"/imm32 - 68/push "abcd/xyz"/imm32 - 68/push _test-stream/imm32 + 68/push "abcd/xyz "/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -7226,44 +7260,44 @@ $emit-hex:end: test-emit-hex-single-byte: # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # emit-hex(_test-buffered-file, 0xab, 1) + # emit-hex(_test-output-buffered-file, 0xab, 1) # . . push args 68/push 1/imm32 68/push 0xab/imm32 - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit-hex/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-ints-equal(*_test-stream->data, 'ab ', msg) + # check-ints-equal(*_test-output-stream->data, 'ab ', msg) # . . push args 68/push "F - test-emit-hex-single-byte"/imm32 68/push 0x206261/imm32 - # . . push *_test-stream->data - b8/copy-to-EAX _test-stream/imm32 + # . . push *_test-output-stream->data + b8/copy-to-EAX _test-output-stream/imm32 ff 6/subop/push 1/mod/*+disp8 0/rm32/EAX . . . . 0xc/disp8 . # push *(EAX+12) # . . call e8/call check-ints-equal/disp32 @@ -7274,43 +7308,43 @@ test-emit-hex-single-byte: test-emit-hex-multiple-byte: # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # emit-hex(_test-buffered-file, 0x1234, 2) + # emit-hex(_test-output-buffered-file, 0x1234, 2) # . . push args 68/push 2/imm32 68/push 0x1234/imm32 - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit-hex/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream, "34 12 ", msg) + # check-stream-equal(_test-output-stream, "34 12 ", msg) # . . push args 68/push "F - test-emit-hex-multiple-byte/1"/imm32 68/push "34 12 "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -7320,43 +7354,43 @@ test-emit-hex-multiple-byte: test-emit-hex-zero-pad: # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # emit-hex(_test-buffered-file, 0xab, 2) + # emit-hex(_test-output-buffered-file, 0xab, 2) # . . push args 68/push 2/imm32 68/push 0xab/imm32 - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit-hex/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check(_test-stream->data == 'ab 00 ') + # check(_test-output-stream->data == 'ab 00 ') # . . push args 68/push "F - test-emit-hex-zero-pad/1"/imm32 68/push "ab 00 "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -7366,43 +7400,43 @@ test-emit-hex-zero-pad: test-emit-hex-negative: # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # emit-hex(_test-buffered-file, -1, 2) + # emit-hex(_test-output-buffered-file, -1, 2) # . . push args 68/push 2/imm32 68/push -1/imm32 - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call emit-hex/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # flush(_test-buffered-file) + # flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # check-stream-equal(_test-stream == "ff ff ") + # check-stream-equal(_test-output-stream == "ff ff ") # . . push args 68/push "F - test-emit-hex-negative/1"/imm32 68/push "ff ff "/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args @@ -7460,16 +7494,16 @@ test-write-stream-data: 55/push-EBP 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # setup - # . clear-stream(_test-stream) + # . clear-stream(_test-output-stream) # . . push args - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(_test-buffered-file+4) + # . clear-stream(_test-output-buffered-file+4) # . . push args - b8/copy-to-EAX _test-buffered-file/imm32 + b8/copy-to-EAX _test-output-buffered-file/imm32 05/add-to-EAX 4/imm32 50/push-EAX # . . call @@ -7492,27 +7526,27 @@ test-write-stream-data: e8/call write/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP - # write-stream-data(_test-buffered-file, _test-tmp-stream) + # write-stream-data(_test-output-buffered-file, _test-tmp-stream) # . . push args 68/push _test-tmp-stream/imm32 - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call write-stream-data/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # check that the write happened as expected - # . flush(_test-buffered-file) + # . flush(_test-output-buffered-file) # . . push args - 68/push _test-buffered-file/imm32 + 68/push _test-output-buffered-file/imm32 # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . check-stream-equal(_test-stream, "abcd", msg) + # . check-stream-equal(_test-output-stream, "abcd", msg) # . . push args 68/push "F - test-write-stream-data"/imm32 68/push "abcd"/imm32 - 68/push _test-stream/imm32 + 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 # . . discard args -- cgit 1.4.1-2-gfad0