Browse code
fix(ci): add tests, fix test-op
Edward Langley authored on 28/09/2022 06:08:46
Showing 3 changed files
Showing 3 changed files
... | ... |
@@ -48,10 +48,11 @@ jobs: |
48 | 48 |
- name: run tests |
49 | 49 |
run: | |
50 | 50 |
cd "$GITHUB_WORKSPACE" |
51 |
- sbcl --load "$HOME/quicklisp/setup.lisp" \ |
|
51 |
+ sbcl --disable-debugger --no-userinit \ |
|
52 |
+ --load "$HOME/quicklisp/setup.lisp" \ |
|
52 | 53 |
--eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \ |
53 | 54 |
--eval "(ql:quickload :data-lens/test)" \ |
54 |
- --eval "(asdf:test-system :data-lens/test)" \ |
|
55 |
+ --eval "(handler-case (asdf:test-system :data-lens/test) (error () (uiop:quit 42)))" \ |
|
55 | 56 |
--eval "(ql:quickload :data-lens/transducers/test)" \ |
56 |
- --eval "(asdf:test-system :data-lens/transducers/test)" \ |
|
57 |
+ --eval "(handler-case (asdf:test-system :data-lens/transducers/test) (error () (uiop:quit 43)))" \ |
|
57 | 58 |
--quit |
... | ... |
@@ -22,7 +22,9 @@ |
22 | 22 |
:depends-on (:data-lens |
23 | 23 |
:fiveam) |
24 | 24 |
:serial t |
25 |
- :perform (test-op (o c) (symbol-call :fiveam '#:run! :data-lens.lens)) |
|
25 |
+ :perform (test-op (o c) |
|
26 |
+ (unless (symbol-call :fiveam '#:run! :data-lens.lens) |
|
27 |
+ (error "some tests failed"))) |
|
26 | 28 |
:components ((:module "t" |
27 | 29 |
:components ((:file "lens"))))) |
28 | 30 |
|
... | ... |
@@ -49,6 +51,6 @@ |
49 | 51 |
:fiveam) |
50 | 52 |
:serial t |
51 | 53 |
:perform (test-op (o c) (unless (symbol-call :fiveam '#:run! :data-lens.transducers) |
52 |
- (quit 42))) |
|
54 |
+ (error "some tests failed"))) |
|
53 | 55 |
:components ((:module "t" |
54 | 56 |
:components ((:file "transducers"))))) |
55 | 57 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,58 @@ |
1 |
+(defpackage :data-lens.t.lens |
|
2 |
+ (:use :cl ) |
|
3 |
+ (:export )) |
|
4 |
+(in-package :data-lens.t.lens) |
|
5 |
+ |
|
6 |
+(5am:def-suite :data-lens.lens) |
|
7 |
+(5am:in-suite :data-lens.lens) |
|
8 |
+ |
|
9 |
+(5am:def-test == (:suite :data-lens.lens) |
|
10 |
+ (5am:is (equal t |
|
11 |
+ (funcall (data-lens:== 1) |
|
12 |
+ 1))) |
|
13 |
+ (5am:is (equal nil |
|
14 |
+ (funcall (data-lens:== (list "1")) |
|
15 |
+ (list "1")))) |
|
16 |
+ (5am:is (equal nil |
|
17 |
+ (funcall (data-lens:== (list "1") :test #'equal) |
|
18 |
+ (list "1"))))) |
|
19 |
+ |
|
20 |
+(5am:def-test functionalize (:suite :data-lens.lens) |
|
21 |
+ (5am:is (equal 2 |
|
22 |
+ (funcall (data-lens:functionalize #'1+) 1))) |
|
23 |
+ (5am:is (equal 0 |
|
24 |
+ (funcall (data-lens:functionalize '1-) 1))) |
|
25 |
+ (5am:is (equal 3 |
|
26 |
+ (funcall (data-lens:functionalize #(0 3)) 1))) |
|
27 |
+ (5am:is (equal 8 |
|
28 |
+ (funcall (data-lens:functionalize |
|
29 |
+ (alexandria:plist-hash-table '(1 8 2 4))) |
|
30 |
+ 1)))) |
|
31 |
+ |
|
32 |
+(5am:def-test on (:suite :data-lens.lens :depends-on (and functionalize)) |
|
33 |
+ (5am:is (equal 2 |
|
34 |
+ (funcall (data-lens:on '1+ 'car) |
|
35 |
+ '(1 2)))) |
|
36 |
+ (5am:is (equal 5 |
|
37 |
+ (funcall (data-lens:on '+ 'car) |
|
38 |
+ '(1 2) |
|
39 |
+ '(4 5)))) |
|
40 |
+ (5am:is (equal 13 |
|
41 |
+ (funcall (data-lens:on '+ 'car) |
|
42 |
+ '(1 2) |
|
43 |
+ '(4 5) |
|
44 |
+ '(8 9))))) |
|
45 |
+ |
|
46 |
+(5am:def-test over (:suite :data-lens.lens :depends-on (and functionalize)) |
|
47 |
+ (5am:is (equal '(1 2 3) |
|
48 |
+ (funcall (data-lens:over '1+) |
|
49 |
+ '(0 1 2)))) |
|
50 |
+ (5am:is (equal '(1 2 3) |
|
51 |
+ (funcall (data-lens:over '1+) |
|
52 |
+ #(0 1 2)))) |
|
53 |
+ (5am:is (equalp #(1 2 3) |
|
54 |
+ (funcall (data-lens:over '1+ :result-type 'vector) |
|
55 |
+ '(0 1 2)))) |
|
56 |
+ (5am:is (equalp #(1 2 3) |
|
57 |
+ (funcall (data-lens:over '1+ :result-type 'vector) |
|
58 |
+ #(0 1 2))))) |