source: project/release/4/stack/trunk/tests/run.scm @ 34140

Last change on this file since 34140 was 34140, checked in by Kon Lovett, 3 years ago

add csc test, add static

File size: 1.4 KB
Line 
1;;;; run.scm
2
3(use utils)
4
5(define-constant TEST-SOURCE-FILE "test-impl.scm")
6
7(cond-expand
8
9  (unix
10
11  (define (csi-n-csc fil #!optional (csi "csi") (csc-opt (compile-file-options)))
12    (let ((rc
13          (begin
14            (print) (print "*** Interpreted ***") (print)
15            (system (string-append csi " -s " fil))) ) )
16      (receive (normal? code) (process-status rc)
17        (if (not normal?)
18          (exit (fxneg code))
19          (if (not (zero? code))
20            (exit code)
21            (begin
22              (print) (print "*** Compiled ***") (print)
23              (parameterize ((compile-file-options csc-opt))
24                ;NOTE this exits due to 'test-exit'!
25                (compile-file fil)) ) ) ) ) ) )
26
27    ;from manual: library # system
28    ;; Returns two values: #t if the process exited normally or #f otherwise;
29    ;; and either the exit status, or the signal number if terminated via signal.
30    (define (process-status rc)
31      (define (wait-signaled? x) (not (= 0 (bitwise-and x 127))))
32      (define (wait-signal x) (bitwise-and x 127))
33      (define (wait-exit-status x) (arithmetic-shift x -8))
34      (if (wait-signaled? rc)
35        (values #f (wait-signal rc))
36        (values #t (wait-exit-status rc)) ) )
37
38    (let* ((args (argv) )
39           (csi (car args) ) )
40      (csi-n-csc TEST-SOURCE-FILE csi '("-O3" "-d2"))  )
41    )
42
43  (else ;(windows ...)
44
45    (include TEST-SOURCE-FILE) )
46)
Note: See TracBrowser for help on using the repository browser.