utils: Check 'mcron-error'
* tests/utils.scm ("mcron-error: exit code", "mcron-error: output")
("mcron-error: output no-exit", "mcron-error: only stderr"): New tests.
This commit is contained in:
parent
5af999fb20
commit
4d636af876
1 changed files with 43 additions and 1 deletions
|
|
@ -16,11 +16,53 @@
|
||||||
;;; You should have received a copy of the GNU General Public License
|
;;; You should have received a copy of the GNU General Public License
|
||||||
;;; along with GNU Mcron. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Mcron. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(use-modules (srfi srfi-64)
|
(use-modules (ice-9 match)
|
||||||
|
(ice-9 rdelim)
|
||||||
|
(srfi srfi-64)
|
||||||
(mcron utils))
|
(mcron utils))
|
||||||
|
|
||||||
(test-begin "utils")
|
(test-begin "utils")
|
||||||
|
|
||||||
|
;;; Check 'mcron-error' error code return value.
|
||||||
|
(test-equal "mcron-error: exit code"
|
||||||
|
42
|
||||||
|
(match (primitive-fork)
|
||||||
|
(0 ;child
|
||||||
|
(mcron-error 42 "exit with 42"))
|
||||||
|
((= waitpid (pid . exit-code)) ;parent
|
||||||
|
(status:exit-val exit-code))))
|
||||||
|
|
||||||
|
;;; Check 'mcron-error' output with basic error code.
|
||||||
|
(test-equal "mcron-error: output"
|
||||||
|
"mcron: token"
|
||||||
|
(call-with-output-string
|
||||||
|
(λ (port)
|
||||||
|
(match (pipe)
|
||||||
|
((in . out)
|
||||||
|
(match (primitive-fork)
|
||||||
|
(0 ;child
|
||||||
|
(close in)
|
||||||
|
(with-error-to-port out
|
||||||
|
(λ () (mcron-error 37 "token"))))
|
||||||
|
((= waitpid (pid . exit-code)) ;parent
|
||||||
|
(close out)
|
||||||
|
(display (read-line in) port))))))))
|
||||||
|
|
||||||
|
;;; Check mcron-error output when error code is 0.
|
||||||
|
(test-equal "mcron-error: output no-exit"
|
||||||
|
"mcron: foobar\n"
|
||||||
|
(call-with-output-string
|
||||||
|
(λ (port)
|
||||||
|
(with-error-to-port port
|
||||||
|
(λ ()
|
||||||
|
(mcron-error 0 "foo" "bar"))))))
|
||||||
|
|
||||||
|
;;; Check that mcron-error doesn't print anything on the standard output.
|
||||||
|
(test-equal "mcron-error: only stderr"
|
||||||
|
""
|
||||||
|
(with-output-to-string
|
||||||
|
(λ () (mcron-error 0 "foo" "bar"))))
|
||||||
|
|
||||||
(define entry
|
(define entry
|
||||||
;; Random user entry.
|
;; Random user entry.
|
||||||
(getpw))
|
(getpw))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue