File: test50.sc

package info (click to toggle)
scheme2c 2011.07.26-5
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,760 kB
  • sloc: ansic: 62,439; lisp: 15,686; asm: 851; makefile: 673; sh: 19; csh: 9
file content (91 lines) | stat: -rw-r--r-- 2,738 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
;;;
;;; Scheme->C test program
;;;
;;;
;;; Test functions for basic Scheme functions.
;;;

;* Copyright (c) 1989-1993 Hewlett-Packard Development Company, L.P.
;*		All Rights Reserved

;* Permission is hereby granted, free of charge, to any person obtaining a
;* copy of this software and associated documentation files (the "Software"),
;* to deal in the Software without restriction, including without limitation
;* the rights to use, copy, modify, merge, publish, distribute, sublicense,
;* and/or sell copies of the Software, and to permit persons to whom the
;* Software is furnished to do so, subject to the following conditions:
;* 
;* The above copyright notice and this permission notice shall be included in
;* all copies or substantial portions of the Software.
;* 
;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
;* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
;* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
;* DEALINGS IN THE SOFTWARE.

(module test50 (main test50))

;;; Memory management test

(define (LISTTEST i l)
    (do ((next 1 (+ next 1))
	 (l l (cdr l)))
	((or (null? l) (not (eq? (car l) next)))
	 (if (or l (not (eq? next 10001)))
	     (error 'listtest "Failed! ~s-~s~%" i next)))))

(define (TEST50)
    (display "***** Starting Memory Test")
    (newline)

    (let ((old-obarray *obarray*))
	 (collect)
    	 (display "Successfully Garbage Collected initial image")
    	 (newline)
	 (collect-all)
	 (display "Collect-all of initial image")
	 (newline)
	 (if (not (equal? old-obarray *obarray*))
	     (error 'memtest "*OBARRAY* comparison failed")))
    
    (display "1000 Lists of 10000 pairs each")
    (newline)
    (do ((i 0 (+ i 1)))
	((= 1000 i))
	(do ((j 10000 (- j 1))
	     (l '() (cons j l)))
	    ((zero? j)
	     (listtest i l)))
        (if (zero? (remainder i 100))
	    (begin (display i) (display " ") (flush-buffer))))
    (newline)
    
    (display "1000 Vectors of 10000 entries each")
    (newline)
    (do ((i 0 (+ i 1)))
	((= i 1000))
	(make-vector 10000 i)
	(if (zero? (remainder i 100))
	    (begin (display i) (display " ") (flush-buffer))))
    (newline)
     
    (display "1000 Strings of 10000 entries each")
    (newline)
    (do ((i 0 (+ i 1)))
	((= i 1000))
	(make-string 10000)
	(if (zero? (remainder i 100))
	    (begin (display i) (display " ") (flush-buffer))))
    (newline)
    
    (display "***** Ending Memory Test")
    (newline))