| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- socket = require "socket"
 
- local civet = {}
 
- -- default params
 
- civet.port=12345
 
- civet.max_retry=100
 
- civet.start_delay=0.1
 
- function civet.start(docroot)
 
-   -- TODO: use a property
 
-   docroot = docroot or 'ci/test/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
 
 
  |