summary refs log tree commit diff
path: root/gnu/tests/ssh.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2017-10-29 15:59:54 +0100
committerMarius Bakke <mbakke@fastmail.com>2017-11-01 20:29:32 +0100
commit5d7141cd284eac3afe43d800104daffdf65dce52 (patch)
tree88975c3f4b2c0eab2fbf0548b1c570677b59ca69 /gnu/tests/ssh.scm
parent2c16be569c0ed21a44c615fb1285aeacd4ee7480 (diff)
downloadguix-5d7141cd284eac3afe43d800104daffdf65dce52.tar.gz
tests: ssh: Make sure we can run executables from PATH.
* gnu/tests/ssh.scm (run-ssh-test): Add tests for running commands in system
and user profile.
Diffstat (limited to 'gnu/tests/ssh.scm')
-rw-r--r--gnu/tests/ssh.scm28
1 files changed, 28 insertions, 0 deletions
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index 41be360355..6abc6c2501 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -169,6 +170,33 @@ root with an empty password."
                  (call-with-remote-input-file sftp-session witness
                                               read)))))
 
+          ;; Connect to the guest over SSH.  Make sure we can run commands
+          ;; from the system profile.
+          (test-equal "run executables from system profile"
+            #t
+            (call-with-connected-session/auth
+             (lambda (session)
+               (let ((channel (make-channel session)))
+                 (channel-open-session channel)
+                 (channel-request-exec
+                  channel
+                  (string-append
+                   "mkdir -p /root/.guix-profile/bin && "
+                   "touch /root/.guix-profile/bin/path-witness && "
+                   "chmod 755 /root/.guix-profile/bin/path-witness"))
+                 (zero? (channel-get-exit-status channel))))))
+
+          ;; Connect to the guest over SSH.  Make sure we can run commands
+          ;; from the user profile.
+          (test-equal "run executable from user profile"
+            #t
+            (call-with-connected-session/auth
+             (lambda (session)
+               (let ((channel (make-channel session)))
+                 (channel-open-session channel)
+                 (channel-request-exec channel "path-witness")
+                 (zero? (channel-get-exit-status channel))))))
+
           (test-end)
           (exit (= (test-runner-fail-count (test-runner-current)) 0)))))