mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	- function names are more emacs-like - implemented (format) function - fixed numerous memory-leaks (valgrind is now happy) Ordinary mixer - added the global view (using hdsp names only)
		
			
				
	
	
		
			382 lines
		
	
	
	
		
			9.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			382 lines
		
	
	
	
		
			9.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
;
 | 
						|
; Test code for all basic alsa lisp commands.
 | 
						|
; The test is indended to find memory leaks.
 | 
						|
;
 | 
						|
; Copyright (c) 2003 Jaroslav Kysela <perex@suse.cz>
 | 
						|
; License: GPL v2 (http://www.gnu.org/licenses/gpl.html)
 | 
						|
;
 | 
						|
 | 
						|
;
 | 
						|
; Basic commands
 | 
						|
;
 | 
						|
 | 
						|
(!=)				(&check-memory)
 | 
						|
(!= 0)				(&check-memory)
 | 
						|
(!= 0 1)			(&check-memory)
 | 
						|
(!= 1 1)			(&check-memory)
 | 
						|
(!= 0 1 2)			(&check-memory)
 | 
						|
(!= 'aaaa 'bbbb)		(&check-memory)
 | 
						|
 | 
						|
(%)				(&check-memory)
 | 
						|
(% 11)				(&check-memory)
 | 
						|
(% 11 5)			(&check-memory)
 | 
						|
(% 11.5 5.1)			(&check-memory)
 | 
						|
(% 11.5 5.1 2.2)		(&check-memory)
 | 
						|
(% 'aaaa 'bbbb)			(&check-memory)
 | 
						|
 | 
						|
(&check-memory)			(&check-memory)
 | 
						|
(&check-memory "abcd")		(&check-memory)
 | 
						|
(&dump-memory "-")		(&check-memory)
 | 
						|
(&dump-memory)			(&check-memory)
 | 
						|
(&dump-objects "-")		(&check-memory)
 | 
						|
(&dump-objects)			(&check-memory)
 | 
						|
(&stat-memory)			(&check-memory)
 | 
						|
(&stat-memory "abcd")		(&check-memory)
 | 
						|
 | 
						|
(*)				(&check-memory)
 | 
						|
(* 1)				(&check-memory)
 | 
						|
(* 1 2)				(&check-memory)
 | 
						|
(* 1.1 2.2)			(&check-memory)
 | 
						|
(* 1.1 2.2 3.3)			(&check-memory)
 | 
						|
(* 'aaaa)			(&check-memory)
 | 
						|
 | 
						|
(+)				(&check-memory)
 | 
						|
(+ 1)				(&check-memory)
 | 
						|
(+ 1 2)				(&check-memory)
 | 
						|
(+ 1.1 2.2)			(&check-memory)
 | 
						|
(+ 1.1 2.2 3.3)			(&check-memory)
 | 
						|
(+ 'aaaa)			(&check-memory)
 | 
						|
(+ 'aaaa 'bbbb)			(&check-memory)
 | 
						|
(+ "aaaa")			(&check-memory)
 | 
						|
(+ "aaaa" "bbbb")		(&check-memory)
 | 
						|
(+ "aaaa" "bbbb" "cccc")	(&check-memory)
 | 
						|
 | 
						|
(-)				(&check-memory)
 | 
						|
(- 1)				(&check-memory)
 | 
						|
(- 1 2)				(&check-memory)
 | 
						|
(- 1.1 2.2)			(&check-memory)
 | 
						|
(- 1.1 2.2 3.3)			(&check-memory)
 | 
						|
(- 'aaaa)			(&check-memory)
 | 
						|
(- 'aaaa 'bbbb)			(&check-memory)
 | 
						|
 | 
						|
(/)				(&check-memory)
 | 
						|
(/ 1)				(&check-memory)
 | 
						|
(/ 1 2)				(&check-memory)
 | 
						|
(/ 1.1 2.2)			(&check-memory)
 | 
						|
(/ 1.1 2.2 3.3)			(&check-memory)
 | 
						|
(/ 'aaaa)			(&check-memory)
 | 
						|
(/ 'aaaa 'bbbb)			(&check-memory)
 | 
						|
 | 
						|
(<)				(&check-memory)
 | 
						|
(< 0)				(&check-memory)
 | 
						|
(< 0 1)				(&check-memory)
 | 
						|
(< 1 0)				(&check-memory)
 | 
						|
(< 0 1 2)			(&check-memory)
 | 
						|
 | 
						|
(<=)				(&check-memory)
 | 
						|
(<= 0)				(&check-memory)
 | 
						|
(<= 0 1)			(&check-memory)
 | 
						|
(<= 1 0)			(&check-memory)
 | 
						|
(<= 0 1 2)			(&check-memory)
 | 
						|
 | 
						|
(=)				(&check-memory)
 | 
						|
(= 0)				(&check-memory)
 | 
						|
(= 0 1)				(&check-memory)
 | 
						|
(= 1 1)				(&check-memory)
 | 
						|
(= 0 1 2)			(&check-memory)
 | 
						|
 | 
						|
(>)				(&check-memory)
 | 
						|
(> 0)				(&check-memory)
 | 
						|
(> 0 1)				(&check-memory)
 | 
						|
(> 1 0)				(&check-memory)
 | 
						|
(> 0 1 2)			(&check-memory)
 | 
						|
 | 
						|
(>= 0)				(&check-memory)
 | 
						|
(>= 0 1)			(&check-memory)
 | 
						|
(>= 1 0)			(&check-memory)
 | 
						|
(>= 0 1 2)			(&check-memory)
 | 
						|
 | 
						|
(and)				(&check-memory)
 | 
						|
(and 0)				(&check-memory)
 | 
						|
(and 1)				(&check-memory)
 | 
						|
(and 0 0 0)			(&check-memory)
 | 
						|
 | 
						|
(quote a)			(&check-memory)
 | 
						|
 | 
						|
(assoc)							(&check-memory)
 | 
						|
(assoc 'one)						(&check-memory)
 | 
						|
(assoc 'one '((one . first)))				(&check-memory)
 | 
						|
(assoc 'one '((two . second)))				(&check-memory)
 | 
						|
(assoc 'one '((one . first) (two . second)))		(&check-memory)
 | 
						|
 | 
						|
(assq)							(&check-memory)
 | 
						|
(assq 'one)						(&check-memory)
 | 
						|
(assq "one" '(("one" . "first")))			(&check-memory)
 | 
						|
(assq "one" '(("two" . "second")))			(&check-memory)
 | 
						|
(assq "one" '(("one" . "first") ("two" . "second")))	(&check-memory)
 | 
						|
 | 
						|
(atom)				(&check-memory)
 | 
						|
(atom 'one)			(&check-memory)
 | 
						|
(atom "one")			(&check-memory)
 | 
						|
(atom "one" 'two)		(&check-memory)
 | 
						|
 | 
						|
(funcall)			(&check-memory)
 | 
						|
 | 
						|
(car)				(&check-memory)
 | 
						|
(car '(one . two))		(&check-memory)
 | 
						|
 | 
						|
(cdr)				(&check-memory)
 | 
						|
(cdr '(one . two))		(&check-memory)
 | 
						|
 | 
						|
(concat)			(&check-memory)
 | 
						|
(concat 'aaaa)			(&check-memory)
 | 
						|
(concat 'aaaa 'bbbb)		(&check-memory)
 | 
						|
(concat "aaaa")			(&check-memory)
 | 
						|
(concat "aaaa" "bbbb")		(&check-memory)
 | 
						|
(concat "aaaa" "bbbb" "cccc")	(&check-memory)
 | 
						|
 | 
						|
(cond)				(&check-memory)
 | 
						|
(cond 0)			(&check-memory)
 | 
						|
(cond 0 1)			(&check-memory)
 | 
						|
(cond 0 1 2)			(&check-memory)
 | 
						|
(cond 0 1 2 3)			(&check-memory)
 | 
						|
(cond (0 'a) (1 'b) (0 'd))	(&check-memory)
 | 
						|
(cond 1)			(&check-memory)
 | 
						|
(cond 1 1)			(&check-memory)
 | 
						|
(cond 1 1 2)			(&check-memory)
 | 
						|
(cond 1 1 2 3)			(&check-memory)
 | 
						|
 | 
						|
(cons)				(&check-memory)
 | 
						|
(cons "a")			(&check-memory)
 | 
						|
(cons "a" "b")			(&check-memory)
 | 
						|
(cons "a" "b" "c")		(&check-memory)
 | 
						|
 | 
						|
(eq)				(&check-memory)
 | 
						|
(eq 1)				(&check-memory)
 | 
						|
(eq 0 0)			(&check-memory)
 | 
						|
(eq "a" "b")			(&check-memory)
 | 
						|
(eq "a" "b" "c")		(&check-memory)
 | 
						|
 | 
						|
(equal)				(&check-memory)
 | 
						|
(equal 1)			(&check-memory)
 | 
						|
(equal 0 0)			(&check-memory)
 | 
						|
(equal "a" "b")			(&check-memory)
 | 
						|
(equal "a" "b" "c")		(&check-memory)
 | 
						|
 | 
						|
(exfun)				(&check-memory)
 | 
						|
(exfun 'abcd)			(&check-memory)
 | 
						|
(exfun 'abcd 'ijkl)		(&check-memory)
 | 
						|
 | 
						|
(format)			(&check-memory)
 | 
						|
(format 1)			(&check-memory)
 | 
						|
(format 'a)			(&check-memory)
 | 
						|
(format "a" "b" "c")		(&check-memory)
 | 
						|
(format "1.2")			(&check-memory)
 | 
						|
(format "%c" 43)		(&check-memory)
 | 
						|
(format "%d" 12)		(&check-memory)
 | 
						|
(format "%i" 12)		(&check-memory)
 | 
						|
(format "%f" 12.1)		(&check-memory)
 | 
						|
(format "%s" "abcd")		(&check-memory)
 | 
						|
(format "%s %i %i" "abcd" 1 2)	(&check-memory)
 | 
						|
 | 
						|
(garbage-collect)		(&check-memory)
 | 
						|
(gc)				(&check-memory)
 | 
						|
 | 
						|
(if)				(&check-memory)
 | 
						|
(if t)				(&check-memory)
 | 
						|
(if t 'a)			(&check-memory)
 | 
						|
(if t 'a 'b)			(&check-memory)
 | 
						|
(if nil)			(&check-memory)
 | 
						|
(if nil 'a)			(&check-memory)
 | 
						|
(if nil 'a 'b)			(&check-memory)
 | 
						|
 | 
						|
(include "itest.lisp")		(&check-memory)
 | 
						|
 | 
						|
(list)				(&check-memory)
 | 
						|
(list "a")			(&check-memory)
 | 
						|
(list "a" "b")			(&check-memory)
 | 
						|
(list "a" "b" "c")		(&check-memory)
 | 
						|
 | 
						|
(not)				(&check-memory)
 | 
						|
(not 0)				(&check-memory)
 | 
						|
(not nil)			(&check-memory)
 | 
						|
(not t)				(&check-memory)
 | 
						|
(not 'a)			(&check-memory)
 | 
						|
(not 'a 'b 'c 'd)		(&check-memory)
 | 
						|
 | 
						|
(nth)				(&check-memory)
 | 
						|
(nth 2)				(&check-memory)
 | 
						|
(nth 2 nil)			(&check-memory)
 | 
						|
(nth 2 '(('one 'two 'three)))	(&check-memory)
 | 
						|
 | 
						|
(null)				(&check-memory)
 | 
						|
(null 0)			(&check-memory)
 | 
						|
(null nil)			(&check-memory)
 | 
						|
(null t)			(&check-memory)
 | 
						|
(null 'a)			(&check-memory)
 | 
						|
(null 'a 'b 'c 'd)		(&check-memory)
 | 
						|
 | 
						|
(or)				(&check-memory)
 | 
						|
(or 0)				(&check-memory)
 | 
						|
(or 1)				(&check-memory)
 | 
						|
(or 0 0 0)			(&check-memory)
 | 
						|
 | 
						|
(path)				(&check-memory)
 | 
						|
(path 0)			(&check-memory)
 | 
						|
(path 1)			(&check-memory)
 | 
						|
(path 0 0 0)			(&check-memory)
 | 
						|
(path "data")			(&check-memory)
 | 
						|
 | 
						|
(princ)				(&check-memory)
 | 
						|
(princ "\nabcd\n")		(&check-memory)
 | 
						|
(princ "a" "b" "c\n")		(&check-memory)
 | 
						|
 | 
						|
(prog1)				(&check-memory)
 | 
						|
(prog1 1)			(&check-memory)
 | 
						|
(prog1 1 2 3 4)			(&check-memory)
 | 
						|
 | 
						|
(prog2)				(&check-memory)
 | 
						|
(prog2 1)			(&check-memory)
 | 
						|
(prog2 1 2 3 4)			(&check-memory)
 | 
						|
 | 
						|
(progn)				(&check-memory)
 | 
						|
(progn 1)			(&check-memory)
 | 
						|
(progn 1 2 3 4)			(&check-memory)
 | 
						|
 | 
						|
(quote)				(&check-memory)
 | 
						|
(quote a)			(&check-memory)
 | 
						|
 | 
						|
(rassoc)						(&check-memory)
 | 
						|
(rassoc 'first)						(&check-memory)
 | 
						|
(rassoc 'first '((one . first)))			(&check-memory)
 | 
						|
(rassoc 'first '((two . second)))			(&check-memory)
 | 
						|
(rassoc 'first '((one . first) (two . second)))		(&check-memory)
 | 
						|
 | 
						|
(rassq)							(&check-memory)
 | 
						|
(rassq "first")						(&check-memory)
 | 
						|
(rassq "first" '(("one" . "first")))			(&check-memory)
 | 
						|
(rassq "first" '(("two" . "second")))			(&check-memory)
 | 
						|
(rassq "first" '(("one" . "first") ("two" . "second")))	(&check-memory)
 | 
						|
 | 
						|
(set)				(&check-memory)
 | 
						|
(set "a") (unset "a")		(&check-memory)
 | 
						|
(set "a" 1) (unset "a")		(&check-memory)
 | 
						|
(set a 1) (unset a)		(&check-memory)
 | 
						|
(set "a" 1 2) (unset "a")	(&check-memory)
 | 
						|
 | 
						|
(setf)				(&check-memory)
 | 
						|
(setf a) (unsetf a)		(&check-memory)
 | 
						|
(setf a 1) (unsetf a)		(&check-memory)
 | 
						|
(setf a 1 2) (unsetf a)		(&check-memory)
 | 
						|
 | 
						|
(setq)				(&check-memory)
 | 
						|
(setq a) (unsetq a)		(&check-memory)
 | 
						|
(setq a 1) (unsetq a)		(&check-memory)
 | 
						|
(setq a 1 2) (unsetq a)		(&check-memory)
 | 
						|
 | 
						|
(string-equal)			(&check-memory)
 | 
						|
(string-equal 1)		(&check-memory)
 | 
						|
(string-equal "a")		(&check-memory)
 | 
						|
(string-equal "a" "a")		(&check-memory)
 | 
						|
(string-equal "a" "b")		(&check-memory)
 | 
						|
(string-equal "a" "b" "c")	(&check-memory)
 | 
						|
 | 
						|
(string-to-integer)		(&check-memory)
 | 
						|
(string-to-integer 1)		(&check-memory)
 | 
						|
(string-to-integer 1.5)		(&check-memory)
 | 
						|
(string-to-integer "a")		(&check-memory)
 | 
						|
(string-to-integer "a" "a")	(&check-memory)
 | 
						|
(string-to-integer "a" "b")	(&check-memory)
 | 
						|
(string-to-integer "a" "b" "c")	(&check-memory)
 | 
						|
 | 
						|
(string-to-float)		(&check-memory)
 | 
						|
(string-to-float 1)		(&check-memory)
 | 
						|
(string-to-float 1.5)		(&check-memory)
 | 
						|
(string-to-float "a")		(&check-memory)
 | 
						|
(string-to-float "a" "a")	(&check-memory)
 | 
						|
(string-to-float "a" "b")	(&check-memory)
 | 
						|
(string-to-float "a" "b" "c")	(&check-memory)
 | 
						|
 | 
						|
(string=)			(&check-memory)
 | 
						|
(string= 1)			(&check-memory)
 | 
						|
(string= "a")			(&check-memory)
 | 
						|
(string= "a" "a")		(&check-memory)
 | 
						|
(string= "a" "b")		(&check-memory)
 | 
						|
(string= "a" "b" "c")		(&check-memory)
 | 
						|
 | 
						|
(unless)			(&check-memory)
 | 
						|
(unless 1)			(&check-memory)
 | 
						|
(unless 0 1 2)			(&check-memory)
 | 
						|
(unless t 2 3 4)		(&check-memory)
 | 
						|
(unless nil 2 3 4)		(&check-memory)
 | 
						|
 | 
						|
(unset)				(&check-memory)
 | 
						|
(unset "a")			(&check-memory)
 | 
						|
 | 
						|
(unsetf)			(&check-memory)
 | 
						|
(unsetf a)			(&check-memory)
 | 
						|
(unsetf a b)			(&check-memory)
 | 
						|
 | 
						|
(unsetq)			(&check-memory)
 | 
						|
(unsetq a)			(&check-memory)
 | 
						|
(unsetq a b)			(&check-memory)
 | 
						|
 | 
						|
(when)				(&check-memory)
 | 
						|
(when 0)			(&check-memory)
 | 
						|
(when 0 1)			(&check-memory)
 | 
						|
(when t 1)			(&check-memory)
 | 
						|
(when nil 1)			(&check-memory)
 | 
						|
 | 
						|
(while)				(&check-memory)
 | 
						|
(while nil)			(&check-memory)
 | 
						|
(while nil 1)			(&check-memory)
 | 
						|
(while nil 1 2 3 4)		(&check-memory)
 | 
						|
 | 
						|
;
 | 
						|
; more complex command sequences
 | 
						|
;
 | 
						|
 | 
						|
(setq abcd "abcd")
 | 
						|
(unsetq abcd)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(setq abcd (("abcd" . "efgh") ("1234" . "5678")))
 | 
						|
(unsetq abcd)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(defun myfun () (princ "a\n"))
 | 
						|
(exfun 'myfun)
 | 
						|
(unsetq myfun)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(defun myfun () (princ "a\n"))
 | 
						|
(funcall 'myfun)
 | 
						|
(funcall 'myfun 'aaaaa)
 | 
						|
(unsetq myfun)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(defun myfun (o) (princ o "a\n"))
 | 
						|
(funcall 'myfun)
 | 
						|
(funcall 'myfun 'aaaaa)
 | 
						|
(unsetq myfun)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(defun myfun (o p) (princ o p "\n"))
 | 
						|
(funcall 'myfun)
 | 
						|
(funcall 'myfun 'aaaaa)
 | 
						|
(funcall 'myfun 'aaaaa 'bbbbb)
 | 
						|
(unsetq myfun)
 | 
						|
(&check-memory)
 | 
						|
 | 
						|
(defun printnum (from to) (while (<= from to) (princ " " from) (setq from (+ from 1))))
 | 
						|
(princ "Numbers 1-10:") (printnum 1 10) (princ "\n")
 | 
						|
(unsetq printnum)
 | 
						|
 | 
						|
;
 | 
						|
; game over
 | 
						|
;
 | 
						|
 | 
						|
(princ "*********************\n")
 | 
						|
(princ "OK, all tests passed!\n")
 | 
						|
(princ "*********************\n")
 | 
						|
(&stat-memory)
 |