File: qa-setsig

package info (click to toggle)
newlisp 10.7.5-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 6,248 kB
  • sloc: ansic: 33,280; lisp: 4,181; sh: 609; makefile: 215
file content (63 lines) | stat: -rwxr-xr-x 1,236 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/env newlisp
#
# check out customized signal handlers
#
# USAGE: qa-setsig <low-bound> <high-bound>
#
# example: qa-setsig 1 8
#
# checks all signals between 1 and 8
#
# run without arguments for testing 1-8, 10-16
#
# USAGE: qa-setsig
#

(println)
(println "Testing signals")

(when (find ostype '("Windows"))
	(println "Cannot run qa-signal on this platform because uses 'fork'")
	(exit))

(set 'low (int (main-args 2)))
(set 'high (int (main-args 3)))
(set 'pid (sys-info -3))

(if low
	(println "low=" low " hight=" high " pid=" pid))

(define (alarm sig)
	(if (= sig high) (set 'done true)) 
	(print "sig-" sig " ")
	(push sig result-list -1)
)

(if (and low high) 
	(set 'sig-list (sequence low high))
	(set 'sig-list (append (sequence 1 8) (sequence 10 16))))

(set 'high (last sig-list))

(dolist (s sig-list) (signal s alarm))

(fork (begin
		(dolist (s sig-list)
			(sleep 200)
			(destroy pid (int s)))
		(sleep 200)
;		(destroy pid 9)
))

(println)
(while (not done)  (print ".") (sleep 100))
(println)
(println "sent: " sig-list)
(println "received: " result-list)
(println)
(if (= result-list sig-list)
	(println ">>>>> Signal testing SUCCESSFUL")
	(println ">>>>> PROBLEM in signal TESTING"))

(println)
(exit)