]> gitweb.factorcode.org Git - factor.git/commitdiff
memory.tests: a full test against #1289, it shouldn't crash
authorBjörn Lindqvist <bjourne@gmail.com>
Sat, 9 May 2015 23:27:43 +0000 (01:27 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 10 May 2015 03:04:23 +0000 (20:04 -0700)
core/memory/memory-tests.factor

index 8b5360f3cfaa000636b9943d6897d39befd66b55..0b7744549fccff930a3cf986f1823f43c61f4983 100644 (file)
@@ -1,5 +1,5 @@
-USING: accessors effects kernel kernel.private math memory prettyprint
-io sequences tools.test words namespaces layouts classes
+USING: accessors byte-arrays effects kernel kernel.private math memory
+prettyprint io sequences tools.test words namespaces layouts classes
 classes.builtin arrays quotations system ;
 FROM: tools.memory => data-room code-room ;
 IN: memory.tests
@@ -91,3 +91,22 @@ SYMBOL: foo-var
 { } [
     minor-gc 100 deep-stack-minor-gc
 ] unit-test
+
+! Bug #1289
+TUPLE: tup2 a b c d ;
+
+: inner ( k -- n )
+    20 f <array> 20 f <array> assert=
+    ! Allocates a byte array so large that the next allocation will
+    ! trigger a gc.
+    drop 2097103 <byte-array> ;
+
+: outer ( -- lag )
+    9 iota [ inner ] map
+    ! D 0 is scrubbed, but if the branch calling 'inner' was
+    ! called, then both D 0 and D 1 should have been scrubbed.
+    0 9 1 tup2 boa ;
+
+{ } [
+    outer drop
+] unit-test