--- Begin Message ---
Source: guile-ssh
Version: 0.13.1-3
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20210213 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[5]: Entering directory '/<<PKGBUILDDIR>>/debian/build/guile-3.0/tests'
> FAIL: log.scm
> FAIL: server.scm
> FAIL: session.scm
> FAIL: client-server.scm
> FAIL: popen.scm
> FAIL: shell.scm
> FAIL: server-client.scm
> FAIL: sssh-ssshd.scm
> FAIL: key.scm
> FAIL: tunnel.scm
> FAIL: dist.scm
> ============================================
> Guile-SSH 0.13.1: tests/test-suite.log
> ============================================
>
> # TOTAL: 11
> # PASS: 0
> # SKIP: 0
> # XFAIL: 0
> # FAIL: 11
> # XPASS: 0
> # ERROR: 0
>
> .. contents:: :depth: 2
>
> FAIL: log
> =========
>
> %%%% Starting test log
> Group begin: log
> Test begin:
> test-name: "current-logging-callback"
> source-file: "tests/log.scm"
> source-line: 25
> source-form: (test-equal "current-logging-callback" %default-log-printer
> (current-logging-callback))
> Test end:
> result-kind: pass
> actual-value: #<procedure %default-log-printer (a b c d)>
> expected-value: #<procedure %default-log-printer (a b c d)>
> Test begin:
> test-name: "set-logging-callback!, custom"
> source-file: "tests/log.scm"
> source-line: 33
> source-form: (test-equal "set-logging-callback!, custom"
> custom-logging-callback (begin (set-logging-callback!
> custom-logging-callback) (current-logging-callback)))
> Test end:
> result-kind: pass
> actual-value: #<procedure custom-logging-callback (a b c d)>
> expected-value: #<procedure custom-logging-callback (a b c d)>
> Test begin:
> test-name: "set-logging-callback!, default (libssh)"
> source-file: "tests/log.scm"
> source-line: 39
> source-form: (test-equal "set-logging-callback!, default (libssh)"
> %default-libssh-log-printer (begin (set-logging-callback!
> %default-libssh-log-printer) (current-logging-callback)))
> Test end:
> result-kind: pass
> actual-value: #<procedure %default-libssh-log-printer (_ _ _ _)>
> expected-value: #<procedure %default-libssh-log-printer (_ _ _ _)>
> Test begin:
> test-name: "set-logging-callback!, default"
> source-file: "tests/log.scm"
> source-line: 45
> source-form: (test-equal "set-logging-callback!, default"
> %default-log-printer (begin (set-logging-callback! %default-log-printer)
> (current-logging-callback)))
> Test end:
> result-kind: pass
> actual-value: #<procedure %default-log-printer (a b c d)>
> expected-value: #<procedure %default-log-printer (a b c d)>
> Test begin:
> test-name: "set-log-verbosity!"
> source-file: "tests/log.scm"
> source-line: 52
> source-form: (test-assert "set-log-verbosity!" (begin (set-log-verbosity!
> (quote functions)) (catch #t (lambda () (set-log-verbosity! (quote
> wrong-verbosity)) #f) (lambda (key . args) #t))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "get-log-verbosity"
> source-file: "tests/log.scm"
> source-line: 62
> source-form: (test-equal "get-log-verbosity" (quote functions)
> (get-log-verbosity))
> Test end:
> result-kind: pass
> actual-value: functions
> expected-value: functions
> Group end: log
> # of expected passes 6
> FAIL log.scm (exit status: 1)
>
> FAIL: server
> ============
>
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f25a6d5cc80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test server (Writing full log to "server.log")
> # of expected passes 8
> ) (let ((server (%make-server)) (x "I'm not a server")) (and (server? server)
> (not (server? x))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "comparison of servers"
> source-file: "tests/server.scm"
> source-line: 44
> source-form: (test-assert "comparison of servers" (begin (set-log-userdata!
> "comparison of servers") (let ((s1 (%make-server)) (s2 (%make-server))) (and
> (equal? s1 s1) (not (equal? s1 s2))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "server-set!, valid values"
> source-file: "tests/server.scm"
> source-line: 50
> source-form: (test-assert "server-set!, valid values" (begin
> (set-log-userdata! "server-set!, valid values") (let* ((server
> (%make-server)) (topdir (getenv "abs_top_srcdir")) (options (quasiquote
> ((bindaddr "127.0.0.1") (bindport 22) (unquote (if (>= %libssh-minor-version
> 7) (list (quote hostkey) %rsakey %dsakey) (quote (hostkey "ssh-rsa"
> "ssh-dss")))) (rsakey (unquote %rsakey)) (dsakey (unquote %dsakey)) (banner
> "string") (log-verbosity nolog rare protocol packet functions) (blocking-mode
> #f #t)))) (log (test-runner-aux-value (test-runner-current))) (res #t))
> (for-each (lambda (opt) (for-each (lambda (val) (catch #t (lambda ()
> (server-set! server (car opt) val)) (lambda (key . args) (set! res #f)
> (format log " opt: ~a, val: ~a, error: ~a~%" (car opt) val args)))) (cdr
> opt))) options) res)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "server-set!, invalid values"
> source-file: "tests/server.scm"
> source-line: 83
> source-form: (test-assert "server-set!, invalid values" (begin
> (set-log-userdata! "server-set!, invalid values") (let ((server
> (%make-server)) (options (quote ((bindaddr #f 42) (rsakey #f 42) (dsakey #f
> 42) (bindport "I'm not a port" -42) (hostkey "invalid value" 1 (quote
> invalid-value)) (banner 12345) (log-verbosity -1 0 1 2 3 4 5) (blocking-mode
> 42 "string")))) (log (test-runner-aux-value (test-runner-current))) (res #t))
> (for-each (lambda (opt) (for-each (lambda (val) (catch #t (lambda ()
> (server-set! server (car opt) val) (format log " opt: ~a, val: ~a -- passed
> mistakenly~%" (car opt) val) (set! res #f)) (lambda (key . args) #t))) (cdr
> opt))) options) res)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "make-server"
> source-file: "tests/server.scm"
> source-line: 119
> source-form: (test-assert "make-server" (begin (set-log-userdata!
> "make-server") (let ((topdir (getenv "abs_top_srcdir"))) (make-server
> #:bindaddr "127.0.0.1" #:bindport 123456 #:rsakey %rsakey #:dsakey %dsakey
> #:banner "banner" #:log-verbosity (quote nolog) #:blocking-mode #f))))
> Test end:
> result-kind: pass
> actual-value: #<server 127.0.0.1:123456 7f25a56e0f20>
> Test begin:
> test-name: "server-get"
> source-file: "tests/server.scm"
> source-line: 129
> source-form: (test-assert "server-get" (begin (set-log-userdata!
> "server-get") (let* ((topdir (getenv "abs_top_srcdir")) (bindaddr
> "127.0.0.1") (bindport 123456) (banner "banner") (log-verbosity (quote
> nolog)) (blocking-mode #f) (server (make-server #:bindaddr bindaddr
> #:bindport bindport #:rsakey %rsakey #:dsakey %dsakey #:banner banner
> #:log-verbosity log-verbosity #:blocking-mode blocking-mode))) (and (eq?
> (server-get server (quote bindaddr)) bindaddr) (eq? (server-get server (quote
> bindport)) bindport) (eq? (server-get server (quote rsakey)) %rsakey) (eq?
> (server-get server (quote dsakey)) %dsakey) (eq? (server-get server (quote
> banner)) banner) (eq? (server-get server (quote log-verbosity))
> log-verbosity) (eq? (server-get server (quote blocking-mode))
> blocking-mode)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "server-listen"
> source-file: "tests/server.scm"
> source-line: 151
> source-form: (test-assert "server-listen" (begin (set-log-userdata!
> "server-listen") (let* ((topdir (getenv "abs_top_srcdir")) (server
> (make-server #:bindaddr "127.0.0.1" #:bindport 123456 #:rsakey %rsakey
> #:log-verbosity (quote nolog)))) (server-listen server) #t)))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: server
> # of expected passes 8
> FAIL server.scm (exit status: 1)
>
> FAIL: session
> =============
>
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f51e3754c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test session (Writing full log to "session.log")
> # of expected passes 20
> form: (test-assert "%make-session, gc test" (begin (set-log-userdata!
> "%make-session, gc test") (let ((max-sessions 1000)) (do ((idx 1 (+ idx 1)))
> ((> idx max-sessions)) (when (zero? (euclidean-remainder idx 100))
> (format-log/scm (quote nolog) "" (format #f "~d / ~d sessions created ..."
> idx max-sessions))) (%make-session)) #t)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session?"
> source-file: "tests/session.scm"
> source-line: 51
> source-form: (test-assert "session?" (let ((session (%make-session)) (x
> "string")) (and (session? session) (not (session? x)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "comparison of sessions"
> source-file: "tests/session.scm"
> source-line: 57
> source-form: (test-assert "comparison of sessions" (let ((s1
> (%make-session)) (s2 (%make-session))) (and (equal? s1 s1) (not (equal? s1
> s2)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session-set!, valid values"
> source-file: "tests/session.scm"
> source-line: 63
> source-form: (test-assert "session-set!, valid values" (let ((session
> (%make-session)) (options (quasiquote ((host "localhost") (port 22) (bindaddr
> "127.0.0.1") (user "Random J. User") (timeout 15) (timeout-usec 15000) (ssh1
> #f #t) (ssh2 #f #t) (log-verbosity nolog rare protocol packet functions
> nolog) (compression-level 1 2 3 4 5 6 7 8 9) (compression "yes" "no")
> (callbacks ((user-data . "hello") (global-request-callback unquote (const
> #f))))))) (res #t)) (if (>= %libssh-minor-version 8) (set! options (cons
> (quote (nodelay #f #t)) options))) (for-each (lambda (opt) (for-each (lambda
> (val) (session-set! session (car opt) val)) (cdr opt))) options) res))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session-set!, invalid values"
> source-file: "tests/session.scm"
> source-line: 93
> source-form: (test-assert "session-set!, invalid values" (let ((session
> (%make-session)) (options (quote ((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 0 1 2 3 4 5) (compression 12345)
> (compression-level -1 0 10) (callbacks "not a list" ((global-request-callback
> . #f)))))) (res #t)) (if (>= %libssh-minor-version 8) (set! options (cons
> (quote (nodelay 12345 "string")) options))) (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))) (const
> #t))) (cdr opt))) options) res))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session-set!, invalid option type"
> source-file: "tests/session.scm"
> source-line: 130
> source-form: (test-error "session-set!, invalid option type" (quote
> wrong-type-arg) (let ((session (%make-session))) (session-set! session
> "non-valid type" "value")))
> Test end:
> result-kind: pass
> actual-error: (wrong-type-arg "session-set!" "Wrong type argument in
> position ~A: ~S" (2 "non-valid type") ("non-valid type"))
> expected-error: wrong-type-arg
> Test begin:
> test-name: "session-get"
> source-file: "tests/session.scm"
> source-line: 135
> source-form: (test-assert "session-get" (let* ((host "example.com") (port
> 12345) (user "alice") (proxycommand "test") (callbacks (quote ((user-data .
> "test")))) (session (make-session #:host host #:port port #:user user
> #:identity %rsakey #:proxycommand proxycommand #:callbacks callbacks))) (and
> (string=? (session-get session (quote host)) host) (= (session-get session
> (quote port)) port) (string=? (session-get session (quote user)) user)
> (string=? (session-get session (quote identity)) %rsakey) (string=?
> (session-get session (quote proxycommand)) proxycommand) (equal? (session-get
> session (quote callbacks)) callbacks) (equal? (session-get (%make-session)
> (quote callbacks)) #f))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session-get, non-session object"
> source-file: "tests/session.scm"
> source-line: 156
> source-form: (test-error "session-get, non-session object" (quote
> wrong-type-arg) (session-get "non-session object" (quote test)))
> Test end:
> result-kind: pass
> actual-error: (wrong-type-arg #f "Wrong type (expecting ~A): ~S" ("session"
> "non-session object") ("non-session object"))
> expected-error: wrong-type-arg
> Test begin:
> test-name: "session-get, invalid option"
> source-file: "tests/session.scm"
> source-line: 160
> source-form: (test-error "session-get, invalid option" (quote
> guile-ssh-error) (let ((session (%make-session))) (session-get session (quote
> wrong-option))))
> Test end:
> result-kind: pass
> actual-error: (guile-ssh-error "session-get" "Wrong option" wrong-option #f)
> expected-error: guile-ssh-error
> Test begin:
> test-name: "session-parse-config!"
> source-file: "tests/session.scm"
> source-line: 165
> source-form: (test-assert "session-parse-config!" (let ((session
> (make-session #:host "example"))) (session-parse-config! session %config)
> (format (current-error-port) "session: ~a~%" session) (format
> (current-error-port) "host: ~a~%" (session-get session (quote host))) (format
> (current-error-port) "user: ~a~%" (session-get session (quote user))) (format
> (current-error-port) "port: ~a~%" (session-get session (quote port))) (and
> (string=? (session-get session (quote host)) "example.org") (string=?
> (session-get session (quote user)) "alice") (= (session-get session (quote
> port)) 2222))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "session-parse-config!, non-session object"
> source-file: "tests/session.scm"
> source-line: 176
> source-form: (test-error "session-parse-config!, non-session object" (quote
> wrong-type-arg) (session-parse-config! "non-session object" "wrong-value"))
> Test end:
> result-kind: pass
> actual-error: (wrong-type-arg #f "Wrong type (expecting ~A): ~S" ("session"
> "non-session object") ("non-session object"))
> expected-error: wrong-type-arg
> Test begin:
> test-name: "session-parse-config!, wrong config file"
> source-file: "tests/session.scm"
> source-line: 180
> source-form: (test-error "session-parse-config!, wrong config file" (quote
> guile-ssh-error) (session-parse-config! (%make-session) "wrong-value"))
> Test end:
> result-kind: pass
> actual-error: (guile-ssh-error "%gssh-session-parse-config!" "Could not
> read the configuration file" (#<session #<undefined>@#<undefined>:22
> (disconnected) 7f51e21a0fe0> "wrong-value") #f)
> expected-error: guile-ssh-error
> Test begin:
> test-name: "make-session"
> source-file: "tests/session.scm"
> source-line: 184
> source-form: (test-assert "make-session" (make-session #:host "localhost"
> #:port 22 #:user "Random J. User"))
> Test end:
> result-kind: pass
> actual-value: #<session Random J. User@localhost:22 (disconnected)
> 7f51e21a0fc0>
> Test begin:
> test-name: "make-session, '#:config' and '#:host' is specified"
> source-file: "tests/session.scm"
> source-line: 189
> source-form: (test-assert "make-session, '#:config' and '#:host' is
> specified" (make-session #:host "localhost" #:config %config))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@localhost:22 (disconnected)
> 7f51e21a0fa0>
> Test begin:
> test-name: "make-session, '#:config' as a boolean value"
> source-file: "tests/session.scm"
> source-line: 193
> source-form: (test-assert "make-session, '#:config' as a boolean value"
> (make-session #:host "localhost" #:config #f))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@localhost:22 (disconnected)
> 7f51e21a0f80>
> Test begin:
> test-name: "make-session, only '#:config' is specified"
> source-file: "tests/session.scm"
> source-line: 197
> source-form: (test-error "make-session, only '#:config' is specified"
> (quote guile-ssh-error) (make-session #:config %config))
> Test end:
> result-kind: pass
> actual-error: (guile-ssh-error "'config' is specified, but 'host' option is
> missed.")
> expected-error: guile-ssh-error
> Test begin:
> test-name: "blocking-flush!"
> source-file: "tests/session.scm"
> source-line: 201
> source-form: (test-assert "blocking-flush!" (begin (set-log-userdata!
> "blocking-flush!") (equal? (blocking-flush! (%make-session) 15) (quote ok))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "connected?, non-session object"
> source-file: "tests/session.scm"
> source-line: 205
> source-form: (test-error "connected?, non-session object" (quote
> wrong-type-arg) (connected? "non-session object"))
> Test end:
> result-kind: pass
> actual-error: (wrong-type-arg #f "Wrong type (expecting ~A): ~S" ("session"
> "non-session object") ("non-session object"))
> expected-error: wrong-type-arg
> Test begin:
> test-name: "connected?, check that we are not connected"
> source-file: "tests/session.scm"
> source-line: 209
> source-form: (test-assert "connected?, check that we are not connected"
> (let ((session (%make-session))) (not (connected? session))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: session
> # of expected passes 20
> FAIL session.scm (exit status: 1)
>
> FAIL: client-server
> ===================
>
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f46a52d2c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test client-server (Writing full log to "client-server.log")
> # of expected passes 38
> session)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "get-protocol-version"
> source-file: "tests/client-server.scm"
> source-line: 82
> source-form: (test-assert "get-protocol-version" (begin (set-log-userdata!
> "get-protocol-version") (equal? (run-client-test (lambda (server) (let ((s
> (server-accept server))) (server-handle-key-exchange s))) (lambda ()
> (call-with-connected-session (lambda (session) (get-protocol-version
> session))))) 2)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "authenticate-server, not-known"
> source-file: "tests/client-server.scm"
> source-line: 95
> source-form: (test-assert "authenticate-server, not-known" (begin
> (set-log-userdata! "authenticate-server, not-known") (quote not-known)
> (run-client-test (lambda (server) (let ((s (server-accept server)))
> (server-handle-key-exchange s))) (lambda () (call-with-connected-session
> (lambda (session) (authenticate-server session)))))))
> Test end:
> result-kind: pass
> actual-value: not-known
> Test begin:
> test-name: "authenticate-server, ok"
> source-file: "tests/client-server.scm"
> source-line: 108
> source-form: (test-assert "authenticate-server, ok" (begin
> (set-log-userdata! "authenticate-server, ok") (equal? (run-client-test
> (lambda (server) (let ((s (server-accept server)))
> (server-handle-key-exchange s))) (lambda () (let ((res
> (call-with-connected-session (lambda (session) (write-known-host! session)
> (authenticate-server session))))) (delete-file %knownhosts) res))) (quote
> ok))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "get-public-key-hash"
> source-file: "tests/client-server.scm"
> source-line: 124
> source-form: (test-assert "get-public-key-hash" (begin (set-log-userdata!
> "get-public-key-hash") (run-client-test (lambda (server) (let ((s
> (server-accept server))) (server-handle-key-exchange s))) (lambda () (let
> ((hash-md5-bv #vu8(15 142 110 203 162 228 250 211 20 212 26 217 118 57 217
> 66)) (hash-md5-str "0f:8e:6e:cb:a2:e4:fa:d3:14:d4:1a:d9:76:39:d9:42")
> (hash-sha1-bv #vu8(20 65 56 155 119 45 84 163 50 26 59 92 215 159 139 5 229
> 174 84 80)) (hash-sha1-str
> "14:41:38:9b:77:2d:54:a3:32:1a:3b:5c:d7:9f:8b:05:e5:ae:54:50") (session
> (make-session-for-test))) (sleep 1) (connect! session) (authenticate-server
> session) (let* ((pubkey (get-server-public-key session)) (md5-res
> (get-public-key-hash pubkey (quote md5))) (sha1-res (get-public-key-hash
> pubkey (quote sha1)))) (disconnect! session) (and (bytevector=? md5-res
> hash-md5-bv) (string=? (bytevector->hex-string md5-res) hash-md5-str)
> (bytevector=? sha1-res hash-sha1-bv) (string=? (bytevector->hex-string
> sha1-res) hash-sha1-str))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-none!, session: non-session object"
> source-file: "tests/client-server.scm"
> source-line: 161
> source-form: (test-assert "userauth-none!, session: non-session object"
> (begin (set-log-userdata! "userauth-none!, session: non-session object")
> (catch #t (lambda () (userauth-none! "Not a session.") #f) (lambda (key .
> args) (let ((result (equal? key (quote wrong-type-arg)))) (unless result
> (format-log/scm (quote nolog) "userauth-none!, session: non-session object"
> (string-append "Errors do not match: " "expected ~a, got ~a (args: ~a)")
> (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-none!, session: non-connected session"
> source-file: "tests/client-server.scm"
> source-line: 166
> source-form: (test-assert "userauth-none!, session: non-connected session"
> (begin (set-log-userdata! "userauth-none!, session: non-connected session")
> (catch #t (lambda () (userauth-none! (make-session-for-test)) #f) (lambda
> (key . args) (let ((result (equal? key (quote wrong-type-arg)))) (unless
> result (format-log/scm (quote nolog) "userauth-none!, session: non-connected
> session" (string-append "Errors do not match: " "expected ~a, got ~a (args:
> ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-none!, session: connected session"
> source-file: "tests/client-server.scm"
> source-line: 171
> source-form: (test-assert "userauth-none!, session: connected session"
> (begin (set-log-userdata! "userauth-none!, session: connected session")
> (equal? (run-client-test (lambda (server) (server-listen server) (let
> ((session (server-accept server))) (server-handle-key-exchange session)
> (start-session-loop session (lambda (msg) (message-auth-set-methods! msg
> (quote (none))) (message-reply-success msg))))) (lambda ()
> (call-with-connected-session (lambda (session) (authenticate-server session)
> (userauth-none! session))))) (quote success))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-none!, denied"
> source-file: "tests/client-server.scm"
> source-line: 194
> source-form: (test-assert "userauth-none!, denied" (begin
> (set-log-userdata! "userauth-none!, denied") (equal? (run-client-test (lambda
> (server) (server-listen server) (let ((session (server-accept server)))
> (server-handle-key-exchange session) (start-session-loop session (lambda
> (msg) (message-auth-set-methods! msg (quote (public-key)))
> (message-reply-default msg))))) (lambda () (call-with-connected-session
> (lambda (session) (authenticate-server session) (userauth-none! session)))))
> (quote denied))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-none!, partial"
> source-file: "tests/client-server.scm"
> source-line: 217
> source-form: (test-assert "userauth-none!, partial" (begin
> (set-log-userdata! "userauth-none!, partial") (equal? (run-client-test
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (start-session-loop session
> (lambda (msg) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg (quote partial)))))) (lambda ()
> (call-with-connected-session (lambda (session) (authenticate-server session)
> (userauth-none! session))))) (quote partial))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, session: non-session object"
> source-file: "tests/client-server.scm"
> source-line: 243
> source-form: (test-assert "userauth-password!, session: non-session object"
> (begin (set-log-userdata! "userauth-password!, session: non-session object")
> (catch #t (lambda () (userauth-password! "Not a session." "Password") #f)
> (lambda (key . args) (let ((result (equal? key (quote wrong-type-arg))))
> (unless result (format-log/scm (quote nolog) "userauth-password!, session:
> non-session object" (string-append "Errors do not match: " "expected ~a, got
> ~a (args: ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, session: non-connected session"
> source-file: "tests/client-server.scm"
> source-line: 249
> source-form: (test-assert "userauth-password!, session: non-connected
> session" (begin (set-log-userdata! "userauth-password!, session:
> non-connected session") (catch #t (lambda () (userauth-password!
> (make-session-for-test) "Password") #f) (lambda (key . args) (let ((result
> (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm (quote
> nolog) "userauth-password!, session: non-connected session" (string-append
> "Errors do not match: " "expected ~a, got ~a (args: ~a)") (quote
> wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, password: non-string object"
> source-file: "tests/client-server.scm"
> source-line: 255
> source-form: (test-assert "userauth-password!, password: non-string object"
> (begin (set-log-userdata! "userauth-password!, password: non-string object")
> (catch #t (lambda () (run-client-test (lambda (server) (server-listen server)
> (let ((session (server-accept server))) (server-handle-key-exchange session)
> (start-session-loop session (lambda (msg) (message-auth-set-methods! msg
> (quote (password))) (message-reply-success msg))))) (lambda ()
> (call-with-connected-session (lambda (session) (userauth-password! session
> 123))))) #f) (lambda (key . args) (let ((result (equal? key (quote
> wrong-type-arg)))) (unless result (format-log/scm (quote nolog)
> "userauth-password!, password: non-string object" (string-append "Errors do
> not match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key
> args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, success"
> source-file: "tests/client-server.scm"
> source-line: 276
> source-form: (test-assert "userauth-password!, success" (begin
> (set-log-userdata! "userauth-password!, success") (equal? (run-client-test
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (start-session-loop session
> (lambda (msg) (message-auth-set-methods! msg (quote (password)))
> (message-reply-success msg))))) (lambda () (call-with-connected-session
> (lambda (session) (authenticate-server session) (userauth-password! session
> "password"))))) (quote success))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, denied"
> source-file: "tests/client-server.scm"
> source-line: 298
> source-form: (test-assert "userauth-password!, denied" (begin
> (set-log-userdata! "userauth-password!, denied") (equal? (run-client-test
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (start-session-loop session
> (lambda (msg) (message-auth-set-methods! msg (quote (password)))
> (message-reply-default msg))))) (lambda () (call-with-connected-session
> (lambda (session) (authenticate-server session) (userauth-password! session
> "password"))))) (quote denied))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-password!, partial"
> source-file: "tests/client-server.scm"
> source-line: 320
> source-form: (test-assert "userauth-password!, partial" (begin
> (set-log-userdata! "userauth-password!, partial") (equal? (run-client-test
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (start-session-loop session
> (lambda (msg) (message-auth-set-methods! msg (quote (password)))
> (message-reply-success msg (quote partial)))))) (lambda ()
> (call-with-connected-session (lambda (session) (authenticate-server session)
> (userauth-password! session "password"))))) (quote partial))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key!, wrong parameter"
> source-file: "tests/client-server.scm"
> source-line: 346
> source-form: (test-assert "userauth-public-key!, wrong parameter" (begin
> (set-log-userdata! "userauth-public-key!, wrong parameter") (catch #t (lambda
> () (userauth-public-key! "Not a session." (private-key-from-file %rsakey))
> #f) (lambda (key . args) (let ((result (equal? key (quote wrong-type-arg))))
> (unless result (format-log/scm (quote nolog) "userauth-public-key!, wrong
> parameter" (string-append "Errors do not match: " "expected ~a, got ~a (args:
> ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key!, non-connected session"
> source-file: "tests/client-server.scm"
> source-line: 351
> source-form: (test-assert "userauth-public-key!, non-connected session"
> (begin (set-log-userdata! "userauth-public-key!, non-connected session")
> (catch #t (lambda () (userauth-public-key! (make-session-for-test)
> (private-key-from-file %rsakey)) #f) (lambda (key . args) (let ((result
> (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm (quote
> nolog) "userauth-public-key!, non-connected session" (string-append "Errors
> do not match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key
> args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key!, private-key: non-key object"
> source-file: "tests/client-server.scm"
> source-line: 358
> source-form: (test-assert "userauth-public-key!, private-key: non-key
> object" (begin (set-log-userdata! "userauth-public-key!, private-key: non-key
> object") (catch #t (lambda () (run-client-test (lambda (server)
> (server-listen server) (let ((session (server-accept server)))
> (server-handle-key-exchange session) (start-session-loop session (lambda
> (msg) (message-reply-success msg))))) (lambda () (call-with-connected-session
> (lambda (session) (userauth-public-key! session "Non-key object."))))) #f)
> (lambda (key . args) (let ((result (equal? key (quote wrong-type-arg))))
> (unless result (format-log/scm (quote nolog) "userauth-public-key!,
> private-key: non-key object" (string-append "Errors do not match: " "expected
> ~a, got ~a (args: ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key!, private-key: public key"
> source-file: "tests/client-server.scm"
> source-line: 377
> source-form: (test-assert "userauth-public-key!, private-key: public key"
> (begin (set-log-userdata! "userauth-public-key!, private-key: public key")
> (catch #t (lambda () (run-client-test (lambda (server) (server-listen server)
> (let ((session (server-accept server))) (server-handle-key-exchange session)
> (start-session-loop session (lambda (msg) (message-reply-success msg)))))
> (lambda () (call-with-connected-session (lambda (session)
> (userauth-public-key! session (public-key-from-file %rsakey-pub)))))) #f)
> (lambda (key . args) (let ((result (equal? key (quote wrong-type-arg))))
> (unless result (format-log/scm (quote nolog) "userauth-public-key!,
> private-key: public key" (string-append "Errors do not match: " "expected ~a,
> got ~a (args: ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key!, success"
> source-file: "tests/client-server.scm"
> source-line: 395
> source-form: (test-assert "userauth-public-key!, success" (begin
> (set-log-userdata! "userauth-public-key!, success") (equal? (run-client-test
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (start-session-loop session
> (lambda (msg) (message-reply-success msg))))) (lambda ()
> (call-with-connected-session (lambda (session) (authenticate-server session)
> (let ((prvkey (private-key-from-file %rsakey))) (userauth-public-key! session
> prvkey)))))) (quote success))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key/auto!, session: non-session object"
> source-file: "tests/client-server.scm"
> source-line: 421
> source-form: (test-assert "userauth-public-key/auto!, session: non-session
> object" (begin (set-log-userdata! "userauth-public-key/auto!, session:
> non-session object") (catch #t (lambda () (userauth-public-key/auto! "Not a
> session.") #f) (lambda (key . args) (let ((result (equal? key (quote
> wrong-type-arg)))) (unless result (format-log/scm (quote nolog)
> "userauth-public-key/auto!, session: non-session object" (string-append
> "Errors do not match: " "expected ~a, got ~a (args: ~a)") (quote
> wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-public-key/auto!, session: non-connected session"
> source-file: "tests/client-server.scm"
> source-line: 427
> source-form: (test-assert "userauth-public-key/auto!, session:
> non-connected session" (begin (set-log-userdata! "userauth-public-key/auto!,
> session: non-connected session") (catch #t (lambda ()
> (userauth-public-key/auto! (make-session-for-test)) #f) (lambda (key . args)
> (let ((result (equal? key (quote wrong-type-arg)))) (unless result
> (format-log/scm (quote nolog) "userauth-public-key/auto!, session:
> non-connected session" (string-append "Errors do not match: " "expected ~a,
> got ~a (args: ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-gssapi!, wrong parameter"
> source-file: "tests/client-server.scm"
> source-line: 436
> source-form: (test-assert "userauth-gssapi!, wrong parameter" (begin
> (set-log-userdata! "userauth-gssapi!, wrong parameter") (catch #t (lambda ()
> (userauth-gssapi! "Not a session.") #f) (lambda (key . args) (let ((result
> (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm (quote
> nolog) "userauth-gssapi!, wrong parameter" (string-append "Errors do not
> match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key args))
> result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-gssapi!, not connected"
> source-file: "tests/client-server.scm"
> source-line: 441
> source-form: (test-assert "userauth-gssapi!, not connected" (begin
> (set-log-userdata! "userauth-gssapi!, not connected") (catch #t (lambda ()
> (userauth-gssapi! (make-session-for-test)) #f) (lambda (key . args) (let
> ((result (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm
> (quote nolog) "userauth-gssapi!, not connected" (string-append "Errors do not
> match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key args))
> result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-get-list, wrong parameter"
> source-file: "tests/client-server.scm"
> source-line: 450
> source-form: (test-assert "userauth-get-list, wrong parameter" (begin
> (set-log-userdata! "userauth-get-list, wrong parameter") (catch #t (lambda ()
> (userauth-get-list "Not a session.") #f) (lambda (key . args) (let ((result
> (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm (quote
> nolog) "userauth-get-list, wrong parameter" (string-append "Errors do not
> match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key args))
> result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-get-list, non-connected"
> source-file: "tests/client-server.scm"
> source-line: 453
> source-form: (test-assert "userauth-get-list, non-connected" (begin
> (set-log-userdata! "userauth-get-list, non-connected") (catch #t (lambda ()
> (userauth-get-list (make-session-for-test)) #f) (lambda (key . args) (let
> ((result (equal? key (quote wrong-type-arg)))) (unless result (format-log/scm
> (quote nolog) "userauth-get-list, non-connected" (string-append "Errors do
> not match: " "expected ~a, got ~a (args: ~a)") (quote wrong-type-arg) key
> args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "userauth-get-list"
> source-file: "tests/client-server.scm"
> source-line: 459
> source-form: (test-assert "userauth-get-list" (begin (set-log-userdata!
> "userauth-get-list") (equal? (run-client-test (lambda (server) (let ((session
> (server-accept server))) (server-handle-key-exchange session)
> (start-session-loop session (lambda (msg) (message-auth-set-methods! msg
> (quote (password public-key))) (message-reply-default msg))))) (lambda ()
> (call-with-connected-session (lambda (session) (authenticate-server session)
> (userauth-none! session) (userauth-get-list session))))) (quote (password
> public-key)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "make-channel"
> source-file: "tests/client-server.scm"
> source-line: 524
> source-form: (test-assert "make-channel" (begin (set-log-userdata!
> "make-channel") (run-client-test (lambda (server) (start-server/exec server
> (const #t))) (lambda () (call-with-connected-session/channel-test
> make-channel)))))
> Test end:
> result-kind: pass
> actual-value: #<unknown channel (freed) 7f46a3bf7ec0>
> Test begin:
> test-name: "channel-get-session"
> source-file: "tests/client-server.scm"
> source-line: 536
> source-form: (test-assert "channel-get-session" (begin (set-log-userdata!
> "channel-get-session") (run-client-test (lambda (server) (start-server/exec
> server (const #t))) (lambda () (call-with-connected-session/channel-test
> (lambda (session) (let ((channel (make-channel session))) (eq? session
> (channel-get-session channel)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "channel-open-session"
> source-file: "tests/client-server.scm"
> source-line: 550
> source-form: (test-assert "channel-open-session" (begin (set-log-userdata!
> "channel-open-session") (run-client-test (lambda (server) (start-server/exec
> server (const #t))) (lambda () (call-with-connected-session/channel-test
> (lambda (session) (format-log/scm (quote nolog) "channel-open-session
> [client]" "session: ~a" session) (let ((channel (make-channel session)))
> (format-log/scm (quote nolog) "channel-open-session [client]" "channel: ~a"
> channel) (channel-open-session channel) (format-log/scm (quote nolog)
> "channel-open-session [client]" "channel 2: ~a" channel) (not (port-closed?
> channel)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "channel-request-exec"
> source-file: "tests/client-server.scm"
> source-line: 572
> source-form: (test-assert "channel-request-exec" (begin (set-log-userdata!
> "channel-request-exec") (run-client-test (lambda (server) (start-server/exec
> server (const #t))) (lambda () (call-with-connected-session/channel-test
> (lambda (session) (let ((channel (make-channel session)))
> (channel-open-session channel) (channel-request-exec channel "ping") (let
> ((res (read-line channel))) (and res (string=? "pong" res))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "channel-request-exec, exit status"
> source-file: "tests/client-server.scm"
> source-line: 591
> source-form: (test-assert "channel-request-exec, exit status" (begin
> (set-log-userdata! "channel-request-exec, exit status") 0 (run-client-test
> (lambda (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/channel-test (lambda (session) (let ((channel
> (make-channel session))) (channel-open-session channel) (channel-request-exec
> channel "exit status") (channel-get-exit-status channel))))))))
> Test end:
> result-kind: pass
> actual-value: 0
> Test begin:
> test-name: "channel-request-exec, printing a freed channel"
> source-file: "tests/client-server.scm"
> source-line: 608
> source-form: (test-assert "channel-request-exec, printing a freed channel"
> (begin (set-log-userdata! "channel-request-exec, printing a freed channel")
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/channel-test (lambda (session) (let
> ((channel (make-channel session))) (format-log/scm (quote nolog)
> "channel-request-exec, printing a freed channel" "channel 0: ~a" channel)
> (channel-open-session channel) (format-log/scm (quote nolog)
> "channel-request-exec, printing a freed channel" "channel 1: ~a" channel)
> (channel-request-exec channel "exit status") (format-log/scm (quote nolog)
> "channel-request-exec, printing a freed channel" "channel 2: ~a" channel)
> (close channel) (format-log/scm (quote nolog) "channel-request-exec, printing
> a freed channel" "channel: ~a" channel) (string-match "#<unknown channel
> \\(freed\\) [0-9a-f]+>" (object->string channel)))))))))
> Test end:
> result-kind: pass
> actual-value: #("#<unknown channel (freed) 7f46a3a85940>" (0 . 39))
> Test begin:
> test-name: "channel-get-exit-status, freed channel"
> source-file: "tests/client-server.scm"
> source-line: 634
> source-form: (test-assert "channel-get-exit-status, freed channel" (begin
> (set-log-userdata! "channel-get-exit-status, freed channel") (catch #t
> (lambda () (run-client-test (lambda (server) (start-server/exec server (const
> #t))) (lambda () (call-with-connected-session (lambda (session)
> (authenticate-server session) (userauth-none! session) (let ((channel
> (make-channel session))) (channel-open-session channel) (channel-request-exec
> channel "exit status") (close channel) (channel-get-exit-status channel))))))
> #f) (lambda (key . args) (let ((result (equal? key (quote wrong-type-arg))))
> (unless result (format-log/scm (quote nolog) "channel-get-exit-status, freed
> channel" (string-append "Errors do not match: " "expected ~a, got ~a (args:
> ~a)") (quote wrong-type-arg) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "data transferring, string"
> source-file: "tests/client-server.scm"
> source-line: 662
> source-form: (test-assert "data transferring, string" (begin
> (set-log-userdata! "data transferring, string") (run-client-test (lambda
> (server) (start-server/dt-test server (lambda (channel) (let ((str (read-line
> channel))) (write-line str channel))))) (lambda ()
> (call-with-connected-session/channel-test (lambda (session) (let ((channel
> (make-channel/dt-test session)) (str "Hello Scheme World!")) (write-line str
> channel) (poll channel (lambda args (let ((res (read-line channel)))
> (disconnect! session) (equal? res str)))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "data transferring, bytevector"
> source-file: "tests/client-server.scm"
> source-line: 686
> source-form: (test-assert "data transferring, bytevector" (begin
> (set-log-userdata! "data transferring, bytevector") (run-client-test (lambda
> (server) (use-modules (rnrs bytevectors) (rnrs io ports))
> (start-server/dt-test server (lambda (channel) (let ((v (get-bytevector-n
> channel 10))) (put-bytevector channel v))))) (lambda ()
> (call-with-connected-session/channel-test (lambda (session) (let* ((vect-size
> 10) (channel (make-channel/dt-test session)) (vect (make-bytevector vect-size
> 42))) (format-log/scm (quote nolog) "data transferring, bytevector" "vect:
> ~a" vect) (put-bytevector channel vect) (poll channel (lambda args (let ((res
> (get-bytevector-n channel vect-size))) (format-log/scm (quote nolog) "data
> transferring, bytevector" "res: ~a" res) (equal? res vect)))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "channel-send-eof"
> source-file: "tests/client-server.scm"
> source-line: 725
> source-form: (test-assert "channel-send-eof" (begin (set-log-userdata!
> "channel-send-eof") (run-client-test (lambda (server) (start-server/dt-test
> server (lambda (channel) (let ((str (read-line channel))) (write-line str
> channel))))) (lambda () (call-with-connected-session/channel-test (lambda
> (session) (let ((channel (make-channel/dt-test session)) (str "Hello Scheme
> World!")) (write-line str channel) (channel-send-eof channel) (and
> (input-port? channel) (not (output-port? channel)) (string=? (read-line
> channel) str)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: client-server
> # of expected passes 38
> FAIL client-server.scm (exit status: 1)
>
> FAIL: popen
> ===========
>
> %%%% Starting test popen
> Group begin: popen
> Test begin:
> test-name: "open-remote-pipe, OPEN_READ"
> source-file: "tests/popen.scm"
> source-line: 59
> source-form: (test-assert "open-remote-pipe, OPEN_READ" (begin
> (set-log-userdata! "open-remote-pipe, OPEN_READ") (run-client-test (lambda
> (server) (start-server/exec server (lambda () %%%% Starting test popen
> (Writing full log to "popen.log")
> # of expected passes 6
> hannel (open-remote-pipe session "ping" OPEN_READ))) (and (input-only?
> channel) (poll channel (lambda args (response=? channel "pong")))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "open-remote-pipe, OPEN_PTY_READ"
> source-file: "tests/popen.scm"
> source-line: 71
> source-form: (test-assert "open-remote-pipe, OPEN_PTY_READ" (begin
> (set-log-userdata! "open-remote-pipe, OPEN_PTY_READ") (run-client-test
> (lambda (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/shell (lambda (session) (let* ((OPEN_PTY_READ
> (string-append OPEN_PTY OPEN_READ)) (channel (open-remote-pipe session "ping"
> OPEN_PTY_READ))) (format-log/scm (quote nolog) "open-remote-pipe,
> OPEN_PTY_READ" "channel: ~A" channel) (and (input-only? channel) (poll
> channel (lambda args (response=? channel "pong")))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "open-remote-pipe, OPEN_BOTH"
> source-file: "tests/popen.scm"
> source-line: 84
> source-form: (test-assert "open-remote-pipe, OPEN_BOTH" (begin
> (set-log-userdata! "open-remote-pipe, OPEN_BOTH") (run-client-test (lambda
> (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/shell (lambda (session) (let ((channel
> (open-remote-pipe session "ping" OPEN_BOTH))) (format-log/scm (quote nolog)
> "open-remote-pipe, OPEN_BOTH" "channel: ~A" channel) (and (input-port?
> channel) (output-port? channel) (poll channel (lambda args (response=?
> channel "pong")))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "open-remote-pipe*"
> source-file: "tests/popen.scm"
> source-line: 97
> source-form: (test-assert "open-remote-pipe*" (begin (set-log-userdata!
> "open-remote-pipe*") (run-client-test (lambda (server) (start-server/exec
> server (const #t))) (lambda () (call-with-connected-session/shell (lambda
> (session) (let ((channel (open-remote-pipe* session OPEN_READ "ping")))
> (format-log/scm (quote nolog) "open-remote-pipe*" "channel: ~A" channel) (and
> (input-only? channel) (poll channel (lambda args (response=? channel
> "pong")))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "open-remote-input-pipe"
> source-file: "tests/popen.scm"
> source-line: 109
> source-form: (test-assert "open-remote-input-pipe" (begin
> (set-log-userdata! "open-remote-input-pipe") (run-client-test (lambda
> (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/shell (lambda (session) (let ((channel
> (open-remote-input-pipe session "ping"))) (format-log/scm (quote nolog)
> "open-remote-input-pipe" "channel: ~A" channel) (and (input-only? channel)
> (poll channel (lambda args (response=? channel "pong")))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "open-remote-output-pipe"
> source-file: "tests/popen.scm"
> source-line: 121
> source-form: (test-assert "open-remote-output-pipe" (begin
> (set-log-userdata! "open-remote-output-pipe") (run-client-test (lambda
> (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/shell (lambda (session) (let ((channel
> (open-remote-output-pipe session "ping"))) (format-log/scm (quote nolog)
> "open-remote-output-pipe" "channel: ~A" channel) (output-only? channel))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: popen
> # of expected passes 6
> FAIL popen.scm (exit status: 1)
>
> FAIL: shell
> ===========
>
> %%%% Starting test shell
> Group begin: shell
> Test begin:
> test-name: "rexec"
> source-file: "tests/shell.scm"
> source-line: 44
> source-form: (test-assert "rexec" (begin (set-log-userdata! "rexec")
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/shell (lambda (session) %%%% Starting
> test shell (Writing full log to "shell.log")
> # of expected passes 6
> (rexec session "ping") (list result exit-code))))))))
> Test end:
> result-kind: pass
> actual-value: (("pong") 0)
> Test begin:
> test-name: "which"
> source-file: "tests/shell.scm"
> source-line: 58
> source-form: (test-assert "which" (begin (set-log-userdata! "which")
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/shell (lambda (session) (receive
> (result exit-code) (which session "uname") (and (zero? exit-code) (string=?
> (car result) "which 'uname'")))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "pgrep"
> source-file: "tests/shell.scm"
> source-line: 70
> source-form: (test-assert "pgrep" (begin (set-log-userdata! "pgrep")
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/shell (lambda (session) (receive
> (result exit-code) (pgrep session "guile --listen=37146" #:full? #t) (and
> (zero? exit-code) (string=? "pgrep -f 'guile --listen=37146'" (car
> result))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "command-available?"
> source-file: "tests/shell.scm"
> source-line: 83
> source-form: (test-assert "command-available?" (begin (set-log-userdata!
> "command-available?") (run-client-test (lambda (server) (start-server/exec
> server (const #t))) (lambda () (call-with-connected-session/shell (lambda
> (session) (command-available? session "guile")))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "fallback-pgrep"
> source-file: "tests/shell.scm"
> source-line: 92
> source-form: (test-assert "fallback-pgrep" (begin (set-log-userdata!
> "fallback-pgrep") (run-client-test (lambda (server) (start-server/exec server
> (const #t))) (lambda () (call-with-connected-session/shell (lambda (session)
> (receive (result exit-code) (fallback-pgrep session "guile") (and (zero?
> exit-code) result))))))))
> Test end:
> result-kind: pass
> actual-value: ()
> Test begin:
> test-name: "loadavg"
> source-file: "tests/shell.scm"
> source-line: 104
> source-form: (test-assert "loadavg" (begin (set-log-userdata! "loadavg")
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/shell (lambda (session) (equal?
> (loadavg session) (quote ("0.01" "0.05" "0.10" "4/1927" "242011")))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: shell
> # of expected passes 6
> FAIL shell.scm (exit status: 1)
>
> FAIL: server-client
> ===================
>
> %%%% Starting test server-client (Writing full log to "server-client.log")
> %%%% Starting test server-client (Writing full log to "server-client.log")
> %%%% Starting test server-client (Writing full log to "server-client.log")
> %%%% Starting test server-client (Writing full log to "server-client.log")
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7faef3c82c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test server-client (Writing full log to "server-client.log")
> # of expected passes 4
> ept, key exchange" (begin (set-log-userdata! "accept, key exchange")
> (run-server-test (lambda (session) (sleep 1) (connect! session)
> (authenticate-server session)) (lambda (server) (server-listen server) (let
> ((s (server-accept server))) (catch #t (lambda () (server-handle-key-exchange
> s)) (lambda (key . args) (display args) (newline))) s)))))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@#<undefined>:22 (connected)
> 7faef2648fa0>
> Test begin:
> test-name: "server-message-get"
> source-file: "tests/server-client.scm"
> source-line: 68
> source-form: (test-assert "server-message-get" (begin (set-log-userdata!
> "server-message-get") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated"))
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (message? msg)))))))
> client: connected
> client: server authenticated
> %%%% Starting test server-client
> Group begin: server-client
> Test begin:
> test-name: "accept, key exchange"
> source-file: "tests/server-client.scm"
> source-line: 46
> source-form: (test-assert "accept, key exchange" (begin (set-log-userdata!
> "accept, key exchange") (run-server-test (lambda (session) (sleep 1)
> (connect! session) (authenticate-server session)) (lambda (server)
> (server-listen server) (let ((s (server-accept server))) (catch #t (lambda ()
> (server-handle-key-exchange s)) (lambda (key . args) (display args)
> (newline))) s)))))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@#<undefined>:22 (connected)
> 7faef2648fa0>
> Test begin:
> test-name: "server-message-get"
> source-file: "tests/server-client.scm"
> source-line: 68
> source-form: (test-assert "server-message-get" (begin (set-log-userdata!
> "server-message-get") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated"))
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (message? msg)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "message-get-type"
> source-file: "tests/server-client.scm"
> source-line: 92
> source-form: (test-assert "message-get-type" (begin (set-log-userdata!
> "message-get-type") (run-server-test (lambda (session) (usleep 100) (connect!
> session) (while (not (connected? session)) (usleep 100) (connect! session))
> (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated")
> (while #t (sleep 5))) (lambda (server) (server-listen server) (let ((session
> (server-accept server))) (format-log/scm (quote nolog) "server" "session: ~a"
> session) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (let ((msg-type (message-get-type msg)) (expected-type (quote
> (request-service)))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (disconnect! session) (equal? msg-type
> expected-type))))))))
> client: connected
> client: server authenticated
> %%%% Starting test server-client
> Group begin: server-client
> Test begin:
> test-name: "accept, key exchange"
> source-file: "tests/server-client.scm"
> source-line: 46
> source-form: (test-assert "accept, key exchange" (begin (set-log-userdata!
> "accept, key exchange") (run-server-test (lambda (session) (sleep 1)
> (connect! session) (authenticate-server session)) (lambda (server)
> (server-listen server) (let ((s (server-accept server))) (catch #t (lambda ()
> (server-handle-key-exchange s)) (lambda (key . args) (display args)
> (newline))) s)))))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@#<undefined>:22 (connected)
> 7faef2648fa0>
> Test begin:
> test-name: "server-message-get"
> source-file: "tests/server-client.scm"
> source-line: 68
> source-form: (test-assert "server-message-get" (begin (set-log-userdata!
> "server-message-get") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated"))
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (message? msg)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "message-get-type"
> source-file: "tests/server-client.scm"
> source-line: 92
> source-form: (test-assert "message-get-type" (begin (set-log-userdata!
> "message-get-type") (run-server-test (lambda (session) (usleep 100) (connect!
> session) (while (not (connected? session)) (usleep 100) (connect! session))
> (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated")
> (while #t (sleep 5))) (lambda (server) (server-listen server) (let ((session
> (server-accept server))) (format-log/scm (quote nolog) "server" "session: ~a"
> session) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (let ((msg-type (message-get-type msg)) (expected-type (quote
> (request-service)))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (disconnect! session) (equal? msg-type
> expected-type))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "message-get-session"
> source-file: "tests/server-client.scm"
> source-line: 125
> source-form: (test-assert "message-get-session" (begin (set-log-userdata!
> "message-get-session") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (usleep 100) (authenticate-server session) (usleep 100)
> (userauth-none! session) (while #t (sleep 5))) (lambda (server)
> (server-listen server) (let ((session (server-accept server)))
> (server-handle-key-exchange session) (let* ((msg (server-message-get
> session)) (x (message-get-session msg))) (message-auth-set-methods! msg
> (quote (none))) (message-reply-success msg) (disconnect! x) (equal? x
> session)))))))
> %%%% Starting test server-client
> Group begin: server-client
> Test begin:
> test-name: "accept, key exchange"
> source-file: "tests/server-client.scm"
> source-line: 46
> source-form: (test-assert "accept, key exchange" (begin (set-log-userdata!
> "accept, key exchange") (run-server-test (lambda (session) (sleep 1)
> (connect! session) (authenticate-server session)) (lambda (server)
> (server-listen server) (let ((s (server-accept server))) (catch #t (lambda ()
> (server-handle-key-exchange s)) (lambda (key . args) (display args)
> (newline))) s)))))
> Test end:
> result-kind: pass
> actual-value: #<session #<undefined>@#<undefined>:22 (connected)
> 7faef2648fa0>
> Test begin:
> test-name: "server-message-get"
> source-file: "tests/server-client.scm"
> source-line: 68
> source-form: (test-assert "server-message-get" (begin (set-log-userdata!
> "server-message-get") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated"))
> (lambda (server) (server-listen server) (let ((session (server-accept
> server))) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (message? msg)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "message-get-type"
> source-file: "tests/server-client.scm"
> source-line: 92
> source-form: (test-assert "message-get-type" (begin (set-log-userdata!
> "message-get-type") (run-server-test (lambda (session) (usleep 100) (connect!
> session) (while (not (connected? session)) (usleep 100) (connect! session))
> (clnmsg "connected") (authenticate-server session) (clnmsg "server
> authenticated") (userauth-none! session) (clnmsg "client authenticated")
> (while #t (sleep 5))) (lambda (server) (server-listen server) (let ((session
> (server-accept server))) (format-log/scm (quote nolog) "server" "session: ~a"
> session) (server-handle-key-exchange session) (let ((msg (server-message-get
> session))) (let ((msg-type (message-get-type msg)) (expected-type (quote
> (request-service)))) (message-auth-set-methods! msg (quote (none)))
> (message-reply-success msg) (disconnect! session) (equal? msg-type
> expected-type))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "message-get-session"
> source-file: "tests/server-client.scm"
> source-line: 125
> source-form: (test-assert "message-get-session" (begin (set-log-userdata!
> "message-get-session") (run-server-test (lambda (session) (sleep 1) (connect!
> session) (usleep 100) (authenticate-server session) (usleep 100)
> (userauth-none! session) (while #t (sleep 5))) (lambda (server)
> (server-listen server) (let ((session (server-accept server)))
> (server-handle-key-exchange session) (let* ((msg (server-message-get
> session)) (x (message-get-session msg))) (message-auth-set-methods! msg
> (quote (none))) (message-reply-success msg) (disconnect! x) (equal? x
> session)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: server-client
> # of expected passes 4
> FAIL server-client.scm (exit status: 1)
>
> FAIL: sssh-ssshd
> ================
>
> %%%% Starting test sssh-ssshd
> Group begin: sssh-ssshd
> Test begin:
> test-name: "ssshd, start"
> source-file: "tests/sssh-ssshd.scm"
> source-line: 97
> source-form: (test-assert "ssshd, start" (let ((max-tries 10)) (system
> *ssshd-cmd*) (let ((pid (wait-pid-file max-tries *srv-pid-file*))) (cleanup
> pid) pid)))
> Test end:
> result-kind: pass
> actual-value: 4493
> Test begin:
> test-name: "sssh, exec"
> source-file: "tests/sssh-ssshd.scm"
> source-line: 104
> source-form: (test-assert "sssh, exec" (let ((max-tries 10)) (system
> *ssshd-cmd*) (let* ((pid (wait-pid-file max-tries *srv-pid-file*)) (output
> (read-line (open-input-pipe *test-cmd*))) (p (open-input-pipe *sssh-cmd*))
> (result (let r ((res "") (l (read-line p))) (and (not (eof-object? l)) (if
> (string=? output res) #t (r (string-append res l) (read-line p)))))))
> (cleanup pid) result)))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: sssh-ssshd
> # of expected passes 2
> shd.pid
> ---------- ssshd ----------
> Using private RSA key:
> /<<PKGBUILDDIR>>/debian/build/guile-3.0/../../../tests/keys/rsakey
> Using private DSA key:
> /<<PKGBUILDDIR>>/debian/build/guile-3.0/../../../tests/keys/dsakey
> Listening on port: 12600
> PID file: ssshd.pid
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f80b9cf7c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test sssh-ssshd (Writing full log to "sssh-ssshd.log")
> # of expected passes 2
> FAIL sssh-ssshd.scm (exit status: 1)
>
> FAIL: key
> =========
>
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f9ea1d17c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test key (Writing full log to "key.log")
> # of expected passes 16
> 256 (private) 7f9ea06d8fa0>
> Test begin:
> test-name: "public-key-from-file"
> source-file: "tests/key.scm"
> source-line: 44
> source-form: (test-assert "public-key-from-file" (begin (set-log-userdata!
> "public-key-from-file") (and (public-key-from-file %rsakey-pub)
> (public-key-from-file %dsakey-pub) (when-openssl (public-key-from-file
> %ecdsakey-pub)))))
> Test end:
> result-kind: pass
> actual-value: #<key ecdsa-p256 (public) 7f9ea06d8f40>
> Test begin:
> test-name: "key?"
> source-file: "tests/key.scm"
> source-line: 59
> source-form: (test-assert "key?" (and (not (key? "not a key")) (key?
> *rsa-key*) (key? *dsa-key*) (when-openssl (key? *ecdsa-key*)) (key?
> *rsa-pub-key*) (key? *dsa-pub-key*) (when-openssl (key? *ecdsa-pub-key*))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "private-key?"
> source-file: "tests/key.scm"
> source-line: 70
> source-form: (test-assert "private-key?" (and (private-key? *rsa-key*) (not
> (private-key? *rsa-pub-key*)) (not (private-key? "not a key"))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "public-key?"
> source-file: "tests/key.scm"
> source-line: 75
> source-form: (test-assert "public-key?" (begin (set-log-userdata!
> "public-key?") (and (public-key? *rsa-pub-key*) (public-key? *rsa-key*) (not
> (public-key? "not a key")))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "private-key->public-key"
> source-file: "tests/key.scm"
> source-line: 84
> source-form: (test-assert "private-key->public-key" (begin
> (set-log-userdata! "private-key->public-key") (and (private-key->public-key
> *rsa-key*) (private-key->public-key *dsa-key*) (when-openssl
> (private-key->public-key *ecdsa-key*)))))
> Test end:
> result-kind: pass
> actual-value: #<key ecdsa-p256 (public) 7f9ea06d8e20>
> Test begin:
> test-name: "get-key-type"
> source-file: "tests/key.scm"
> source-line: 90
> source-form: (test-assert "get-key-type" (begin (set-log-userdata!
> "get-key-type") (and (eq? (quote rsa) (get-key-type *rsa-key*)) (eq? (quote
> dss) (get-key-type *dsa-key*)) (when-openssl (or (eq? (quote ecdsa-p256)
> (get-key-type *ecdsa-key*)) (eq? (quote ecdsa) (get-key-type
> *ecdsa-key*)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "private-key-to-file"
> source-file: "tests/key.scm"
> source-line: 99
> source-form: (test-assert "private-key-to-file" (begin (set-log-userdata!
> "private-key-to-file") (when-openssl (let ((file-name "./tmp-rsa-key"))
> (private-key-to-file *rsa-key* file-name) (let ((key (private-key-from-file
> file-name))) (delete-file file-name) (and (key? key) (private-key? key)))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "public-key->string, RSA"
> source-file: "tests/key.scm"
> source-line: 119
> source-form: (test-equal "public-key->string, RSA" (public-key->string
> *rsa-pub-key*) %rsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAB3NzaC1yc2EAAAADAQABAAABAQC+8H9j5Yt3xeqaAxXAtSbBsW0JsJegngwfLveHA0ev3ndEKruylR6CZgf6OxshTwUeBaqn7jJMf+6RRQPTcxihgtZAfdyKdPGWDtmePBnG64+uGEaP8N3KvCzlANKf5tmxS8brJlQhxKL8t+3IE8w3QmCMnCGKWprsL/ygPA9koWauUqqKvOQbZXdUEfLvZfnsE1laRyK4dwLiiM2vyGZM/2yePLP4xYu/uYdPFaukxt3DMcgrEy9zuVcU8wbkJMKM57sambvituzMVVqRdeMX9exZv32qcXlpChl4XjFClQ0lqOb8S8CNTPXm3zQ2ZJrQtUHiD54RYhlXD7X0TO6v"
> expected-value:
> "AAAAB3NzaC1yc2EAAAADAQABAAABAQC+8H9j5Yt3xeqaAxXAtSbBsW0JsJegngwfLveHA0ev3ndEKruylR6CZgf6OxshTwUeBaqn7jJMf+6RRQPTcxihgtZAfdyKdPGWDtmePBnG64+uGEaP8N3KvCzlANKf5tmxS8brJlQhxKL8t+3IE8w3QmCMnCGKWprsL/ygPA9koWauUqqKvOQbZXdUEfLvZfnsE1laRyK4dwLiiM2vyGZM/2yePLP4xYu/uYdPFaukxt3DMcgrEy9zuVcU8wbkJMKM57sambvituzMVVqRdeMX9exZv32qcXlpChl4XjFClQ0lqOb8S8CNTPXm3zQ2ZJrQtUHiD54RYhlXD7X0TO6v"
> Test begin:
> test-name: "public-key->string, DSA"
> source-file: "tests/key.scm"
> source-line: 123
> source-form: (test-equal "public-key->string, DSA" (public-key->string
> *dsa-pub-key*) %dsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAB3NzaC1kc3MAAACBAOpnJ64w3Qo3HkCCODTPpLqPUrDLg0bxWdoae2tsXFwhBthIlCV8N0hTzOj1Qrgnx/WiuDk5qXSKOHisyqVBv8sGLOUTBy0Fdz1SobZ9+WGu5+5EiJm78MZcgtHXHu1GPuImANifbSaDJpIGKItq0V5WhpLXyQC7o0Vt70sGQboVAAAAFQDeu+6APBWXtqq2Ch+nODn7VDSIhQAAAIA5iGHYbztSq8KnWj1J/6GTvsPp1JFqZ3hFX5wlGIV4XxBdeEZnCPrhYJumM7SRjYjWMpW5eqFNs5o3d+rJPFFwDo7yW10WC3Bfpo5xRxU35xf/aFAVbm3vi/HRQvv4cFrwTLvPHgNYGYdZiHXCXPoYIh+WoKT9n3MfrBXB4hpAmwAAAIEArkWuRnbjfPVFpXrWGw6kMPVdhOZr1ghdlG5bY31y4UKUlmHvXx5YZ776dSRSMJY2u4lS73+SFgwPdkmpgGma/rZdd9gly9T7SiSr/4qXJyS8Muh203xsAU3ukRocY8lsvllKEGiCJmrUTJWmj0UYEDsbqy2k/1Yz2Q/awygyk9c="
> expected-value:
> "AAAAB3NzaC1kc3MAAACBAOpnJ64w3Qo3HkCCODTPpLqPUrDLg0bxWdoae2tsXFwhBthIlCV8N0hTzOj1Qrgnx/WiuDk5qXSKOHisyqVBv8sGLOUTBy0Fdz1SobZ9+WGu5+5EiJm78MZcgtHXHu1GPuImANifbSaDJpIGKItq0V5WhpLXyQC7o0Vt70sGQboVAAAAFQDeu+6APBWXtqq2Ch+nODn7VDSIhQAAAIA5iGHYbztSq8KnWj1J/6GTvsPp1JFqZ3hFX5wlGIV4XxBdeEZnCPrhYJumM7SRjYjWMpW5eqFNs5o3d+rJPFFwDo7yW10WC3Bfpo5xRxU35xf/aFAVbm3vi/HRQvv4cFrwTLvPHgNYGYdZiHXCXPoYIh+WoKT9n3MfrBXB4hpAmwAAAIEArkWuRnbjfPVFpXrWGw6kMPVdhOZr1ghdlG5bY31y4UKUlmHvXx5YZ776dSRSMJY2u4lS73+SFgwPdkmpgGma/rZdd9gly9T7SiSr/4qXJyS8Muh203xsAU3ukRocY8lsvllKEGiCJmrUTJWmj0UYEDsbqy2k/1Yz2Q/awygyk9c="
> Test begin:
> test-name: "public-key->string, ECDSA"
> source-file: "tests/key.scm"
> source-line: 128
> source-form: (test-equal "public-key->string, ECDSA" (public-key->string
> *ecdsa-pub-key*) %ecdsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHcpje/fp21KjuZFKgmKAAwHeYJ6e3ny4LwEVjZr8hOCVlBvqj7/krVqxbwZI7EcowbpYI1F8ZszS7zfUhKT3U4="
> expected-value:
> "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHcpje/fp21KjuZFKgmKAAwHeYJ6e3ny4LwEVjZr8hOCVlBvqj7/krVqxbwZI7EcowbpYI1F8ZszS7zfUhKT3U4="
> Test begin:
> test-name: "string->public-key, RSA"
> source-file: "tests/key.scm"
> source-line: 133
> source-form: (test-equal "string->public-key, RSA" (public-key->string
> (string->public-key %rsakey-pub-string (quote rsa))) %rsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAB3NzaC1yc2EAAAADAQABAAABAQC+8H9j5Yt3xeqaAxXAtSbBsW0JsJegngwfLveHA0ev3ndEKruylR6CZgf6OxshTwUeBaqn7jJMf+6RRQPTcxihgtZAfdyKdPGWDtmePBnG64+uGEaP8N3KvCzlANKf5tmxS8brJlQhxKL8t+3IE8w3QmCMnCGKWprsL/ygPA9koWauUqqKvOQbZXdUEfLvZfnsE1laRyK4dwLiiM2vyGZM/2yePLP4xYu/uYdPFaukxt3DMcgrEy9zuVcU8wbkJMKM57sambvituzMVVqRdeMX9exZv32qcXlpChl4XjFClQ0lqOb8S8CNTPXm3zQ2ZJrQtUHiD54RYhlXD7X0TO6v"
> expected-value:
> "AAAAB3NzaC1yc2EAAAADAQABAAABAQC+8H9j5Yt3xeqaAxXAtSbBsW0JsJegngwfLveHA0ev3ndEKruylR6CZgf6OxshTwUeBaqn7jJMf+6RRQPTcxihgtZAfdyKdPGWDtmePBnG64+uGEaP8N3KvCzlANKf5tmxS8brJlQhxKL8t+3IE8w3QmCMnCGKWprsL/ygPA9koWauUqqKvOQbZXdUEfLvZfnsE1laRyK4dwLiiM2vyGZM/2yePLP4xYu/uYdPFaukxt3DMcgrEy9zuVcU8wbkJMKM57sambvituzMVVqRdeMX9exZv32qcXlpChl4XjFClQ0lqOb8S8CNTPXm3zQ2ZJrQtUHiD54RYhlXD7X0TO6v"
> Test begin:
> test-name: "string->public-key, DSA"
> source-file: "tests/key.scm"
> source-line: 137
> source-form: (test-equal "string->public-key, DSA" (public-key->string
> (string->public-key %dsakey-pub-string (quote dss))) %dsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAB3NzaC1kc3MAAACBAOpnJ64w3Qo3HkCCODTPpLqPUrDLg0bxWdoae2tsXFwhBthIlCV8N0hTzOj1Qrgnx/WiuDk5qXSKOHisyqVBv8sGLOUTBy0Fdz1SobZ9+WGu5+5EiJm78MZcgtHXHu1GPuImANifbSaDJpIGKItq0V5WhpLXyQC7o0Vt70sGQboVAAAAFQDeu+6APBWXtqq2Ch+nODn7VDSIhQAAAIA5iGHYbztSq8KnWj1J/6GTvsPp1JFqZ3hFX5wlGIV4XxBdeEZnCPrhYJumM7SRjYjWMpW5eqFNs5o3d+rJPFFwDo7yW10WC3Bfpo5xRxU35xf/aFAVbm3vi/HRQvv4cFrwTLvPHgNYGYdZiHXCXPoYIh+WoKT9n3MfrBXB4hpAmwAAAIEArkWuRnbjfPVFpXrWGw6kMPVdhOZr1ghdlG5bY31y4UKUlmHvXx5YZ776dSRSMJY2u4lS73+SFgwPdkmpgGma/rZdd9gly9T7SiSr/4qXJyS8Muh203xsAU3ukRocY8lsvllKEGiCJmrUTJWmj0UYEDsbqy2k/1Yz2Q/awygyk9c="
> expected-value:
> "AAAAB3NzaC1kc3MAAACBAOpnJ64w3Qo3HkCCODTPpLqPUrDLg0bxWdoae2tsXFwhBthIlCV8N0hTzOj1Qrgnx/WiuDk5qXSKOHisyqVBv8sGLOUTBy0Fdz1SobZ9+WGu5+5EiJm78MZcgtHXHu1GPuImANifbSaDJpIGKItq0V5WhpLXyQC7o0Vt70sGQboVAAAAFQDeu+6APBWXtqq2Ch+nODn7VDSIhQAAAIA5iGHYbztSq8KnWj1J/6GTvsPp1JFqZ3hFX5wlGIV4XxBdeEZnCPrhYJumM7SRjYjWMpW5eqFNs5o3d+rJPFFwDo7yW10WC3Bfpo5xRxU35xf/aFAVbm3vi/HRQvv4cFrwTLvPHgNYGYdZiHXCXPoYIh+WoKT9n3MfrBXB4hpAmwAAAIEArkWuRnbjfPVFpXrWGw6kMPVdhOZr1ghdlG5bY31y4UKUlmHvXx5YZ776dSRSMJY2u4lS73+SFgwPdkmpgGma/rZdd9gly9T7SiSr/4qXJyS8Muh203xsAU3ukRocY8lsvllKEGiCJmrUTJWmj0UYEDsbqy2k/1Yz2Q/awygyk9c="
> Test begin:
> test-name: "string->public-key, ECDSA"
> source-file: "tests/key.scm"
> source-line: 142
> source-form: (test-equal "string->public-key, ECDSA" (if (string=? (cadr
> (string-split (get-libssh-version) #\.)) "9") (public-key->string
> (string->public-key %ecdsakey-pub-string (quote ecdsa-p256)))
> (public-key->string (string->public-key %ecdsakey-pub-string (quote ecdsa))))
> %ecdsakey-pub-string)
> Test end:
> result-kind: pass
> actual-value:
> "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHcpje/fp21KjuZFKgmKAAwHeYJ6e3ny4LwEVjZr8hOCVlBvqj7/krVqxbwZI7EcowbpYI1F8ZszS7zfUhKT3U4="
> expected-value:
> "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHcpje/fp21KjuZFKgmKAAwHeYJ6e3ny4LwEVjZr8hOCVlBvqj7/krVqxbwZI7EcowbpYI1F8ZszS7zfUhKT3U4="
> Test begin:
> test-name: "string->public-key, RSA, gc test"
> source-file: "tests/key.scm"
> source-line: 148
> source-form: (test-assert "string->public-key, RSA, gc test" (begin
> (set-log-userdata! "string->public-key, RSA, gc test") (let ((max-keys 1000))
> (do ((idx 1 (+ idx 1))) ((> idx max-keys)) (when (zero? (euclidean-remainder
> idx 100)) (format-log/scm (quote nolog) "" (format #f "~d / ~d keys created
> ..." idx max-keys))) (public-key->string (string->public-key
> %rsakey-pub-string (quote rsa)))) #t)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "make-keypair"
> source-file: "tests/key.scm"
> source-line: 159
> source-form: (test-assert "make-keypair" (begin (set-log-userdata!
> "make-keypair") (and (let ((key (make-keypair (quote rsa) 1024))) (and (key?
> key) (eq? (get-key-type key) (quote rsa)))) (let ((key (make-keypair (quote
> dss) 1024))) (and (key? key) (eq? (get-key-type key) (quote dss))))
> (when-openssl (let ((key (make-keypair (quote ecdsa) 256))) (and (key? key)
> (or (eq? (get-key-type key) (quote ecdsa)) (eq? (get-key-type key) (quote
> ecdsa-p256)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: key
> # of expected passes 16
> FAIL key.scm (exit status: 1)
>
> FAIL: tunnel
> ============
>
> %%%% Starting test tunnel
> Group begin: tunnel
> Test begin:
> test-name: "port forwarding, direct"
> source-file: "tests/tunnel.scm"
> source-line: 65
> source-form: (test-assert "port forwarding, direct" (begin
> (set-log-userdata! "port forwarding, direct") (equal? (run-client-test
> (lambda (server) (start-server/dt-test server (lambda (%%%% Starting test
> tunnel (Writing full log to "tunnel.log")
> # of expected passes 5
> on/tunnel (lambda (session) (call-with-forward-channel session (lambda
> (channel) (write-line %test-string channel) (poll channel read-line)))))))
> %test-string)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "port forwarding, direct, disconnected session"
> source-file: "tests/tunnel.scm"
> source-line: 82
> source-form: (test-assert "port forwarding, direct, disconnected session"
> (begin (set-log-userdata! "port forwarding, direct, disconnected session")
> (catch #t (lambda () (run-client-test (lambda (server) (start-server/dt-test
> server (lambda (channel) (write-line (read-line channel) channel)))) (lambda
> () (call-with-connected-session/tunnel (lambda (session) (disconnect!
> session) (call-with-forward-channel session (const #f)))))) #f) (const #t))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "make-tunnel"
> source-file: "tests/tunnel.scm"
> source-line: 98
> source-form: (test-assert "make-tunnel" (begin (set-log-userdata!
> "make-tunnel") (run-client-test (lambda (server) (start-server/dt-test server
> (lambda (channel) (write-line (read-line channel) channel)))) (lambda ()
> (call-with-connected-session/tunnel (lambda (session) (let* ((local-port
> (get-unused-port)) (remote-host "www.example.org") (tunnel (make-tunnel
> session #:port local-port #:host remote-host))) (and (eq? (tunnel-session
> tunnel) session) (string=? (tunnel-bind-address tunnel) "127.0.0.1") (eq?
> (tunnel-port tunnel) local-port) (eq? (tunnel-host-port tunnel) local-port)
> (eq? (tunnel-host tunnel) remote-host) (eq? (tunnel-reverse? tunnel)
> #f)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "call-with-ssh-forward"
> source-file: "tests/tunnel.scm"
> source-line: 150
> source-form: (test-assert "call-with-ssh-forward" (begin (set-log-userdata!
> "call-with-ssh-forward") (equal? (run-client-test (lambda (server)
> (start-server/exec server (lambda (channel) (write-line (read-line channel)
> channel)))) (lambda () (call-with-connected-session/tunnel (lambda (session)
> (let* ((local-port (get-unused-port)) (remote-host "www.example.org") (tunnel
> (make-tunnel session #:port local-port #:host remote-host))) (let ((result
> (call-with-ssh-forward tunnel (lambda (channel) (write-line %test-string
> channel) (poll channel read-line))))) (disconnect! session) result))))))
> %test-string)))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "channel-{listen,cancel}-forward"
> source-file: "tests/tunnel.scm"
> source-line: 175
> source-form: (test-assert "channel-{listen,cancel}-forward" (begin
> (set-log-userdata! "channel-{listen,cancel}-forward") (run-client-test
> (lambda (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/tunnel (lambda (session) (let ((portnum
> (get-unused-port))) (and (receive (result pnum) (channel-listen-forward
> session #:address "localhost" #:port portnum) (and (equal? result (quote ok))
> (= pnum portnum))) (eq? (channel-cancel-forward session "localhost" portnum)
> (quote ok))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: tunnel
> # of expected passes 5
> FAIL tunnel.scm (exit status: 1)
>
> FAIL: dist
> ==========
>
> Backtrace:
> 4 (primitive-load "/<<BUILDDIR>>/guile-ssh-0.13…")
> In ice-9/eval.scm:
> 191:35 3 (_ #f)
> 196:35 2 (_ #f)
> 263:9 1 (_ #(#(#<directory (guile-user) 7f6ea6251c80>) #f))
> 155:9 0 (_ _)
>
> ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #f
> %%%% Starting test dist (Writing full log to "dist.log")
> # of expected passes 19
> est end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "split, 1"
> source-file: "tests/dist.scm"
> source-line: 57
> source-form: (test-equal "split, 1" (quote ((a b) (c d) (e f g))) (split
> (quote (a b c d e f g)) 3))
> Test end:
> result-kind: pass
> actual-value: ((a b) (c d) (e f g))
> expected-value: ((a b) (c d) (e f g))
> Test begin:
> test-name: "split, 2"
> source-file: "tests/dist.scm"
> source-line: 61
> source-form: (test-equal "split, 2" (quote ((a))) (split (quote (a)) 2))
> Test end:
> result-kind: pass
> actual-value: ((a))
> expected-value: ((a))
> Test begin:
> test-name: "make-job"
> source-file: "tests/dist.scm"
> source-line: 66
> source-form: (test-assert "make-job" (begin (set-log-userdata! "make-job")
> (run-client-test (lambda (server) (start-server/exec server (const #f)))
> (lambda () (call-with-connected-session/shell (lambda (session) (let* ((node
> (make-node session)) (data (quote (1 2 3))) (proc (quote (lambda (n) (#{1+}#
> n)))) (j (make-job (quote map) node data proc))) (and (eq? (job-type j)
> (quote map)) (eq? (job-node j) node) (eq? (job-data j) data) (eq? (job-proc
> j) proc)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "set-job-node"
> source-file: "tests/dist.scm"
> source-line: 85
> source-form: (test-assert "set-job-node" (begin (set-log-userdata!
> "set-job-node") (run-client-test (lambda (server) (start-server/exec server
> (const #t))) (lambda () (call-with-connected-session/shell (lambda (session)
> (let* ((n1 (make-node session)) (n2 (make-node session)) (data (quote ()))
> (proc (quote (lambda (n) (#{1+}# n)))) (j1 (make-job (quote map) n1 data
> proc)) (j2 (set-job-node j1 n2))) (and (not (eq? j1 j2)) (eq? (job-type j1)
> (job-type j2)) (eq? (job-node j1) n1) (eq? (job-node j2) n2) (eq? (job-data
> j1) (job-data j2)) (eq? (job-proc j1) (job-proc j2))))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "hand-out-job, invalid type"
> source-file: "tests/dist.scm"
> source-line: 107
> source-form: (test-assert "hand-out-job, invalid type" (begin
> (set-log-userdata! "hand-out-job, invalid type") (catch #t (lambda ()
> (run-client-test (lambda (server) (start-server/exec server (const #t)))
> (lambda () (call-with-connected-session/shell (lambda (session) (let ((n
> (make-node session))) (hand-out-job (make-job (quote invalid-job) n (quote
> ()) (const #t)))))))) #f) (const #t))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "assign-eval"
> source-file: "tests/dist.scm"
> source-line: 120
> source-form: (test-assert "assign-eval" (begin (set-log-userdata!
> "assign-eval") (run-client-test (lambda (server) (start-server/exec server
> (const #t))) (lambda () (call-with-connected-session/shell (lambda (session)
> (let* ((nodes (make-list 2 (make-node session))) (exprs (make-list 10 (quote
> (lambda (x) (#{1+}# x))))) (jobs (assign-eval nodes exprs))) (and (eq?
> (length jobs) 2) (eq? (job-type (car jobs)) (quote eval)) (eq? (length
> (job-proc (car jobs))) 5)))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result"
> source-file: "tests/dist.scm"
> source-line: 141
> source-form: (test-assert "rrepl-get-result" (receive (result eval-num
> module-name lang) (call-with-input-string "scheme@(guile-user)> $0 = test"
> rrepl-get-result) (and (eq? result (quote test)) (= eval-num 0) (string=?
> module-name "(guile-user)") (string=? lang "scheme"))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, unspecified"
> source-file: "tests/dist.scm"
> source-line: 150
> source-form: (test-assert "rrepl-get-result, unspecified" (receive (result
> eval-num module-name lang) (call-with-input-string "scheme@(guile-user)> "
> rrepl-get-result) (and (eq? result *unspecified*) (eq? eval-num
> *unspecified*) (string=? module-name "(guile-user)") (string=? lang
> "scheme"))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, error"
> source-file: "tests/dist.scm"
> source-line: 159
> source-form: (test-assert "rrepl-get-result, error" (begin
> (set-log-userdata! "rrepl-get-result, error") (catch #t (lambda ()
> (call-with-input-string "scheme@(guile-user)> ERROR: error."
> rrepl-get-result) #f) (lambda (key . args) (if (equal? key (quote
> node-repl-error)) (let* ((message (cadr args)) (result (string=? message
> "scheme@(guile-user)> ERROR: error."))) (unless result (format-log/scm (quote
> nolog) "rrepl-get-result, error" (string-append "Messages do not match: "
> "expected \"~a\", got \"~a\"") result "scheme@(guile-user)> ERROR: error."))
> result) (begin (format-log/scm (quote nolog) "rrepl-get-result, error"
> (string-append "Errors do not match: " "expected '~a', got '~a' (args: ~a)")
> (quote node-repl-error) key args) #f))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, compilation error"
> source-file: "tests/dist.scm"
> source-line: 165
> source-form: (test-assert "rrepl-get-result, compilation error" (begin
> (set-log-userdata! "rrepl-get-result, compilation error") (catch #t (lambda
> () (call-with-input-string (string-append "scheme@(guile-user)> While
> compiling expression:\n" "ERROR: no code for module
> (module-that-doesnt-exist)") rrepl-get-result) #f) (lambda (key . args) (if
> (equal? key (quote node-repl-error)) (let* ((message (cadr args)) (result
> (string=? message "scheme@(guile-user)> While compiling expression:\nERROR:
> no code for module (module-that-doesnt-exist)"))) (unless result
> (format-log/scm (quote nolog) "rrepl-get-result, compilation error"
> (string-append "Messages do not match: " "expected \"~a\", got \"~a\"")
> result "scheme@(guile-user)> While compiling expression:\nERROR: no code for
> module (module-that-doesnt-exist)")) result) (begin (format-log/scm (quote
> nolog) "rrepl-get-result, compilation error" (string-append "Errors do not
> match: " "expected '~a', got '~a' (args: ~a)") (quote node-repl-error) key
> args) #f))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, unbound variable error"
> source-file: "tests/dist.scm"
> source-line: 172
> source-form: (test-assert "rrepl-get-result, unbound variable error" (begin
> (set-log-userdata! "rrepl-get-result, unbound variable error") (catch #t
> (lambda () (call-with-input-string (string-append (string-append
> "scheme@(guile-user)> ;;; socket:9:7: warning: " "possibly unbound variable
> `e'\nsocket:9:7: " "In procedure #<procedure 1a44920 at socket:9:7 ()>:\n"
> "socket:9:7: In procedure module-lookup: Unbound variable: e"))
> rrepl-get-result) #f) (lambda (key . args) (if (equal? key (quote
> node-repl-error)) (let* ((message (cadr args)) (result (string=? message
> "scheme@(guile-user)> ;;; socket:9:7: warning: possibly unbound variable
> `e'\nsocket:9:7: In procedure #<procedure 1a44920 at socket:9:7
> ()>:\nsocket:9:7: In procedure module-lookup: Unbound variable: e"))) (unless
> result (format-log/scm (quote nolog) "rrepl-get-result, unbound variable
> error" (string-append "Messages do not match: " "expected \"~a\", got
> \"~a\"") result "scheme@(guile-user)> ;;; socket:9:7: warning: possibly
> unbound variable `e'\nsocket:9:7: In procedure #<procedure 1a44920 at
> socket:9:7 ()>:\nsocket:9:7: In procedure module-lookup: Unbound variable:
> e")) result) (begin (format-log/scm (quote nolog) "rrepl-get-result, unbound
> variable error" (string-append "Errors do not match: " "expected '~a', got
> '~a' (args: ~a)") (quote node-repl-error) key args) #f))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, unknown # object error"
> source-file: "tests/dist.scm"
> source-line: 185
> source-form: (test-assert "rrepl-get-result, unknown # object error" (begin
> (set-log-userdata! "rrepl-get-result, unknown # object error") (catch #t
> (lambda () (call-with-input-string (string-append "scheme@(guile-user)> $4 =
> " "#<session #<undefined>@#<undefined>:22 (disconnected) 453fff>")
> rrepl-get-result) #f) (lambda (key . args) (if (equal? key (quote
> node-repl-error)) (let* ((message (cadr args)) (result (string=? message
> "Reader error: scm_lreadr: #<unknown port>:1:3: Unknown # object: (#\\<):
> scheme@(guile-user)> $4 = #<session #<undefined>@#<undefined>:22
> (disconnected) 453fff>"))) (unless result (format-log/scm (quote nolog)
> "rrepl-get-result, unknown # object error" (string-append "Messages do not
> match: " "expected \"~a\", got \"~a\"") result "Reader error: scm_lreadr:
> #<unknown port>:1:3: Unknown # object: (#\\<): scheme@(guile-user)> $4 =
> #<session #<undefined>@#<undefined>:22 (disconnected) 453fff>")) result)
> (begin (format-log/scm (quote nolog) "rrepl-get-result, unknown # object
> error" (string-append "Errors do not match: " "expected '~a', got '~a' (args:
> ~a)") (quote node-repl-error) key args) #f))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, elisp"
> source-file: "tests/dist.scm"
> source-line: 194
> source-form: (test-assert "rrepl-get-result, elisp" (receive (result
> eval-num module-name lang) (call-with-input-string "elisp@(guile-user)> $0 =
> #nil" rrepl-get-result) (and (eq? result (quote #nil)) (= eval-num 0)
> (string=? module-name "(guile-user)") (string=? lang "elisp"))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-get-result, multiple values"
> source-file: "tests/dist.scm"
> source-line: 203
> source-form: (test-assert "rrepl-get-result, multiple values" (receive
> (result eval-num module-name lang) (call-with-input-string
> "scheme@(guile-user)> $0 = v1\n$1 = v2" rrepl-get-result) (and (vector?
> eval-num) (vector? result) (eq? (vector-ref result 0) (quote v1)) (eq?
> (vector-ref result 1) (quote v2)) (= (vector-ref eval-num 0) 0) (=
> (vector-ref eval-num 1) 1) (string=? module-name "(guile-user)") (string=?
> lang "scheme"))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-skip-to-prompt, valid input"
> source-file: "tests/dist.scm"
> source-line: 217
> source-form: (test-assert "rrepl-skip-to-prompt, valid input" (begin
> (call-with-input-string "Enter `,help' for help." (lambda (port)
> (rrepl-skip-to-prompt port))) #t))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "rrepl-skip-to-prompt, invalid input"
> source-file: "tests/dist.scm"
> source-line: 224
> source-form: (test-assert "rrepl-skip-to-prompt, invalid input" (begin
> (set-log-userdata! "rrepl-skip-to-prompt, invalid input") (catch #t (lambda
> () (call-with-input-string "invalid input" (lambda (port)
> (rrepl-skip-to-prompt port))) #f) (lambda (key . args) (let ((result (equal?
> key (quote node-error)))) (unless result (format-log/scm (quote nolog)
> "rrepl-skip-to-prompt, invalid input" (string-append "Errors do not match: "
> "expected ~a, got ~a (args: ~a)") (quote node-error) key args)) result)))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "node-guile-version, valid response"
> source-file: "tests/dist.scm"
> source-line: 229
> source-form: (test-assert "node-guile-version, valid response" (begin
> (set-log-userdata! "node-guile-version, valid response") (run-client-test
> (lambda (server) (start-server/exec server (const #t))) (lambda ()
> (call-with-connected-session/shell (lambda (session) (format-log/scm (quote
> nolog) "client" "session: ~a" session) (let ((n (make-node session)))
> (string=? (node-guile-version n) "GNU Guile 2.2.3"))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Test begin:
> test-name: "with-ssh"
> source-file: "tests/dist.scm"
> source-line: 249
> source-form: (test-assert "with-ssh" (begin (set-log-userdata! "with-ssh")
> (run-client-test (lambda (server) (start-server/exec server (lambda (session
> message channel) (let ((line (read-line channel))) (format-log/scm (quote
> nolog) "with-ssh" "client request: ~A" line) (write-line "$1 = 42\n"
> channel))))) (lambda () (call-with-connected-session/shell (lambda (session)
> (format-log/scm (quote nolog) "client" "session: ~a" session) (let ((n
> (make-node session))) (= (with-ssh n (+ 21 21)) 42))))))))
> Test end:
> result-kind: pass
> actual-value: #t
> Group end: dist
> # of expected passes 19
> FAIL dist.scm (exit status: 1)
>
> ============================================================================
> Testsuite summary for Guile-SSH 0.13.1
> ============================================================================
> # TOTAL: 11
> # PASS: 0
> # SKIP: 0
> # XFAIL: 0
> # FAIL: 11
> # XPASS: 0
> # ERROR: 0
> ============================================================================
> See tests/test-suite.log
> Please report to poptsov.art...@gmail.com
> ============================================================================
> make[5]: *** [Makefile:678: test-suite.log] Error 1
> make[5]: Leaving directory '/<<PKGBUILDDIR>>/debian/build/guile-3.0/tests'
> make[4]: *** [Makefile:786: check-TESTS] Error 2
> make[4]: Leaving directory '/<<PKGBUILDDIR>>/debian/build/guile-3.0/tests'
> make[3]: *** [Makefile:852: check-am] Error 2
> make[3]: Leaving directory '/<<PKGBUILDDIR>>/debian/build/guile-3.0/tests'
> make[2]: *** [Makefile:422: check-recursive] Error 1
> make[2]: Leaving directory '/<<PKGBUILDDIR>>/debian/build/guile-3.0'
> dh_auto_test: error: cd debian/build/guile-3.0 && make -j1 check VERBOSE=1
> returned exit code 2
The full build log is available from:
http://qa-logs.debian.net/2021/02/13/guile-ssh_0.13.1-3_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with me
so that we can identify if something relevant changed in the meantime.
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
--- End Message ---