[SCM] ci-tooling packaging branch, master, updated. f55197dd85b4dc43611ba69d97b19acf06ad922c

Harald Sitter apachelogger-guest at moszumanska.debian.org
Fri Oct 16 08:40:04 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/ci-tooling.git;a=commitdiff;h=03f997d

The following commit has been merged in the master branch:
commit 03f997d0fa343537ef0a24cd27833ea44fd2ccf6
Author: Harald Sitter <sitter at kde.org>
Date:   Fri Oct 16 09:32:30 2015 +0200

    add helper to serve http data so we can fake more stuff
---
 test/lib/serve.rb | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/test/lib/serve.rb b/test/lib/serve.rb
new file mode 100644
index 0000000..d6a140a
--- /dev/null
+++ b/test/lib/serve.rb
@@ -0,0 +1,42 @@
+require 'webrick'
+
+module Test
+  @children = []
+
+  def self.http_serve(dir, port: '9473')
+    case pid = fork
+    when nil # child
+      log = WEBrick::Log.new(nil, WEBrick::BasicLog::FATAL)
+      s = WEBrick::HTTPServer.new(DocumentRoot: dir,
+                                  Port: port,
+                                  AccessLog: [],
+                                  Logger: log)
+      siglist = %w(HUP INT QUIT TERM)
+      siglist &= Signal.list.keys
+      siglist.each do |sig|
+        Signal.trap(sig, proc { s.shutdown })
+      end
+      s.start
+    else # parent
+      @children << pid
+      at_exit { nuke } # Make sure the child dies even on raised error exits.
+      yield
+    end
+  ensure
+    if pid
+      kill(pid)
+      @children.delete(pid)
+    end
+  end
+
+  def self.kill(pid)
+    Process.kill('TERM', pid)
+    Process.waitpid(pid)
+  end
+
+  def self.nuke
+    @children.each do |pid|
+      kill(pid)
+    end
+  end
+end

-- 
ci-tooling packaging



More information about the pkg-kde-commits mailing list