tests: tor: Add more test cases.
* gnu/tests/networking.scm (%tor-os/unix-socks-socket): New variable. (run-tor-test) <os/unix-socks-socket, marionette/unix-socks-socket> <socket-directory>: New variables. <"tor is alive">: Move common code from this test case... <tor-is-alive?>: ...into this new procedure. <"tor is listening", "tor is alive, even when using a SOCKS socket"> <"tor is listening, even when using a SOCKS socket">: New test cases.
This commit is contained in:
parent
cb29343940
commit
b0f951e4f0
|
@ -1,6 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
|
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -349,12 +350,29 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||||
(simple-operating-system
|
(simple-operating-system
|
||||||
(tor-service)))
|
(tor-service)))
|
||||||
|
|
||||||
|
(define %tor-os/unix-socks-socket
|
||||||
|
(simple-operating-system
|
||||||
|
(service tor-service-type
|
||||||
|
(tor-configuration
|
||||||
|
(config-file
|
||||||
|
(plain-file "test-torrc"
|
||||||
|
"\
|
||||||
|
SocksPort unix:/var/run/tor/socks-sock
|
||||||
|
UnixSocksGroupWritable 1
|
||||||
|
")
|
||||||
|
)))))
|
||||||
|
|
||||||
(define (run-tor-test)
|
(define (run-tor-test)
|
||||||
(define os
|
(define os
|
||||||
(marionette-operating-system %tor-os
|
(marionette-operating-system %tor-os
|
||||||
#:imported-modules '((gnu services herd))
|
#:imported-modules '((gnu services herd))
|
||||||
#:requirements '(tor)))
|
#:requirements '(tor)))
|
||||||
|
|
||||||
|
(define os/unix-socks-socket
|
||||||
|
(marionette-operating-system %tor-os/unix-socks-socket
|
||||||
|
#:imported-modules '((gnu services herd))
|
||||||
|
#:requirements '(tor)))
|
||||||
|
|
||||||
(define test
|
(define test
|
||||||
(with-imported-modules '((gnu build marionette))
|
(with-imported-modules '((gnu build marionette))
|
||||||
#~(begin
|
#~(begin
|
||||||
|
@ -366,12 +384,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||||
(define marionette
|
(define marionette
|
||||||
(make-marionette (list #$(virtual-machine os))))
|
(make-marionette (list #$(virtual-machine os))))
|
||||||
|
|
||||||
(mkdir #$output)
|
(define (tor-is-alive? marionette)
|
||||||
(chdir #$output)
|
|
||||||
|
|
||||||
(test-begin "tor")
|
|
||||||
|
|
||||||
(test-assert "tor is alive"
|
|
||||||
(marionette-eval
|
(marionette-eval
|
||||||
'(begin
|
'(begin
|
||||||
(use-modules (gnu services herd)
|
(use-modules (gnu services herd)
|
||||||
|
@ -383,6 +396,40 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||||
(current-services))))
|
(current-services))))
|
||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
|
(mkdir #$output)
|
||||||
|
(chdir #$output)
|
||||||
|
|
||||||
|
(test-begin "tor")
|
||||||
|
|
||||||
|
;; Test the usual Tor service.
|
||||||
|
|
||||||
|
(test-assert "tor is alive"
|
||||||
|
(tor-is-alive? marionette))
|
||||||
|
|
||||||
|
(test-assert "tor is listening"
|
||||||
|
(let ((default-port 9050))
|
||||||
|
(wait-for-tcp-port default-port marionette)))
|
||||||
|
|
||||||
|
;; Don't run two VMs at once.
|
||||||
|
(marionette-control "quit" marionette)
|
||||||
|
|
||||||
|
;; Test the Tor service using a SOCKS socket.
|
||||||
|
|
||||||
|
(let* ((socket-directory "/tmp/more-sockets")
|
||||||
|
(_ (mkdir socket-directory))
|
||||||
|
(marionette/unix-socks-socket
|
||||||
|
(make-marionette
|
||||||
|
(list #$(virtual-machine os/unix-socks-socket))
|
||||||
|
;; We can't use the same socket directory as the first
|
||||||
|
;; marionette.
|
||||||
|
#:socket-directory socket-directory)))
|
||||||
|
(test-assert "tor is alive, even when using a SOCKS socket"
|
||||||
|
(tor-is-alive? marionette/unix-socks-socket))
|
||||||
|
|
||||||
|
(test-assert "tor is listening, even when using a SOCKS socket"
|
||||||
|
(wait-for-unix-socket "/var/run/tor/socks-sock"
|
||||||
|
marionette/unix-socks-socket)))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue