|
@@ -0,0 +1,36 @@
|
|
|
+
|
|
|
+local civet = {}
|
|
|
+
|
|
|
+civet.port=12345
|
|
|
+
|
|
|
+function civet.start(docroot)
|
|
|
+ -- TODO: use a property
|
|
|
+ docroot = docroot or 'test/ci_tests/01_basic/docroot'
|
|
|
+ assert(io.popen('./civetweb'
|
|
|
+ .. " -listening_ports " .. civet.port
|
|
|
+ .. " -document_root " .. docroot
|
|
|
+ .. " > /dev/null 2>&1 &"
|
|
|
+ ))
|
|
|
+ -- wait until the server is listening (TODO: Linux only)
|
|
|
+ while true do
|
|
|
+ local f = assert(io.popen('netstat -an | grep '
|
|
|
+ .. civet.port .. ' | grep -i listen'))
|
|
|
+ local out = f:read('*all')
|
|
|
+ if string.match(out, civet.port) then break end
|
|
|
+ f:close()
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+function civet.stop()
|
|
|
+ os.execute('killall civetweb')
|
|
|
+ -- wait until the server is listening (TODO: Linux only)
|
|
|
+ while true do
|
|
|
+ local f = assert(io.popen('netstat -an | grep '
|
|
|
+ .. civet.port .. ' | grep -i listen'))
|
|
|
+ local out = f:read('*all')
|
|
|
+ if not string.match(out, civet.port) then break end
|
|
|
+ f:close()
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+return civet
|