Skip to content

Commit 39e6c9e

Browse files
committed
eus64-check ; change to make test returns 0 or 1
1 parent 56a0c56 commit 39e6c9e

File tree

4 files changed

+219
-124
lines changed

4 files changed

+219
-124
lines changed

contrib/eus64-check/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
all : test_foreign.so
2+
all : test
33

44
MARCH=$(shell uname -m)
55

@@ -26,6 +26,9 @@ else
2626
endif
2727
endif
2828

29+
test: test_foreign.so
30+
irteusgl eus64-test.l
31+
2932
clean :
3033
\rm -f *.o *.so
3134

contrib/eus64-check/eus64-module.l

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
(unless (boundp '*testmod*)
2+
(setq *testmod* (load-foreign "test_foreign.so"))
3+
(defforeign float-test *testmod* "float_test" (:integer :float32 :float32 :float32 :float32) :integer)
4+
(defforeign float2-test *testmod* "float_test" (:integer :double :double :double :double) :integer)
5+
(defforeign float3-test *testmod* "float_test" () :integer)
6+
(defforeign double-test *testmod* "double_test" (:integer :double :double :double :double) :integer)
7+
(defforeign double2-test *testmod* "double_test" (:integer :float32 :float32 :float32 :float32) :integer)
8+
(defforeign double3-test *testmod* "double_test" () :integer)
9+
(defforeign iv-test *testmod* "iv_test" () :integer)
10+
(defforeign lv-test *testmod* "lv_test" () :integer)
11+
(defforeign fv-test *testmod* "fv_test" () :integer)
12+
(defforeign dv-test *testmod* "dv_test" () :integer)
13+
(defforeign str-test *testmod* "str_test" () :integer)
14+
(defforeign int-test *testmod* "int_test" () :integer)
15+
(defforeign ret-float *testmod* "ret_float" () :float32)
16+
(defforeign ret-double *testmod* "ret_double" () :float)
17+
(defforeign ret-long *testmod* "ret_long" () :integer)
18+
19+
(defforeign set-ifunc *testmod* "set_ifunc" (:integer) :integer)
20+
(defforeign set-ffunc *testmod* "set_ffunc" (:integer) :integer)
21+
22+
(defforeign test-testd *testmod* "test_testd" (:integer :integer :integer
23+
:integer :integer :integer
24+
:double :double :double :double
25+
:double :double :double :double
26+
:double :double
27+
:integer :integer) :float)
28+
(defforeign call-ifunc *testmod* "call_ifunc" () :integer)
29+
(defforeign call-ffunc *testmod* "call_ffunc" () :float)
30+
31+
(defforeign get-size-pointer *testmod* "get_size_of_pointer" () :integer)
32+
(defforeign get-size-float32 *testmod* "get_size_of_float32" () :integer)
33+
(defforeign get-size-double *testmod* "get_size_of_double" () :integer)
34+
(defforeign get-size-long *testmod* "get_size_of_long" () :integer)
35+
(defforeign get-size-int *testmod* "get_size_of_int" () :integer)
36+
)
37+
38+

contrib/eus64-check/eus64-test.l

Lines changed: 176 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,156 +1,206 @@
1-
(unless (boundp '*testmod*)
2-
(setq *testmod* (load-foreign "test_foreign.so"))
3-
(defforeign float-test *testmod* "float_test" (:integer :float32 :float32 :float32 :float32) :integer)
4-
(defforeign float2-test *testmod* "float_test" (:integer :double :double :double :double) :integer)
5-
(defforeign float3-test *testmod* "float_test" () :integer)
6-
(defforeign double-test *testmod* "double_test" (:integer :double :double :double :double) :integer)
7-
(defforeign double2-test *testmod* "double_test" (:integer :float32 :float32 :float32 :float32) :integer)
8-
(defforeign double3-test *testmod* "double_test" () :integer)
9-
(defforeign iv-test *testmod* "iv_test" () :integer)
10-
(defforeign lv-test *testmod* "lv_test" () :integer)
11-
(defforeign fv-test *testmod* "fv_test" () :integer)
12-
(defforeign dv-test *testmod* "dv_test" () :integer)
13-
(defforeign str-test *testmod* "str_test" () :integer)
14-
(defforeign int-test *testmod* "int_test" () :integer)
15-
(defforeign ret-float *testmod* "ret_float" () :float32)
16-
(defforeign ret-double *testmod* "ret_double" () :float)
17-
(defforeign ret-long *testmod* "ret_long" () :integer)
1+
(load "eus64-module.l")
2+
(require :unittest "lib/llib/unittest.l")
3+
4+
(init-unit-test)
5+
6+
(deftest test-pointer-size
7+
(format t "~%;;;; pointer size check ;;;;~%")
8+
9+
(format t "pointer size ~D ~D~%"
10+
lisp::sizeof-* (get-size-pointer))
11+
(assert (= lisp::sizeof-* (get-size-pointer)))
1812

19-
(defforeign set-ifunc *testmod* "set_ifunc" (:integer) :integer)
20-
(defforeign set-ffunc *testmod* "set_ffunc" (:integer) :integer)
21-
22-
(defforeign test-testd *testmod* "test_testd" (:integer :integer :integer
23-
:integer :integer :integer
24-
:double :double :double :double
25-
:double :double :double :double
26-
:double :double
27-
:integer :integer) :float)
28-
(defforeign call-ifunc *testmod* "call_ifunc" () :integer)
29-
(defforeign call-ffunc *testmod* "call_ffunc" () :float)
30-
31-
(defforeign get-size-pointer *testmod* "get_size_of_pointer" () :integer)
32-
(defforeign get-size-float32 *testmod* "get_size_of_float32" () :integer)
33-
(defforeign get-size-double *testmod* "get_size_of_double" () :integer)
34-
(defforeign get-size-long *testmod* "get_size_of_long" () :integer)
35-
(defforeign get-size-int *testmod* "get_size_of_int" () :integer)
13+
(format t "double size ~D ~D~%"
14+
lisp::sizeof-double (get-size-double))
15+
(assert (= lisp::sizeof-double (get-size-double)))
16+
17+
(format t "long integer size ~D ~D~%"
18+
(cadr (assoc :long lisp::sizeof-types))
19+
(get-size-long))
20+
(assert (= (cadr (assoc :long lisp::sizeof-types)) (get-size-long)))
21+
22+
(format t "integer size ~D ~D~%"
23+
lisp::sizeof-int (get-size-int))
24+
(assert (= lisp::sizeof-int (get-size-int)))
25+
26+
(format t "float size ~D ~D~%"
27+
lisp::sizeof-float (get-size-float32))
28+
(assert (= lisp::sizeof-float (get-size-float32)))
3629
)
3730

38-
(format t "~%;;;; pointer size check ;;;;~%")
39-
40-
(format t "pointer size ~D ~D~%"
41-
lisp::sizeof-* (get-size-pointer))
42-
(format t "double size ~D ~D~%"
43-
lisp::sizeof-double (get-size-double))
44-
(format t "long integer size ~D ~D~%"
45-
(cadr (assoc :long lisp::sizeof-types))
46-
(get-size-long))
47-
(format t "integer size ~D ~D~%"
48-
lisp::sizeof-int (get-size-int))
49-
(format t "float size ~D ~D~%"
50-
lisp::sizeof-float (get-size-float32))
51-
52-
(format t "~%multiple arguments passing~%")
53-
(format t "expected result~%")
54-
(format t "100 101 102
31+
(deftest test-multiple-arguments-passing
32+
(format t "~%multiple arguments passing~%")
33+
(format t "expected result~%")
34+
(format t "100 101 102
5535
103 104 105
5636
1000.000000 1010.000000 1020.000000 1030.000000
5737
1040.000000 1050.000000 1060.000000 1070.000000
5838
2080.000000 2090.000000
5939
206 207
6040
test-testd = 1.23456
6141
~%")
62-
(format t "exec in eus~%")
63-
(format t "test-testd = ~A~%"
64-
(test-testd 100 101 102
42+
(format t "exec in eus~%")
43+
(format t "test-testd = ~A~%"
44+
(setq ret (test-testd 100 101 102
6545
103 104 105
6646
1000.0 1010.0 1020.0 1030.0
6747
1040.0 1050.0 1060.0 1070.0
6848
2080.0 2090.0
69-
206 207))
70-
71-
(format t "~%~%float-test~%")
72-
(format t "expected result~%")
73-
(format t "0: 1.000000e-01 ..~%")
74-
(format t "0: 2.000000e-01 ..~%")
75-
(format t "0: 3.000000e-01 ..~%")
76-
(format t "0: 4.000000e-01 ..~%")
77-
(format t "~%float-test(success, exec in eus)~%")
78-
(float-test 0 0.1 0.2 0.3 0.4)
79-
(format t "~%float2-test(fail, exec in eus)~%")
80-
(float2-test 0 0.1 0.2 0.3 0.4)
81-
(format t "~%float3-test(depend on architecture, exec in eus)~%")
82-
(float3-test 0 0.1 0.2 0.3 0.4)
83-
84-
(format t "~%~%double-test~%")
85-
(format t "expected result~%")
86-
(format t "1: 1.000000e-01 ..~%")
87-
(format t "1: 2.000000e-01 ..~%")
88-
(format t "1: 3.000000e-01 ..~%")
89-
(format t "1: 4.000000e-01 ..~%")
90-
(format t "~%double-test(success, exec in eus)~%")
91-
(double-test 1 0.1 0.2 0.3 0.4)
92-
(format t "~%double2-test(fail, exec in eus)~%")
93-
(double2-test 1 0.1 0.2 0.3 0.4)
94-
(format t "~%double3-test(depend on architecture, exec in eus)~%")
95-
(double3-test 1 0.1 0.2 0.3 0.4)
96-
97-
(setq iv (integer-vector 0 100 10000 1000000 100000000 10000000000))
98-
#|
99-
(format t "~%iv-test~%")
100-
(format t "expected result~%")
101-
(format t "exec in eus64~%")
102-
(iv-test (length iv) iv)
103-
|#
104-
(format t "~%lv-test~%")
105-
(format t "size = 6
49+
206 207)))
50+
(assert (eps= 1.23456 ret))
51+
52+
;;
53+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (test-testd 100 101 102 103 104 105 1000.000000 1010.000000 1020.000000 1030.000000 1040.000000 1050.000000 1060.000000 1070.000000 2080.000000 2090.000000 206 207)(exit 0))'"))
54+
(assert (string= (read-line f) "100 101 102"))
55+
(assert (string= (read-line f) "103 104 105"))
56+
(assert (string= (read-line f) "1000.000000 1010.000000 1020.000000 1030.000000"))
57+
(assert (string= (read-line f) "1040.000000 1050.000000 1060.000000 1070.000000"))
58+
(assert (string= (read-line f) "2080.000000 2090.000000"))
59+
(assert (string= (read-line f) "206 207"))
60+
)
61+
62+
(deftest test-float-test
63+
(format t "~%~%float-test~%")
64+
(format t "expected result~%")
65+
(format t "0: 1.000000e-01 ..~%")
66+
(format t "0: 2.000000e-01 ..~%")
67+
(format t "0: 3.000000e-01 ..~%")
68+
(format t "0: 4.000000e-01 ..~%")
69+
(format t "~%float-test(success, exec in eus)~%")
70+
(float-test 0 0.1 0.2 0.3 0.4)
71+
(format t "~%float2-test(fail, exec in eus)~%")
72+
(float2-test 0 0.1 0.2 0.3 0.4)
73+
(format t "~%float3-test(depend on architecture, exec in eus)~%")
74+
(float3-test 0 0.1 0.2 0.3 0.4)
75+
76+
;;
77+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (float-test 0 0.1 0.2 0.3 0.4)(exit 0))'"))
78+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.1)) ;; skip first 2 character
79+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.2))
80+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.3))
81+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.4))
82+
)
83+
84+
(deftest test-double-test
85+
(format t "~%~%double-test~%")
86+
(format t "expected result~%")
87+
(format t "1: 1.000000e-01 ..~%")
88+
(format t "1: 2.000000e-01 ..~%")
89+
(format t "1: 3.000000e-01 ..~%")
90+
(format t "1: 4.000000e-01 ..~%")
91+
(format t "~%double-test(success, exec in eus)~%")
92+
(double-test 1 0.1 0.2 0.3 0.4)
93+
(format t "~%double2-test(fail, exec in eus)~%")
94+
(double2-test 1 0.1 0.2 0.3 0.4)
95+
(format t "~%double3-test(depend on architecture, exec in eus)~%")
96+
(double3-test 1 0.1 0.2 0.3 0.4)
97+
98+
;;
99+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (double-test 1 0.1 0.2 0.3 0.4)(exit 0))'"))
100+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.1)) ;; skip first 2 character
101+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.2))
102+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.3))
103+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.4))
104+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (double3-test 1 0.1 0.2 0.3 0.4)(exit 0))'"))
105+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.1)) ;; skip first 2 character
106+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.2))
107+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.3))
108+
(assert (eps= (read-from-string (subseq (read-line f) 2)) 0.4))
109+
)
110+
111+
(deftest test-integer-vector
112+
(setq iv (integer-vector 0 100 10000 1000000 100000000 10000000000))
113+
#|
114+
(format t "~%iv-test~%")
115+
(format t "expected result~%")
116+
(format t "exec in eus64~%")
117+
(iv-test (length iv) iv)
118+
|#
119+
(format t "~%lv-test~%")
120+
(format t "size = 6
106121
0: 0 0
107122
1: 100 64
108123
2: 10000 2710
109124
3: 1000000 F4240
110125
4: 100000000 5F5E100
111126
5: 10000000000 2540BE400~%")
112-
(format t "~%lv-test(exec in eus)~%")
113-
(lv-test (length iv) iv)
127+
(format t "~%lv-test(exec in eus)~%")
128+
(lv-test (length iv) iv)
129+
130+
;;
131+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (setq iv (integer-vector 0 100 10000 1000000 100000000 10000000000))(lv-test (length iv) iv)(exit 0))'"))
132+
(assert (string= (read-line f) "size = 6"))
133+
(assert (string= (read-line f) "0: 0 0"))
134+
(assert (string= (read-line f) "1: 100 64"))
135+
(assert (string= (read-line f) "2: 10000 2710"))
136+
(assert (string= (read-line f) "3: 1000000 F4240"))
137+
(assert (string= (read-line f) "4: 100000000 5F5E100"))
138+
(assert (string= (read-line f) "5: 10000000000 2540BE400"))
139+
)
114140

115-
(setq fv (float-vector 0.1 0.2 0.3 0.5 0.7))
116-
#|
117-
(format t "~%fv-test~%")
118-
(format t "exec in eus64~%")
119-
(fv-test (length fv) fv)
120-
|#
141+
(deftest test-float-vector
142+
(setq fv (float-vector 0.1 0.2 0.3 0.5 0.7))
143+
#|
144+
(format t "~%fv-test~%")
145+
(format t "exec in eus64~%")
146+
(fv-test (length fv) fv)
147+
|#
121148

122-
(format t "~%dv-test~%")
123-
(format t "size = 5
149+
(format t "~%dv-test~%")
150+
(format t "size = 5
124151
0: 1.000000e-01 3FB9999999999998
125152
1: 2.000000e-01 3FC9999999999998
126153
2: 3.000000e-01 3FD3333333333330
127154
3: 5.000000e-01 3FE0000000000000
128155
4: 7.000000e-01 3FE6666666666664~%")
129-
(format t "~%dv-test(exec in eus)~%")
130-
(dv-test (length fv) fv)
131-
132-
133-
(setq str "input : test64 string")
134-
(format t "~%str-test~%")
135-
;;(format t "expected result~%")
136-
(format t "input string : ~S~%" str)
137-
(format t "~%str-test(exec in eus)~%")
138-
(str-test (length str) str)
139-
156+
(format t "~%dv-test(exec in eus)~%")
157+
(dv-test (length fv) fv)
158+
159+
;;
160+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (setq fv (float-vector 0.1 0.2 0.3 0.5 0.7))(dv-test (length fv) fv)(exit 0))'"))
161+
(assert (string= (read-line f) "size = 5"))
162+
(assert (string= (read-line f) "0: 1.000000e-01 3FB9999999999998"))
163+
(assert (string= (read-line f) "1: 2.000000e-01 3FC9999999999998"))
164+
(assert (string= (read-line f) "2: 3.000000e-01 3FD3333333333330"))
165+
(assert (string= (read-line f) "3: 5.000000e-01 3FE0000000000000"))
166+
(assert (string= (read-line f) "4: 7.000000e-01 3FE6666666666664"))
167+
)
140168

141-
(format t "~%return double test~%")
142-
(format t "expected result~%")
143-
(format t " ret-double ~8,8e~%" (+ 0.55555 133.0))
144-
(format t "~%ret-double(exec in eus)~%")
145-
(format t " ret-double ~8,8e~%" (ret-double 0.55555 133.0))
169+
(deftest test-string-test
170+
(setq str "input : test64 string")
171+
(format t "~%str-test~%")
172+
;;(format t "expected result~%")
173+
(format t "input string : ~S~%" str)
174+
(format t "~%str-test(exec in eus)~%")
175+
(str-test (length str) str)
176+
;;
177+
(setq f (piped-fork "irteusgl eus64-module.l '(progn (setq str \"input : test64 string\")(str-test (length str) str)(exit 0))'"))
178+
(assert (string= (read-line f) (format nil "size = ~d" (length str))))
179+
(dotimes (i (length str))
180+
(assert (string= (read-line f) (format nil "~d: ~c ~x" i (elt str i) (elt str i))))
181+
)
182+
)
146183

184+
(deftest test-return-double
185+
(format t "~%return double test~%")
186+
(format t "expected result~%")
187+
(format t " ret-double ~8,8e~%" (+ 0.55555 133.0))
188+
(format t "~%ret-double(exec in eus)~%")
189+
(format t " ret-double ~8,8e~%" (ret-double 0.55555 133.0))
190+
;;
191+
(assert (eps= (ret-double 0.55555 133.0) (+ 0.55555 133.0)))
192+
)
147193

148-
(format t "~%return long test~%")
149-
(format t "expected result~%")
150-
(format t " ret-long ~D~%" (+ 123 645000))
151-
(format t "~%ret-long(exec in eus)~%")
152-
(format t " ret-long ~D~%" (ret-long 123 645000))
194+
(deftest test-return-long
195+
(format t "~%return long test~%")
196+
(format t "expected result~%")
197+
(format t " ret-long ~D~%" (+ 123 645000))
198+
(format t "~%ret-long(exec in eus)~%")
199+
(format t " ret-long ~D~%" (ret-long 123 645000))
153200

201+
(assert (= (ret-long 123 645000) (+ 123 645000)))
202+
)
203+
#|
154204
;; ret-int
155205
;; ret-short
156206
;; ret-char
@@ -193,3 +243,7 @@ test-testd = 1.23456
193243
206 207
194244
return 0.12345~%")
195245
(format t "call-ffunc = ~A~%" (call-ffunc))
246+
|#
247+
248+
(run-all-tests)
249+
(exit)

0 commit comments

Comments
 (0)