1234567891011121314151617181920212223242526272829303132333435363738394041 |
- socket = require "socket"
- local civet = {}
- civet.port=12345
- civet.max_retry=100
- civet.start_delay=0.1
- 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 answers
- for i=1,civet.max_retry do
- local s = socket.connect('127.0.0.1', civet.port)
- if s then
- s:close()
- break
- end
- socket.select(nil, nil, civet.start_delay) -- sleep
- end
- end
- function civet.stop()
- os.execute('killall civetweb')
- -- wait until the server port closes
- for i=1,civet.max_retry do
- local s = socket.connect('127.0.0.1', civet.port)
- if not s then
- break
- end
- s:close()
- socket.select(nil, nil, civet.start_delay) -- sleep
- end
- end
- return civet
|