summaryrefslogtreecommitdiff
path: root/tests/server-tests/white-box
diff options
context:
space:
mode:
Diffstat (limited to 'tests/server-tests/white-box')
-rw-r--r--tests/server-tests/white-box/couchdb.rb4
-rw-r--r--tests/server-tests/white-box/mx.rb30
-rw-r--r--tests/server-tests/white-box/openvpn.rb42
-rw-r--r--tests/server-tests/white-box/soledad.rb2
-rw-r--r--tests/server-tests/white-box/webapp.rb15
5 files changed, 55 insertions, 38 deletions
diff --git a/tests/server-tests/white-box/couchdb.rb b/tests/server-tests/white-box/couchdb.rb
index 44a2769b..dcf71bc7 100644
--- a/tests/server-tests/white-box/couchdb.rb
+++ b/tests/server-tests/white-box/couchdb.rb
@@ -9,9 +9,9 @@ class CouchDB < LeapTest
end
def test_00_Are_daemons_running?
- assert_running 'bin/beam'
+ assert_running match: 'bin/beam'
if multimaster?
- assert_running 'bin/epmd'
+ assert_running match: 'bin/epmd'
end
pass
end
diff --git a/tests/server-tests/white-box/mx.rb b/tests/server-tests/white-box/mx.rb
index ecc8686c..dfad0eed 100644
--- a/tests/server-tests/white-box/mx.rb
+++ b/tests/server-tests/white-box/mx.rb
@@ -24,16 +24,6 @@ class Mx < LeapTest
pass
end
- def test_02_Can_contact_couchdb_via_haproxy?
- if property('haproxy.couch')
- url = couchdb_url_via_haproxy("", couch_url_options)
- assert_get(url) do |body|
- assert_match /"couchdb":"Welcome"/, body, "Request to #{url} should return couchdb welcome message."
- end
- pass
- end
- end
-
#
# this test picks a random identity document, then queries
# using the by_address view for that same document again.
@@ -52,17 +42,17 @@ class Mx < LeapTest
end
def test_04_Are_MX_daemons_running?
- assert_running '.*/usr/bin/twistd.*mx.tac'
- assert_running '^/usr/lib/postfix/master$'
- assert_running '^/usr/sbin/postfwd'
- assert_running 'postfwd2::cache$'
- assert_running 'postfwd2::policy$'
- assert_running '^/usr/sbin/unbound'
- assert_running '^/usr/bin/freshclam'
- assert_running '^/usr/sbin/opendkim'
+ assert_running match: '.*/usr/bin/twistd.*mx.tac'
+ assert_running match: '^/usr/lib/postfix/master$'
+ assert_running match: '^/usr/sbin/postfwd'
+ assert_running match: 'postfwd2::cache$'
+ assert_running match: 'postfwd2::policy$'
+ assert_running match: '^/usr/sbin/unbound'
+ assert_running match: '^/usr/bin/freshclam'
+ assert_running match: '^/usr/sbin/opendkim'
if Dir.glob("/var/lib/clamav/main.{c[vl]d,inc}").size > 0 and Dir.glob("/var/lib/clamav/daily.{c[vl]d,inc}").size > 0
- assert_running '^/usr/sbin/clamd'
- assert_running '^/usr/sbin/clamav-milter'
+ assert_running match: '^/usr/sbin/clamd'
+ assert_running match: '^/usr/sbin/clamav-milter'
pass
else
skip "Downloading the clamav signature files (/var/lib/clamav/{daily,main}.{c[vl]d,inc}) is still in progress, so clamd is not running."
diff --git a/tests/server-tests/white-box/openvpn.rb b/tests/server-tests/white-box/openvpn.rb
index d5cc2265..adda34a9 100644
--- a/tests/server-tests/white-box/openvpn.rb
+++ b/tests/server-tests/white-box/openvpn.rb
@@ -7,10 +7,46 @@ class OpenVPN < LeapTest
end
def test_01_Are_daemons_running?
- assert_running '^/usr/sbin/openvpn .* /etc/openvpn/tcp_config.conf$'
- assert_running '^/usr/sbin/openvpn .* /etc/openvpn/udp_config.conf$'
- assert_running '^/usr/sbin/unbound'
+ assert_running match: '^/usr/sbin/openvpn .* /etc/openvpn/tcp_config.conf$'
+ assert_running match: '^/usr/sbin/openvpn .* /etc/openvpn/udp_config.conf$'
+ assert_running match: '^/usr/sbin/unbound'
pass
end
+ def test_02_Can_connect_to_openvpn?
+ # because of the way the firewall rules are currently set up, you can only
+ # connect to the standard 1194 openvpn port when you are connecting
+ # from the same host as openvpn is running on.
+ #
+ # so, this is disabled for now:
+ # $node['openvpn']['ports'].each {|port| ...}
+ #
+
+ $node['openvpn']['protocols'].each do |protocol|
+ assert_openvpn_is_bound_to_port($node['openvpn']['gateway_address'], protocol, 1194)
+ end
+ pass
+ end
+
+ private
+
+ #
+ # asserting succeeds if openvpn appears to be correctly bound and we can
+ # connect to it. we don't actually try to establish a vpn connection in this
+ # test, we just check to see that it sort of looks like it is openvpn running
+ # on the port.
+ #
+ def assert_openvpn_is_bound_to_port(ip_address, protocol, port)
+ protocol = protocol.downcase
+ if protocol == 'udp'
+ # this sends a magic string to openvpn to attempt to start the protocol.
+ nc_output = `/bin/echo -e "\\x38\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00" | timeout 0.5 nc -u #{ip_address} #{port}`.strip
+ assert !nc_output.empty?, "Could not connect to OpenVPN daemon at #{ip_address} on port #{port} (#{protocol})."
+ elsif protocol == 'tcp'
+ assert system("openssl s_client -connect #{ip_address}:#{port} 2>&1 | grep -q CONNECTED"),
+ "Could not connect to OpenVPN daemon at #{ip_address} on port #{port} (#{protocol})."
+ else
+ assert false, "invalid openvpn protocol #{protocol}"
+ end
+ end
end
diff --git a/tests/server-tests/white-box/soledad.rb b/tests/server-tests/white-box/soledad.rb
index 7c6918f9..112d6b9b 100644
--- a/tests/server-tests/white-box/soledad.rb
+++ b/tests/server-tests/white-box/soledad.rb
@@ -10,7 +10,7 @@ class Soledad < LeapTest
end
def test_00_Is_Soledad_running?
- assert_running '/usr/bin/python /usr/bin/twistd --uid=soledad --gid=soledad --pidfile=/var/run/soledad.pid.*'
+ assert_running service: 'soledad-server'
pass
end
diff --git a/tests/server-tests/white-box/webapp.rb b/tests/server-tests/white-box/webapp.rb
index da1ec8c5..42adf219 100644
--- a/tests/server-tests/white-box/webapp.rb
+++ b/tests/server-tests/white-box/webapp.rb
@@ -4,6 +4,7 @@ require 'json'
class Webapp < LeapTest
depends_on "Network"
+ depends_on "Soledad" if service?(:soledad)
def setup
end
@@ -16,19 +17,9 @@ class Webapp < LeapTest
pass
end
- def test_02_Can_contact_couchdb_via_haproxy?
- if property('haproxy.couch')
- url = couchdb_url_via_haproxy("", url_options)
- assert_get(url) do |body|
- assert_match /"couchdb":"Welcome"/, body, "Request to #{url} should return couchdb welcome message."
- end
- pass
- end
- end
-
def test_03_Are_daemons_running?
- assert_running '^/usr/sbin/apache2'
- assert_running '^ruby /usr/bin/nickserver'
+ assert_running match: '^/usr/sbin/apache2'
+ assert_running match: 'ruby /usr/bin/nickserver'
pass
end