[functional-tests] era_restore tests

This commit is contained in:
Joe Thornber 2017-08-30 15:14:10 +01:00
parent 6616a21891
commit d3c8ae4f35
2 changed files with 95 additions and 3 deletions

View File

@ -25,7 +25,7 @@
(syntax-rules ()
((_ (md) b1 b2 ...)
(with-temp-file-sized ((md "era.bin" (meg 4)))
(with-cache-xml (xml)
(with-era-xml (xml)
(era-restore "-i" xml "-o" md)
b1 b2 ...)))))
@ -106,4 +106,86 @@
(receive (stdout stderr) (run-fail "era_check -q" md)
(assert-eof stdout)
(assert-eof stderr))))
;;;-----------------------------------------------------------
;;; era_restore scenarios
;;;-----------------------------------------------------------
(define-scenario (era-restore v)
"era_restore -V"
(receive (stdout _) (era-restore "-V")
(assert-equal tools-version stdout)))
(define-scenario (era-restore version)
"era_restore --version"
(receive (stdout _) (era-restore "--version")
(assert-equal tools-version stdout)))
(define-scenario (era-restore h)
"era_restore -h"
(receive (stdout _) (era-restore "-h")
(assert-equal era-restore-help stdout)))
(define-scenario (era-restore help)
"era_restore --help"
(receive (stdout _) (era-restore "--help")
(assert-equal era-restore-help stdout)))
(define-scenario (era-restore input-unspecified)
"Fails if no xml specified"
(with-empty-metadata (md)
(receive (_ stderr) (run-fail "era_restore" "-o" md)
(assert-starts-with "No input file provided." stderr))))
(define-scenario (era-restore output-unspecified)
"Fails if no metadata dev specified"
(with-era-xml (xml)
(receive (_ stderr) (run-fail "era_restore" "-i" xml)
(assert-starts-with "No output file provided." stderr))))
(define-scenario (era-restore success)
"Succeeds with xml and metadata"
(with-era-xml (xml)
(with-empty-metadata (md)
(era-restore "-i" xml "-o" md))))
(define-scenario (era-restore quiet)
"No output with --quiet (succeeding)"
(with-era-xml (xml)
(with-empty-metadata (md)
(receive (stdout stderr) (era-restore "--quiet" "-i" xml "-o" md)
(assert-eof stdout)
(assert-eof stderr)))))
(define-scenario (era-restore q)
"No output with -q (succeeding)"
(with-era-xml (xml)
(with-empty-metadata (md)
(receive (stdout stderr) (era-restore "-q" "-i" xml "-o" md)
(assert-eof stdout)
(assert-eof stderr)))))
(define-scenario (era-restore quiet-fail)
"No output with --quiet (failing)"
(with-temp-file ((bad-xml "era.xml"))
(with-empty-metadata (md)
(receive (stdout stderr) (run-fail "era_restore" "--quiet" "-i" bad-xml "-o" md)
(assert-eof stdout)
(assert-eof stderr)))))
(define-scenario (era-restore q-fail)
"No output with --q(failing)"
(with-temp-file ((bad-xml "era.xml"))
(with-empty-metadata (md)
(receive (stdout stderr) (run-fail "era_restore" "-q" "-i" bad-xml "-o" md)
(assert-eof stdout)
(assert-eof stderr)))))
(define-scenario (era-dump restore-is-noop)
"era_dump followed by era_restore is a noop."
(with-valid-metadata (md)
(receive (d1-stdout _) (era-dump md)
(with-temp-file-containing ((xml "era.xml" d1-stdout))
(era-restore "-i" xml "-o" md)
(receive (d2-stdout _) (era-dump md)
(assert-equal d1-stdout d2-stdout))))))
)

View File

@ -14,6 +14,7 @@
cache-metadata-size-help
era-check-help
era-restore-help
)
(import (rnrs))
@ -126,4 +127,13 @@ Options:
{-h|--help}
{-V|--version}
{--super-block-only}")
(define era-restore-help
"Usage: era_restore [options]
Options:
{-h|--help}
{-i|--input} <input xml file>
{-o|--output} <output device or file>
{-q|--quiet}
{-V|--version}")
)