work in progress: server - move start / stop functionality to server package
This commit is contained in:
parent
1d08d653e9
commit
9f1e1cc3ce
3 changed files with 28 additions and 15 deletions
|
@ -5,4 +5,5 @@
|
||||||
(setf *config*
|
(setf *config*
|
||||||
(make-instance 'config:root :env-keys '(:address :port)))
|
(make-instance 'config:root :env-keys '(:address :port)))
|
||||||
|
|
||||||
(make-instance 'server:config :parent *config*)
|
(make-instance 'server:config :parent *config*
|
||||||
|
:port "8899")
|
||||||
|
|
|
@ -13,18 +13,16 @@
|
||||||
(defvar *config* nil)
|
(defvar *config* nil)
|
||||||
|
|
||||||
(defun run ()
|
(defun run ()
|
||||||
(let ((t:*test-suite* (t:test-suite "web")))
|
(let ((t:*test-suite* (t:test-suite "web"))
|
||||||
|
(*config* nil)
|
||||||
|
(server:*listener* nil))
|
||||||
(load (t:test-path "config-web" "etc"))
|
(load (t:test-path "config-web" "etc"))
|
||||||
(test-server)
|
(let ((cfg (car (config:children *config*))))
|
||||||
|
(test-server-config cfg)
|
||||||
|
(server:start cfg))
|
||||||
|
(sleep 1)
|
||||||
|
(server:stop)
|
||||||
(t:show-result)))
|
(t:show-result)))
|
||||||
|
|
||||||
(defun app (env)
|
(t:deftest test-server-config (cfg)
|
||||||
'(200 (:content-type "text/plain") ("Hello World!")))
|
(== (parse-integer (server:port cfg)) 8899))
|
||||||
|
|
||||||
(t:deftest test-server ()
|
|
||||||
(let ((cfg (car (config:children *config*))))
|
|
||||||
(== (parse-integer (server:port cfg)) 8888)
|
|
||||||
(setf server:*server*
|
|
||||||
(clack:clackup #'app
|
|
||||||
:port (parse-integer (server:port cfg))
|
|
||||||
:address (server:address cfg)))))
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
(:use :common-lisp)
|
(:use :common-lisp)
|
||||||
(:local-nicknames (:config :scopes/config))
|
(:local-nicknames (:config :scopes/config))
|
||||||
(:export #:config #:address #:port
|
(:export #:config #:address #:port
|
||||||
#:*server*))
|
#:*listener* #:start #:stop))
|
||||||
|
|
||||||
(in-package :scopes/web/server)
|
(in-package :scopes/web/server)
|
||||||
|
|
||||||
|
@ -15,4 +15,18 @@
|
||||||
(defmethod initialize-instance :after ((cfg config) &key &allow-other-keys)
|
(defmethod initialize-instance :after ((cfg config) &key &allow-other-keys)
|
||||||
(config:hash-to-slots (config:env-data cfg) cfg '(address port)))
|
(config:hash-to-slots (config:env-data cfg) cfg '(address port)))
|
||||||
|
|
||||||
(defvar *server* nil)
|
;;;; listener = server process
|
||||||
|
|
||||||
|
(defvar *listener* nil)
|
||||||
|
|
||||||
|
(defun app (env)
|
||||||
|
'(200 (:content-type "text/plain") ("Hello World!")))
|
||||||
|
|
||||||
|
(defun start (cfg)
|
||||||
|
(setf *listener*
|
||||||
|
(clack:clackup #'app
|
||||||
|
:port (parse-integer (port cfg))
|
||||||
|
:address (address cfg))))
|
||||||
|
|
||||||
|
(defun stop ()
|
||||||
|
(clack:stop *listener*))
|
||||||
|
|
Loading…
Add table
Reference in a new issue