File: test-help.lsp

package info (click to toggle)
gcl27 2.7.1-13
  • links: PTS
  • area: main
  • in suites: sid
  • size: 30,888 kB
  • sloc: lisp: 211,946; ansic: 52,944; sh: 9,347; makefile: 647; tcl: 53; awk: 52
file content (27 lines) | stat: -rw-r--r-- 1,129 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
(defvar *repeats* '(("destru" 4)("destru-mod" 4)
		    ("fprint" 4)("fread" 4)("tprint" 4)
		    ("tak-mod" 4)("tak" 4)("takl" 4)("stak" 4)("takr" 4)
		    ("fft" 10)("fft-mod" 10)
		    ("traverse" 0.1)("triang-mod" 0.1)("triang" 0.1)))


(defun do-test (file output &optional
			      (n (or (cadr (assoc (pathname-name file) *repeats* :test 'equal)) 1))
			      (scale 100))
  (load file)
  (let* ((file (pathname-name file))
	 (pos (position #\- file)))
    (let ((command (intern (string-upcase (format nil "TEST~a" (if pos (subseq file 0 pos) file))))))
      (let ((start    (get-internal-run-time)))
	(with-open-file (s "/dev/null" :direction :output :if-exists :append)
	  (let ((*trace-output* s)(*standard-output* s))
	    (dotimes (i (truncate (* n scale))) (funcall command))))
	(setq start (- (get-internal-run-time) start))
	(setq start (float start));(setq start (/ (float start) n))
	(with-open-file
	    (st output :direction :output :if-exists :append :if-does-not-exist :create)
	  (format st "~:@(~a~)~,12t~,3f~%"
		  file
		  (/ start (float internal-time-units-per-second)))
	  (force-output st)
	  )))))