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.

Reply via email to