From d1c7a5bd9e2a94e3d26dbc3969b36aee8bcc95be Mon Sep 17 00:00:00 2001 From: SANO Masatoshi Date: Sat, 5 Mar 2016 16:12:06 +0900 Subject: [PATCH] test roswell's functions --- .travis.yml | 3 ++- roswell-test.asd | 19 +++++++++++++++++++ t/ros.lisp | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 roswell-test.asd create mode 100644 t/ros.lisp diff --git a/.travis.yml b/.travis.yml index bec063e..2f0bbd4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -86,7 +86,8 @@ script: - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then ros version; fi - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then ros version=t run; fi - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then ros config; fi - - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then ros -s prove-asdf -s quri-test -e "(asdf:test-system :quri-test)"; fi + - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then ros install prove; fi + - if [ "$METHOD" = "brew" ] || [ "$METHOD" = "ci" ]; then run-prove roswell-test.asd; fi - if [ "$METHOD" = "ci" ]; then ros -q run && [`ros -q run 2>&1` == ""]; fi - if [ "$METHOD" = "ci" ] && [ "$LISP" = "sbcl-bin" ]; then [`ros -e "(ros:ignore-shebang)" -e '(loop for x in (directory "src/lisp/*.ros") do (load x))' 2>&1` == ""]; fi - if [ x$TRAVIS_TAG != x ] && [ $METHOD = debian ]; then ros ./scripts/debian.ros; fi diff --git a/roswell-test.asd b/roswell-test.asd new file mode 100644 index 0000000..b263365 --- /dev/null +++ b/roswell-test.asd @@ -0,0 +1,19 @@ +#-asdf +(require :asdf) + +(in-package :cl-user) +(defpackage roswell-test-asd + (:use :cl :asdf)) +(in-package :roswell-test-asd) + +(defsystem roswell-test + :author "SANO Masatoshi" + :license "MIT" + :depends-on (:prove) + :components ((:module "t" + :components + ((:file "ros")))) + :defsystem-depends-on (:prove-asdf) + :perform (test-op :after (op c) + (funcall (intern #.(string :run-test-system) :prove-asdf) c) + (asdf:clear-system c))) diff --git a/t/ros.lisp b/t/ros.lisp new file mode 100644 index 0000000..de78c53 --- /dev/null +++ b/t/ros.lisp @@ -0,0 +1,43 @@ +(in-package :cl-user) +(defpackage roswell-test + (:use :cl + :ros + :prove) + (:shadowing-import-from :ros :run)) +(in-package :roswell-test) + +(plan nil) + +(ok (getenv "USER") "(getenv \"USER\")") +(ok (not (getenv "NON_EXITS_ENV")) "(getenv \"NON_EXITS_ENV\") return nil if key not exist") +(is (progn + (setenv "NON_EXITS_ENV" "hoge") + (getenv "NON_EXITS_ENV")) + "hoge" + "(setenv \"NON_EXITS_ENV\")") + +(ok (progn + (unsetenv "NON_EXITS_ENV") + (not (getenv "NON_EXITS_ENV"))) + "(unsetenv \"NON_EXITS_ENV\")") + +(ok (not (zerop (length (roswell '("roswell-internal-use" "uname") :string :trim)))) + "ros:roswell uname return something") + +(ok (every (lambda (x) (or (digit-char-p x) + (eql x #\.))) (version)) + "ros:version returns [0-9.]*") + +(ok (opt "impl") "(ros:opt \"impl\") return something") + +#+(and test are required someday) +(ros:ensure-using-downloaded-asdf + ros:exec + ros:ignore-shebang + ros:quicklisp + ros:quit + ros:script + ros:util + ros:with-lock-held) + +(finalize)