12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/bin/sh
- guild compile "$0"
- exec guile -q -s "$0" "$@"
- !#
- (unless (defined? 'setrlimit)
- ;; Without an rlimit, this test can take down your system, as it
- ;; consumes all of your memory in stack space. That doesn't seem like
- ;; something we should run as part of an automated test suite.
- (exit 0))
- ;; 100 MB.
- (define *limit* (* 100 1024 1024))
- (call-with-values (lambda () (getrlimit 'as))
- (lambda (soft hard)
- (unless (and soft (< soft *limit*))
- (setrlimit 'as (if hard (min *limit* hard) *limit*) hard))))
- (define (test)
- (catch 'stack-overflow
- (lambda ()
- (let lp ()
- (lp)
- (error "should not be reached")))
- (lambda _
- #t)))
- ;; Run the test a few times. The stack will only be enlarged and
- ;; relocated on the first one.
- (test)
- (test)
- (test)
- (test)
- (test)
- ;; Local Variables:
- ;; mode: scheme
- ;; End:
|