avoid some GC tests on CGC

Relevant to #2954 #2955
This commit is contained in:
Matthew Flatt 2019-12-07 17:10:31 -07:00
parent 6e958d8339
commit 602c7b0331
2 changed files with 22 additions and 20 deletions

View File

@ -366,14 +366,15 @@
'((1 2 3 4 5 6 7 8 9 10) . val))
(test #f hash-iterate-next ht i)
;; collect key, everything should error
(collect-garbage)
(test #t boolean? (hash-iterate-first ht))
(err/rt-test (hash-iterate-key ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-value ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-pair ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-key+value ht i) exn:fail:contract? err-msg)
(test #f hash-iterate-next ht i))
(unless (eq? 'cgc (system-type 'gc))
;; collect key, everything should error
(collect-garbage)
(test #t boolean? (hash-iterate-first ht))
(err/rt-test (hash-iterate-key ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-value ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-pair ht i) exn:fail:contract? err-msg)
(err/rt-test (hash-iterate-key+value ht i) exn:fail:contract? err-msg)
(test #f hash-iterate-next ht i)))
;; Check that unsafe mutable hash table operations do not segfault
;; after getting valid index from unsafe-mutable-hash-iterate-first and -next.

View File

@ -840,18 +840,19 @@
'((1 2 3 4 5 6 7 8 9 10) . val))
(test #t boolean? (unsafe-weak-hash-iterate-next ht i))
;; collect key, everything should error (but not segfault)
(collect-garbage)(collect-garbage)(collect-garbage)
(test #t boolean? (unsafe-weak-hash-iterate-first ht))
(err/rt-test (unsafe-weak-hash-iterate-key ht i) exn:fail:contract? err-msg)
(test 'gone unsafe-weak-hash-iterate-key ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-value ht i) exn:fail:contract? err-msg)
(test 'gone unsafe-weak-hash-iterate-value ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-pair ht i) exn:fail:contract? err-msg)
(test '(gone . gone) unsafe-weak-hash-iterate-pair ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-key+value ht i) exn:fail:contract? err-msg)
(test-values '(gone gone) (lambda () (unsafe-weak-hash-iterate-key+value ht i 'gone)))
(test #f unsafe-weak-hash-iterate-next ht i))
(unless (eq? 'cgc (system-type 'gc))
;; collect key, everything should error (but not segfault)
(collect-garbage)(collect-garbage)(collect-garbage)
(test #t boolean? (unsafe-weak-hash-iterate-first ht))
(err/rt-test (unsafe-weak-hash-iterate-key ht i) exn:fail:contract? err-msg)
(test 'gone unsafe-weak-hash-iterate-key ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-value ht i) exn:fail:contract? err-msg)
(test 'gone unsafe-weak-hash-iterate-value ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-pair ht i) exn:fail:contract? err-msg)
(test '(gone . gone) unsafe-weak-hash-iterate-pair ht i 'gone)
(err/rt-test (unsafe-weak-hash-iterate-key+value ht i) exn:fail:contract? err-msg)
(test-values '(gone gone) (lambda () (unsafe-weak-hash-iterate-key+value ht i 'gone)))
(test #f unsafe-weak-hash-iterate-next ht i)))
;; Check that unsafe mutable hash table operations do not segfault
;; after getting valid index from unsafe-mutable-hash-iterate-first and -next.