aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorAndrea Corallo2019-07-08 07:56:37 +0200
committerAndrea Corallo2020-01-01 11:33:50 +0100
commit8107fc6d0ce15f7a3da13df9eb74d63ab00167a7 (patch)
tree8be9115668aa25305bbebdef08589da8da32cd1d /test/src
parent02bd9340e2d81dcdc991c4cc47888b2404e56110 (diff)
downloademacs-8107fc6d0ce15f7a3da13df9eb74d63ab00167a7.tar.gz
emacs-8107fc6d0ce15f7a3da13df9eb74d63ab00167a7.zip
add SSA
Diffstat (limited to 'test/src')
-rw-r--r--test/src/comp-tests.el135
1 files changed, 47 insertions, 88 deletions
diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el
index b6a8904347f..421f77008a4 100644
--- a/test/src/comp-tests.el
+++ b/test/src/comp-tests.el
@@ -31,13 +31,16 @@
31 31
32(defvar comp-tests-var1 3) 32(defvar comp-tests-var1 3)
33 33
34(defun comp-test-compile (f)
35 ;; (byte-compile f)
36 (native-compile f))
37
34(ert-deftest comp-tests-varref () 38(ert-deftest comp-tests-varref ()
35 "Testing varref." 39 "Testing varref."
36 (defun comp-tests-varref-f () 40 (defun comp-tests-varref-f ()
37 comp-tests-var1) 41 comp-tests-var1)
38 42
39 (byte-compile #'comp-tests-varref-f) 43 (comp-test-compile #'comp-tests-varref-f)
40 (native-compile #'comp-tests-varref-f)
41 44
42 (should (= (comp-tests-varref-f) 3))) 45 (should (= (comp-tests-varref-f) 3)))
43 46
@@ -58,16 +61,11 @@
58 ;; Bcdr_safe 61 ;; Bcdr_safe
59 (cdr-safe x)) 62 (cdr-safe x))
60 63
61 (byte-compile #'comp-tests-list-f) 64 (comp-test-compile #'comp-tests-list-f)
62 (native-compile #'comp-tests-list-f) 65 (comp-test-compile #'comp-tests-car-f)
63 (byte-compile #'comp-tests-car-f) 66 (comp-test-compile #'comp-tests-cdr-f)
64 (native-compile #'comp-tests-car-f) 67 (comp-test-compile #'comp-tests-car-safe-f)
65 (byte-compile #'comp-tests-cdr-f) 68 (comp-test-compile #'comp-tests-cdr-safe-f)
66 (native-compile #'comp-tests-cdr-f)
67 (byte-compile #'comp-tests-car-safe-f)
68 (native-compile #'comp-tests-car-safe-f)
69 (byte-compile #'comp-tests-cdr-safe-f)
70 (native-compile #'comp-tests-cdr-safe-f)
71 69
72 (should (equal (comp-tests-list-f) '(1 2 3))) 70 (should (equal (comp-tests-list-f) '(1 2 3)))
73 (should (= (comp-tests-car-f '(1 . 2)) 1)) 71 (should (= (comp-tests-car-f '(1 . 2)) 1))
@@ -91,13 +89,11 @@
91 "Testing cons car cdr." 89 "Testing cons car cdr."
92 (defun comp-tests-cons-car-f () 90 (defun comp-tests-cons-car-f ()
93 (car (cons 1 2))) 91 (car (cons 1 2)))
94 (byte-compile #'comp-tests-cons-car-f) 92 (comp-test-compile #'comp-tests-cons-car-f)
95 (native-compile #'comp-tests-cons-car-f)
96 93
97 (defun comp-tests-cons-cdr-f (x) 94 (defun comp-tests-cons-cdr-f (x)
98 (cdr (cons 'foo x))) 95 (cdr (cons 'foo x)))
99 (byte-compile #'comp-tests-cons-cdr-f) 96 (comp-test-compile #'comp-tests-cons-cdr-f)
100 (native-compile #'comp-tests-cons-cdr-f)
101 97
102 (should (= (comp-tests-cons-car-f) 1)) 98 (should (= (comp-tests-cons-car-f) 1))
103 (should (= (comp-tests-cons-cdr-f 3) 3))) 99 (should (= (comp-tests-cons-cdr-f 3) 3)))
@@ -106,8 +102,7 @@
106 "Testing varset." 102 "Testing varset."
107 (defun comp-tests-varset-f () 103 (defun comp-tests-varset-f ()
108 (setq comp-tests-var1 55)) 104 (setq comp-tests-var1 55))
109 (byte-compile #'comp-tests-varset-f) 105 (comp-test-compile #'comp-tests-varset-f)
110 (native-compile #'comp-tests-varset-f)
111 (comp-tests-varset-f) 106 (comp-tests-varset-f)
112 107
113 (should (= comp-tests-var1 55))) 108 (should (= comp-tests-var1 55)))
@@ -116,8 +111,7 @@
116 "Testing length." 111 "Testing length."
117 (defun comp-tests-length-f () 112 (defun comp-tests-length-f ()
118 (length '(1 2 3))) 113 (length '(1 2 3)))
119 (byte-compile #'comp-tests-length-f) 114 (comp-test-compile #'comp-tests-length-f)
120 (native-compile #'comp-tests-length-f)
121 115
122 (should (= (comp-tests-length-f) 3))) 116 (should (= (comp-tests-length-f) 3)))
123 117
@@ -127,8 +121,7 @@
127 (let ((vec [1 2 3])) 121 (let ((vec [1 2 3]))
128 (aset vec 2 100) 122 (aset vec 2 100)
129 (aref vec 2))) 123 (aref vec 2)))
130 (byte-compile #'comp-tests-aref-aset-f) 124 (comp-test-compile #'comp-tests-aref-aset-f)
131 (native-compile #'comp-tests-aref-aset-f)
132 125
133 (should (= (comp-tests-aref-aset-f) 100))) 126 (should (= (comp-tests-aref-aset-f) 100)))
134 127
@@ -137,8 +130,7 @@
137 (defvar comp-tests-var2 3) 130 (defvar comp-tests-var2 3)
138 (defun comp-tests-symbol-value-f () 131 (defun comp-tests-symbol-value-f ()
139 (symbol-value 'comp-tests-var2)) 132 (symbol-value 'comp-tests-var2))
140 (byte-compile #'comp-tests-symbol-value-f) 133 (comp-test-compile #'comp-tests-symbol-value-f)
141 (native-compile #'comp-tests-symbol-value-f)
142 134
143 (should (= (comp-tests-symbol-value-f) 3))) 135 (should (= (comp-tests-symbol-value-f) 3)))
144 136
@@ -147,8 +139,7 @@
147 (defun comp-tests-concat-f (x) 139 (defun comp-tests-concat-f (x)
148 (concat "a" "b" "c" "d" 140 (concat "a" "b" "c" "d"
149 (concat "a" "b" "c" (concat "a" "b" (concat "foo" x))))) 141 (concat "a" "b" "c" (concat "a" "b" (concat "foo" x)))))
150 (byte-compile #'comp-tests-concat-f) 142 (comp-test-compile #'comp-tests-concat-f)
151 (native-compile #'comp-tests-concat-f)
152 143
153 (should (string= (comp-tests-concat-f "bar") "abcdabcabfoobar"))) 144 (should (string= (comp-tests-concat-f "bar") "abcdabcabfoobar")))
154 145
@@ -159,15 +150,13 @@
159 (defun comp-tests-ffuncall-caller-f () 150 (defun comp-tests-ffuncall-caller-f ()
160 (comp-tests-ffuncall-callee-f 1 2 3)) 151 (comp-tests-ffuncall-callee-f 1 2 3))
161 152
162 (byte-compile #'comp-tests-ffuncall-caller-f) 153 (comp-test-compile #'comp-tests-ffuncall-caller-f)
163 (native-compile #'comp-tests-ffuncall-caller-f)
164 154
165 (should (equal (comp-tests-ffuncall-caller-f) '(1 2 3))) 155 (should (equal (comp-tests-ffuncall-caller-f) '(1 2 3)))
166 156
167 (defun comp-tests-ffuncall-callee-optional-f (a b &optional c d) 157 (defun comp-tests-ffuncall-callee-optional-f (a b &optional c d)
168 (list a b c d)) 158 (list a b c d))
169 (byte-compile #'comp-tests-ffuncall-callee-optional-f) 159 (comp-test-compile #'comp-tests-ffuncall-callee-optional-f)
170 (native-compile #'comp-tests-ffuncall-callee-optional-f)
171 160
172 (should (equal (comp-tests-ffuncall-callee-optional-f 1 2 3 4) '(1 2 3 4))) 161 (should (equal (comp-tests-ffuncall-callee-optional-f 1 2 3 4) '(1 2 3 4)))
173 (should (equal (comp-tests-ffuncall-callee-optional-f 1 2 3) '(1 2 3 nil))) 162 (should (equal (comp-tests-ffuncall-callee-optional-f 1 2 3) '(1 2 3 nil)))
@@ -175,8 +164,7 @@
175 164
176 (defun comp-tests-ffuncall-callee-rest-f (a b &rest c) 165 (defun comp-tests-ffuncall-callee-rest-f (a b &rest c)
177 (list a b c)) 166 (list a b c))
178 (byte-compile #'comp-tests-ffuncall-callee-rest-f) 167 (comp-test-compile #'comp-tests-ffuncall-callee-rest-f)
179 (native-compile #'comp-tests-ffuncall-callee-rest-f)
180 168
181 (should (equal (comp-tests-ffuncall-callee-rest-f 1 2) '(1 2 nil))) 169 (should (equal (comp-tests-ffuncall-callee-rest-f 1 2) '(1 2 nil)))
182 (should (equal (comp-tests-ffuncall-callee-rest-f 1 2 3) '(1 2 (3)))) 170 (should (equal (comp-tests-ffuncall-callee-rest-f 1 2 3) '(1 2 (3))))
@@ -186,8 +174,7 @@
186 "Call a primitive with no dedicate op." 174 "Call a primitive with no dedicate op."
187 (make-vector 1 nil)) 175 (make-vector 1 nil))
188 176
189 (byte-compile #'comp-tests-ffuncall-native-f) 177 (comp-test-compile #'comp-tests-ffuncall-native-f)
190 (native-compile #'comp-tests-ffuncall-native-f)
191 178
192 (should (equal (comp-tests-ffuncall-native-f) [nil])) 179 (should (equal (comp-tests-ffuncall-native-f) [nil]))
193 180
@@ -195,16 +182,14 @@
195 "Call a primitive with no dedicate op with &rest." 182 "Call a primitive with no dedicate op with &rest."
196 (vector 1 2 3)) 183 (vector 1 2 3))
197 184
198 (byte-compile #'comp-tests-ffuncall-native-rest-f) 185 (comp-test-compile #'comp-tests-ffuncall-native-rest-f)
199 (native-compile #'comp-tests-ffuncall-native-rest-f)
200 186
201 (should (equal (comp-tests-ffuncall-native-rest-f) [1 2 3])) 187 (should (equal (comp-tests-ffuncall-native-rest-f) [1 2 3]))
202 188
203 (defun comp-tests-ffuncall-apply-many-f (x) 189 (defun comp-tests-ffuncall-apply-many-f (x)
204 (apply #'list x)) 190 (apply #'list x))
205 191
206 (byte-compile #'comp-tests-ffuncall-apply-many-f) 192 (comp-test-compile #'comp-tests-ffuncall-apply-many-f)
207 (native-compile #'comp-tests-ffuncall-apply-many-f)
208 193
209 (should (equal (comp-tests-ffuncall-apply-many-f '(1 2 3)) '(1 2 3))) 194 (should (equal (comp-tests-ffuncall-apply-many-f '(1 2 3)) '(1 2 3)))
210 195
@@ -213,8 +198,7 @@
213 (1+ x)))) 198 (1+ x))))
214 (funcall fun x))) 199 (funcall fun x)))
215 200
216 (byte-compile #'comp-tests-ffuncall-lambda-f) 201 (comp-test-compile #'comp-tests-ffuncall-lambda-f)
217 (native-compile #'comp-tests-ffuncall-lambda-f)
218 202
219 (should (= (comp-tests-ffuncall-lambda-f 1) 2))) 203 (should (= (comp-tests-ffuncall-lambda-f 1) 2)))
220 204
@@ -226,8 +210,6 @@
226 ('y 'b) 210 ('y 'b)
227 (_ 'c))) 211 (_ 'c)))
228 212
229 (byte-compile #'comp-tests-jump-table-1-f)
230 (byte-compile #'comp-tests-jump-table-1-f)
231 213
232 (should (eq (comp-tests-jump-table-1-f 'x) 'a)) 214 (should (eq (comp-tests-jump-table-1-f 'x) 'a))
233 (should (eq (comp-tests-jump-table-1-f 'y) 'b)) 215 (should (eq (comp-tests-jump-table-1-f 'y) 'b))
@@ -242,10 +224,8 @@
242 ;; Generate goto-if-nil-else-pop 224 ;; Generate goto-if-nil-else-pop
243 (when x 225 (when x
244 1340)) 226 1340))
245 (byte-compile #'comp-tests-conditionals-1-f) 227 (comp-test-compile #'comp-tests-conditionals-1-f)
246 (byte-compile #'comp-tests-conditionals-2-f) 228 (comp-test-compile #'comp-tests-conditionals-2-f)
247 (native-compile #'comp-tests-conditionals-1-f)
248 (native-compile #'comp-tests-conditionals-2-f)
249 229
250 (should (= (comp-tests-conditionals-1-f t) 1)) 230 (should (= (comp-tests-conditionals-1-f t) 1))
251 (should (= (comp-tests-conditionals-1-f nil) 2)) 231 (should (= (comp-tests-conditionals-1-f nil) 2))
@@ -264,12 +244,9 @@
264 ;; Bnegate 244 ;; Bnegate
265 (- x)) 245 (- x))
266 246
267 (byte-compile #'comp-tests-fixnum-1-minus-f) 247 (comp-test-compile #'comp-tests-fixnum-1-minus-f)
268 (byte-compile #'comp-tests-fixnum-1-plus-f) 248 (comp-test-compile #'comp-tests-fixnum-1-plus-f)
269 (byte-compile #'comp-tests-fixnum-minus-f) 249 (comp-test-compile #'comp-tests-fixnum-minus-f)
270 (native-compile #'comp-tests-fixnum-1-minus-f)
271 (native-compile #'comp-tests-fixnum-1-plus-f)
272 (native-compile #'comp-tests-fixnum-minus-f)
273 250
274 (should (= (comp-tests-fixnum-1-minus-f 10) 9)) 251 (should (= (comp-tests-fixnum-1-minus-f 10) 9))
275 (should (= (comp-tests-fixnum-1-minus-f most-negative-fixnum) 252 (should (= (comp-tests-fixnum-1-minus-f most-negative-fixnum)
@@ -311,17 +288,12 @@
311 ;; Bgeq 288 ;; Bgeq
312 (>= x y)) 289 (>= x y))
313 290
314 (byte-compile #'comp-tests-eqlsign-f)
315 (byte-compile #'comp-tests-gtr-f)
316 (byte-compile #'comp-tests-lss-f)
317 (byte-compile #'comp-tests-les-f)
318 (byte-compile #'comp-tests-geq-f)
319 291
320 (native-compile #'comp-tests-eqlsign-f) 292 (comp-test-compile #'comp-tests-eqlsign-f)
321 (native-compile #'comp-tests-gtr-f) 293 (comp-test-compile #'comp-tests-gtr-f)
322 (native-compile #'comp-tests-lss-f) 294 (comp-test-compile #'comp-tests-lss-f)
323 (native-compile #'comp-tests-les-f) 295 (comp-test-compile #'comp-tests-les-f)
324 (native-compile #'comp-tests-geq-f) 296 (comp-test-compile #'comp-tests-geq-f)
325 297
326 (should (eq (comp-tests-eqlsign-f 4 3) nil)) 298 (should (eq (comp-tests-eqlsign-f 4 3) nil))
327 (should (eq (comp-tests-eqlsign-f 3 3) t)) 299 (should (eq (comp-tests-eqlsign-f 3 3) t))
@@ -348,10 +320,8 @@
348 (setcdr x y) 320 (setcdr x y)
349 x) 321 x)
350 322
351 (byte-compile #'comp-tests-setcar-f) 323 (comp-test-compile #'comp-tests-setcar-f)
352 (byte-compile #'comp-tests-setcdr-f) 324 (comp-test-compile #'comp-tests-setcdr-f)
353 (native-compile #'comp-tests-setcar-f)
354 (native-compile #'comp-tests-setcdr-f)
355 325
356 (should (equal (comp-tests-setcar-f '(10 . 10) 3) '(3 . 10))) 326 (should (equal (comp-tests-setcar-f '(10 . 10) 3) '(3 . 10)))
357 (should (equal (comp-tests-setcdr-f '(10 . 10) 3) '(10 . 3))) 327 (should (equal (comp-tests-setcdr-f '(10 . 10) 3) '(10 . 3)))
@@ -380,8 +350,7 @@
380 (setq i (1- i))) 350 (setq i (1- i)))
381 list)) 351 list))
382 352
383 (byte-compile #'comp-bubble-sort-f) 353 (comp-test-compile #'comp-bubble-sort-f)
384 (native-compile #'comp-bubble-sort-f)
385 354
386 (let* ((list1 (mapcar 'random (make-list 1000 most-positive-fixnum))) 355 (let* ((list1 (mapcar 'random (make-list 1000 most-positive-fixnum)))
387 (list2 (copy-sequence list1))) 356 (list2 (copy-sequence list1)))
@@ -397,10 +366,8 @@
397 ;; Bsetcar 366 ;; Bsetcar
398 (setcar x 3)) 367 (setcar x 3))
399 368
400 (byte-compile #'comp-tests-consp-f) 369 (comp-test-compile #'comp-tests-consp-f)
401 (native-compile #'comp-tests-consp-f) 370 (comp-test-compile #'comp-tests-car-f)
402 (byte-compile #'comp-tests-car-f)
403 (native-compile #'comp-tests-car-f)
404 371
405 (should (eq (comp-tests-consp-f '(1)) t)) 372 (should (eq (comp-tests-consp-f '(1)) t))
406 (should (eq (comp-tests-consp-f 1) nil)) 373 (should (eq (comp-tests-consp-f 1) nil))
@@ -417,10 +384,8 @@
417 ;; Bnumberp 384 ;; Bnumberp
418 (numberp x)) 385 (numberp x))
419 386
420 (byte-compile #'comp-tests-integerp-f) 387 (comp-test-compile #'comp-tests-integerp-f)
421 (native-compile #'comp-tests-integerp-f) 388 (comp-test-compile #'comp-tests-numberp-f)
422 (byte-compile #'comp-tests-numberp-f)
423 (native-compile #'comp-tests-numberp-f)
424 389
425 (should (eq (comp-tests-integerp-f 1) t)) 390 (should (eq (comp-tests-integerp-f 1) t))
426 (should (eq (comp-tests-integerp-f '(1)) nil)) 391 (should (eq (comp-tests-integerp-f '(1)) nil))
@@ -443,10 +408,8 @@
443 ;; Binsert 408 ;; Binsert
444 (insert a b c d)) 409 (insert a b c d))
445 410
446 (byte-compile #'comp-tests-discardn-f) 411 (comp-test-compile #'comp-tests-discardn-f)
447 (native-compile #'comp-tests-discardn-f) 412 (comp-test-compile #'comp-tests-insertn-f)
448 (byte-compile #'comp-tests-insertn-f)
449 (native-compile #'comp-tests-insertn-f)
450 413
451 (should (= (comp-tests-discardn-f 10) 2)) 414 (should (= (comp-tests-discardn-f 10) 2))
452 415
@@ -493,14 +456,10 @@
493 (defun comp-tests-throw-f (x) 456 (defun comp-tests-throw-f (x)
494 (throw 'foo x)) 457 (throw 'foo x))
495 458
496 (byte-compile #'comp-tests-condition-case-0-f) 459 (comp-test-compile #'comp-tests-condition-case-0-f)
497 (native-compile #'comp-tests-condition-case-0-f) 460 (comp-test-compile #'comp-tests-condition-case-1-f)
498 (byte-compile #'comp-tests-condition-case-1-f) 461 (comp-test-compile #'comp-tests-catch-f)
499 (native-compile #'comp-tests-condition-case-1-f) 462 (comp-test-compile #'comp-tests-throw-f)
500 (byte-compile #'comp-tests-catch-f)
501 (native-compile #'comp-tests-catch-f)
502 (byte-compile #'comp-tests-throw-f)
503 (native-compile #'comp-tests-throw-f)
504 463
505 (should (string= (comp-tests-condition-case-0-f) 464 (should (string= (comp-tests-condition-case-0-f)
506 "arith-error Arithmetic error catched")) 465 "arith-error Arithmetic error catched"))