@@ -465,37 +465,8 @@ T{ RND-TEST-BLOCK DUP TL3 DUP TL5 EVALUATE = -> TRUE }T
465
465
TL5 WRITE-BLOCK ;
466
466
T{ 2RND-TEST-BLOCKS 2DUP TL6 SWAP LOAD = -> TRUE }T
467
467
468
- \ LOAD changes the currect block that is effected by UPDATE
469
- \ This test needs at least 2 distinct buffers, though this is not a
470
- \ requirement of the language specification. If 2 distinct buffers
471
- \ are not returned, then the tests quits with a trivial Pass
472
- : TL7 ( blk1 blk2 -- u1 u2 rnd2 blk2-addr rnd1' rnd1 )
473
- OVER BUFFER OVER BUFFER = IF \ test needs 2 distinct buffers
474
- 2DROP 0 0 0 0 0 0 \ Dummy result
475
- ELSE
476
- OVER BLOCK-RND DUP ROT TL1 >R \ blk1 blk2
477
- DUP S" SOURCE DROP" WRITE-BLOCK \ blk1 blk2
478
- \ change blk1 to a new rnd, but don't UPDATE
479
- OVER BLANK-BUFFER \ blk1 blk2 blk1-addr
480
- BLOCK-RND DUP >R \ blk1 blk2 blk1-addr rnd1'
481
- 0 <# #S #> \ blk1 blk2 blk1-addr c-addr u
482
- ROT SWAP CHARS MOVE \ blk1 blk2
483
- \ Now LOAD blk2
484
- DUP LOAD DUP >R \ blk1 blk2 blk2-addr
485
- \ Write a new blk2
486
- DUP 1024 BL FILL \ blk1 blk2 blk2-addr
487
- BLOCK-RND DUP >R \ blk1 blk2 blk2-addr rnd2
488
- 0 <# #S #> \ blk1 blk2 blk2-addr c-addr u
489
- ROT SWAP CHARS MOVE \ blk1 blk2
490
- \ The following UPDATE should refer to the LOADed blk2, not blk1
491
- UPDATE FLUSH \ blk1 blk2
492
- \ Finally, load both blocks then collect all results
493
- LOAD SWAP LOAD \ u2 u1
494
- R> R> R> R> \ u2 u1 rnd2 blk2-addr rnd1' rnd1
495
- THEN ;
496
- T{ 2RND-TEST-BLOCKS TL7 \ run test procedure
497
- SWAP DROP SWAP DROP \ u2 u1 rnd2 rnd1
498
- 2= -> TRUE }T
468
+ \ A test of the effect of LOAD on UPDATE has been deleted
469
+ \ as unjustified by the Forth Standard - See Issue #37
499
470
500
471
\ I would expect LOAD to work on the contents of the buffer cache
501
472
\ and not the block device, but the specification doesn't say.
0 commit comments