mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2025-12-15 15:21:03 -08:00
tests: make finishes return the values from the executed form
This commit is contained in:
parent
e98e36dfca
commit
a916a5ccff
2 changed files with 8 additions and 5 deletions
|
|
@ -273,13 +273,13 @@
|
|||
|
||||
(defmacro finishes (form &rest args)
|
||||
(if args
|
||||
`(handler-case (progn ,form (passed))
|
||||
`(handler-case (multiple-value-prog1 ,form (passed))
|
||||
(serious-condition (c)
|
||||
(failed (make-condition 'test-failure
|
||||
:name *test-name*
|
||||
:format-control ,(car args)
|
||||
:format-arguments (list ,@(cdr args))))))
|
||||
`(handler-case (progn ,form (passed))
|
||||
`(handler-case (multiple-value-prog1 ,form (passed))
|
||||
(serious-condition (c)
|
||||
(failed (make-condition 'test-failure
|
||||
:name *test-name*
|
||||
|
|
|
|||
|
|
@ -91,7 +91,8 @@
|
|||
(finishes (ext:terminate-process process))
|
||||
(sleep 1)
|
||||
#-windows(is-eql :signaled (ext:external-process-wait process nil))
|
||||
#+windows(is-eql :exited (ext:external-process-wait process nil))))
|
||||
#+windows(is-eql :exited (ext:external-process-wait process nil))
|
||||
t))
|
||||
(is-equal #-windows `(t :signaled ,ext:+sigkill+)
|
||||
#+windows `(t :exited -1)
|
||||
(with-run-program (terminate nil)
|
||||
|
|
@ -100,7 +101,8 @@
|
|||
(sleep 1)
|
||||
#-windows(is-eql :signaled (ext:external-process-wait process nil))
|
||||
#+windows(is-eql :exited (ext:external-process-wait process nil))
|
||||
(finishes (ext:external-process-status process)))))
|
||||
(finishes (ext:external-process-status process))
|
||||
t)))
|
||||
|
||||
;;; We may want to craft it into an interface. Suspend/Resume *is* possible on Windows:
|
||||
;;; http://stackoverflow.com/questions/11010165/how-to-suspend-resume-a-process-in-windows
|
||||
|
|
@ -116,7 +118,8 @@
|
|||
(si:killpid pid ext:+sigcont+)
|
||||
(sleep 2)
|
||||
(is-eql :resumed (ext:external-process-wait process nil))
|
||||
(finishes (ext:terminate-process process t))))))
|
||||
(finishes (ext:terminate-process process t))
|
||||
t))))
|
||||
|
||||
;;; Cygwin programs seems not to react to signals. We use a stub to
|
||||
;;; avoid infintie wait for process termination.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue