summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-12-27 16:47:57 -0800
committerelijah <elijah@riseup.net>2013-12-27 16:47:57 -0800
commit71f2d1b0b7db6bb35dd6bd9220795aed3174d90b (patch)
treebde7aab81c42141f0f77897349224c74d4b7af51 /tests
parentd86e34564cda2d28fd42d10e584184af7e8b7553 (diff)
added more network tests and pgrep test helper
Diffstat (limited to 'tests')
-rw-r--r--tests/white-box/couchdb.rb9
-rw-r--r--tests/white-box/network.rb20
2 files changed, 23 insertions, 6 deletions
diff --git a/tests/white-box/couchdb.rb b/tests/white-box/couchdb.rb
index 3abddefc..c83e5714 100644
--- a/tests/white-box/couchdb.rb
+++ b/tests/white-box/couchdb.rb
@@ -3,6 +3,7 @@ raise SkipTest unless $node["services"].include?("couchdb")
require 'json'
class TestCouchdb < LeapTest
+ depends_on "TestNetwork"
def setup
end
@@ -10,7 +11,7 @@ class TestCouchdb < LeapTest
#
# check to make sure we can get welcome response from local couchdb
#
- def test_01_is_running
+ def test_01_couch_is_running
assert_get(couchdb_url) do |body|
assert_match /"couchdb":"Welcome"/, body, "Could not get welcome message from #{couchdb_url}. Probably couchdb is not running."
end
@@ -39,7 +40,7 @@ class TestCouchdb < LeapTest
#
# this seems backward to me, so it might be the other way around.
#
- def test_03_replica_membership
+ def test_03_replica_membership_is_kosher
url = couchdb_url("/_membership")
assert_get(url) do |body|
response = JSON.parse(body)
@@ -64,12 +65,12 @@ class TestCouchdb < LeapTest
response = JSON.parse(body)
assert_equal 6, response['total_rows']
actual_users = response['rows'].map{|row| row['id'].sub(/^org.couchdb.user:/, '') }
- assert_equal acl_users, actual_users
+ assert_equal acl_users.sort, actual_users.sort
end
pass
end
- def test_05_databases_exist
+ def test_05_required_databases_exist
dbs_that_should_exist = ["customers","identities","keycache","sessions","shared","tickets","tokens","users"]
dbs_that_should_exist.each do |db_name|
assert_get(couchdb_url("/"+db_name)) do |body|
diff --git a/tests/white-box/network.rb b/tests/white-box/network.rb
index 02eb80ca..53df80dc 100644
--- a/tests/white-box/network.rb
+++ b/tests/white-box/network.rb
@@ -7,6 +7,11 @@ class TestNetwork < LeapTest
def setup
end
+ def test_01_can_connect_to_internet
+ assert_get('http://www.google.com/images/srpr/logo11w.png')
+ pass
+ end
+
#
# example properties:
#
@@ -20,15 +25,24 @@ class TestNetwork < LeapTest
# accept: 15984
# connect: "127.0.0.1:5984"
#
- def test_01_stunnel_is_running
+ def test_02_stunnel_is_running
if $node['stunnel']
+ good_stunnel_pids = []
$node['stunnel'].each do |stunnel_type, stunnel_configs|
if stunnel_type =~ /_clients?$/
- stunnel_configs.values.each do |stunnel_conf|
+ stunnel_configs.each do |stunnel_name, stunnel_conf|
+ config_file_name = "/etc/stunnel/#{stunnel_name}.conf"
+ processes = pgrep(config_file_name)
+ assert_equal 6, processes.length, "There should be six stunnel processes running for `#{config_file_name}`"
+ good_stunnel_pids += processes.map{|ps| ps[:pid]}
assert port = stunnel_conf['accept_port'], 'Field `accept_port` must be present in `stunnel` property.'
assert_tcp_socket('localhost', port)
end
elsif stunnel_type =~ /_server$/
+ config_file_name = "/etc/stunnel/#{stunnel_type}.conf"
+ processes = pgrep(config_file_name)
+ assert_equal 6, processes.length, "There should be six stunnel processes running for `#{config_file_name}`"
+ good_stunnel_pids += processes.map{|ps| ps[:pid]}
assert accept = stunnel_configs['accept'], "Field `accept` must be present in property `stunnel.#{stunnel_type}`"
assert_tcp_socket('localhost', accept)
assert connect = stunnel_configs['connect'], "Field `connect` must be present in property `stunnel.#{stunnel_type}`"
@@ -37,6 +51,8 @@ class TestNetwork < LeapTest
skip "Unknown stunnel type `#{stunnel_type}`"
end
end
+ all_stunnel_pids = pgrep('/usr/bin/stunnel').collect{|process| process[:pid]}.uniq
+ assert_equal good_stunnel_pids.sort, all_stunnel_pids.sort, "There should not be any extra stunnel processes that are not configured in /etc/stunnel"
end
pass
end