blob: 4cd89fa78d3b57a291cdef10435e9082e3196d6b (
about) (
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
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
102
103
104
105
106
107
108
109
110
|
;; Copyright (C) 2014 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;
;; This file is a part of libguile-ssh.
;;
;; libguile-ssh is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.
;;
;; libguile-ssh is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with libguile-ssh. If not, see <http://www.gnu.org/licenses/>.
(use-modules (srfi srfi-64)
(ssh session))
(test-begin "session")
(test-assert "%make-session"
(%make-session))
(test-assert "equal?, check that a session equals to itself"
(let ((session (%make-session)))
(equal? session session)))
(test-assert "equal?, check that two sessions aren't equal"
(let ((session1 (%make-session))
(session2 (%make-session)))
(not (equal? session1 session2))))
(test-assert "session-set!, valid values"
(let ((session (%make-session))
(options '((host "localhost")
(port 22)
(bindaddr "127.0.0.1")
(user "Random J. User")
(timeout 15) ;seconds
(timeout-usec 15000) ;milliseconds
(ssh1 #f #t)
(ssh2 #f #t)
(log-verbosity 0 1 2 3 4 0)
(compression "yes" "no")
(compression-level 1 2 3 4 5 6 7 8 9)))
(res #t))
(for-each
(lambda (opt)
(for-each
(lambda (val)
(session-set! session (car opt) (cadr opt)))
(cdr opt)))
options)
res))
(test-assert "session-set!, invalid values"
(let ((session (%make-session))
(options '((host 12345 #t)
(port "string" -22)
(bindaddr 12345 -12345)
(user 12345 -12345)
(timeout "string" -15)
(timeout-usec "string" -15000)
(ssh1 12345 "string")
(ssh2 12345 "string")
(log-verbosity "string" -1 5)
(compression 12345)
(compression-level -1 0 10)))
(res #t))
(for-each
(lambda (opt)
(for-each
(lambda (val)
(catch #t
(lambda ()
(session-set! session (car opt) val)
(let* ((r (test-runner-current))
(l (test-runner-aux-value r)))
(format l " opt: ~a, val: ~a -- passed mistakenly~%"
(car opt) val)
(set! res #f)))
(lambda (key . args)
#t)))
(cdr opt)))
options)
res))
(test-assert "make-session"
(make-session #:host "localhost"
#:port 22
#:user "Random J. User"))
(test-assert "blocking-flush!"
(let ((session (%make-session))
(timeout 15))
(eq? (blocking-flush! session timeout) 'ok)))
(test-assert "get-protocol-version"
(let ((session (%make-session)))
(get-protocol-version session)))
(test-assert "connected?, check that we are not connected"
(let ((session (%make-session)))
(not (connected? session))))
(test-end "session")
(exit (= (test-runner-fail-count (test-runner-current)) 0))
|