blob: 68127e1bb7c631b16dcabb1420be21578b4a2a1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
require 'support/functional_test'
class SampleTest < FunctionalTest
# don't parallize me... Hard to get that right with nickserver start & stop
def run(*args)
nickserver :start
super
ensure
nickserver :stop
end
def test_running
assert_running
end
# def test_invalid
# assert_lookup_status 400, 'invalid'
# end
def test_nicknym
assert_lookup_status 200, 'test@mail.bitmask.net'
end
# Regression Tests
def test_no_file_descriptors_leak
lookup 'test@mail.bitmask.net'
before = open_files_count
lookup 'test@mail.bitmask.net'
assert_equal before, open_files_count, 'Filedescriptors leaked'
assert (before > 0), 'Could not get filedescriptor count'
end
protected
def assert_lookup_status(status, address)
assert_equal status, lookup(address).to_i
end
def lookup(address)
run_command %Q(curl localhost:6425 #{curl_opts} -d "address=#{address}")
end
def curl_opts
'--silent -w "%{http_code}" -o /dev/null'
end
def open_files_count
run_command(%Q(lsof | grep " #{nickserver_pid} " | wc -l)).to_i
end
def run_command(command)
`#{command} 2>&1`.tap do |out|
assert ($?.exitstatus == 0),
"failed to run '#{command}':\n #{out}"
end
end
end
|