forked from rtoy/ansi-cl-tests
-
Notifications
You must be signed in to change notification settings - Fork 1
/
apropos.lsp
101 lines (87 loc) · 3.02 KB
/
apropos.lsp
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
;-*- Mode: Lisp -*-
;;;; Author: Paul Dietz
;;;; Created: Sun Dec 12 16:17:47 2004
;;;; Contains: Tests for APROPOS
(in-package :cl-test)
(deftest apropos.1
(loop for n from 10
for x = (coerce (loop repeat n collect (random-from-seq +standard-chars+)) 'string)
unless (apropos-list x)
return (with-output-to-string (*standard-output*)
(assert (null (multiple-value-list (apropos x))))))
"")
(deftest apropos.2
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos "CAR")))))))
(notnot (search "CAR" s :test #'string-equal)))
t)
(deftest apropos.3
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos "CAR" (find-package "CL"))))))))
(notnot (search "CAR" s :test #'string-equal)))
t)
(deftest apropos.4
(let ((result nil))
(do-special-strings
(s "CAR" t)
(setq result (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos s))))))
(assert (search "CAR" result :test #'string-equal))))
t)
(deftest apropos.5
(let ((result nil)
(pkg (find-package "COMMON-LISP")))
(do-special-strings
(s "APROPOS" t)
(setq result (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos s pkg))))))
(assert (search "APROPOS" result :test #'string-equal))))
t)
(deftest apropos.6
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos "CAR" "CL")))))))
(notnot (search "CAR" s :test #'string-equal)))
t)
(deftest apropos.7
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos "CAR" :|CL|)))))))
(notnot (search "CAR" s :test #'string-equal)))
t)
(deftest apropos.8
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list (apropos "CAR" nil)))))))
(notnot (search "CAR" s :test #'string-equal)))
t)
(deftest apropos.9
(macrolet
((%m (z) z))
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list
(apropos (expand-in-current-env (%m "CAR")))))))))
(notnot (search "CAR" s :test #'string-equal))))
t)
(deftest apropos.10
(macrolet
((%m (z) z))
(let ((s (with-output-to-string
(*standard-output*)
(assert (null (multiple-value-list
(apropos "CAR"
(expand-in-current-env (%m nil)))))))))
(notnot (search "CAR" s :test #'string-equal))))
t)
;;; Error tests
(deftest apropos.error.1
(signals-error (apropos) program-error)
t)
(deftest apropos.error.2
(signals-error (apropos "SJLJALKSJDKLJASKLDJKLAJDLKJA" (find-package "CL") nil) program-error)
t)