summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2016-09-16 12:56:13 +0200
committerAzul <azul@riseup.net>2016-09-16 14:06:09 +0200
commitb2ddc9ffa9fdc880ca301817d59277343005fd5d (patch)
treea97f0608e4293d03a2c387c1ea250c725a550030
parentc9f785d3c4adb780bd61d8f5e3fd6414915cca0a (diff)
bugfix: load order issue in server, include test
Includes our first functional test. This one only makes sure loading the bin/nickserver actually works fine. Enough to catch this bug.
-rw-r--r--.gitlab-ci.yml1
-rwxr-xr-xbin/nickserver2
-rw-r--r--lib/nickserver/server.rb6
-rw-r--r--test/functional/bin_test.rb24
-rw-r--r--test/remote/Readme.md15
5 files changed, 44 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 14e56a7..024fb9f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,6 +21,7 @@ before_script:
- curl -s couchdb:5984
- gem install bundler --no-ri --no-rdoc
- bundle install -j $(nproc) --path vendor
+ - bundle exec ruby /builds/leap/nickserver/bin/nickserver version
test:
script:
diff --git a/bin/nickserver b/bin/nickserver
index c56cc76..b77369c 100755
--- a/bin/nickserver
+++ b/bin/nickserver
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby
+#!/usr/bin/env ruby
#
# Nickserver key discovery daemon
diff --git a/lib/nickserver/server.rb b/lib/nickserver/server.rb
index 11e7012..2139029 100644
--- a/lib/nickserver/server.rb
+++ b/lib/nickserver/server.rb
@@ -1,9 +1,9 @@
-require 'nickserver/config'
-require 'nickserver/reel_server'
-
require 'kernel_ext'
require 'json'
+require 'nickserver/config'
+require 'nickserver/reel_server'
+
#
# This is the main HTTP server that clients connect to in order to fetch keys
#
diff --git a/test/functional/bin_test.rb b/test/functional/bin_test.rb
new file mode 100644
index 0000000..bc15e38
--- /dev/null
+++ b/test/functional/bin_test.rb
@@ -0,0 +1,24 @@
+require 'minitest/autorun'
+require 'minitest/pride'
+require 'minitest/hell'
+
+class BinTest < Minitest::Test
+
+ def test_bin_loading
+ assert_command_runs("version")
+ assert_equal 0, $?.exitstatus
+ end
+
+ protected
+
+ def assert_command_runs(command)
+ out = `#{path_to_executable} #{command} 2>&1`
+ assert ($?.exitstatus == 0),
+ "failed to run 'nickserver #{command}':\n #{out}"
+ end
+
+ def path_to_executable
+ File.expand_path(File.dirname(__FILE__) + '/../../bin/nickserver')
+ end
+
+end
diff --git a/test/remote/Readme.md b/test/remote/Readme.md
new file mode 100644
index 0000000..957ea12
--- /dev/null
+++ b/test/remote/Readme.md
@@ -0,0 +1,15 @@
+Integration tests for clients of remote services
+================================================
+
+The tests in this directory are integration test with remote services. However
+we aims at testing the client side of the equation as that is what we control
+here.
+
+So unexpected server behavious should *crash* the test if we are not dealing
+with it properly yet and have no unit test for it.
+
+Server responses that we do not expect but handle in the code and test in unit
+tests make the test *skip*.
+
+The Behaviour we would normally expect should make the test *pass*
+