blob: e210ecbf6e253072ba38fc56139ca571694cb5b0 (
plain)
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
|
(in-package #:rva-tests)
(defmacro read-this (str &body body)
`(let ((*standard-input* (make-string-input-stream ,str)))
,@body))
(def-suite lex-tests
:description "Test functions exported from the lexer."
:in all-tests)
(in-suite lex-tests)
(test read-token-reads-eof
(read-this ""
(is (not (lex:read-token)))))
(test read-token-reads-left-paren
(read-this "("
(is (eq (lex:read-token) 'lex::left-paren))))
(test read-token-reads-right-paren
(read-this ")"
(is (eq (lex:read-token) 'lex::right-paren))))
(test read-token-ignores-space
(read-this " ("
(is (eq (lex:read-token) 'lex::left-paren))))
(test read-token-ignores-tab
(read-this " ("
(is (eq (lex:read-token) 'lex::left-paren))))
(test read-token-ignores-newline
(read-this "
("
(is (eq (lex:read-token) 'lex::left-paren))))
(test read-token-ignores-comment
(read-this "; this is a comment
("
(is (eq (lex:read-token) 'lex::left-paren))))
(test read-token-ignores-comment-eof
(read-this ";"
(is (not (lex:read-token)))))
|