diff --git a/features/cache_metadata_size.feature b/features/cache_metadata_size.feature deleted file mode 100644 index 7430fd9..0000000 --- a/features/cache_metadata_size.feature +++ /dev/null @@ -1,102 +0,0 @@ -Feature: cache_metadata_size - Scenario: print version (-V flag) - When I run cache_metadata_size with -V - Then it should pass with version - - Scenario: print version (--version flag) - When I run cache_metadata_size with --version - Then it should pass with version - - Scenario: print help (-h) - When I run cache_metadata_size with -h - Then it should pass - And the output should contain exactly: - - """ - Usage: cache_metadata_size [options] - Options: - {-h|--help} - {-V|--version} - {--block-size } - {--device-size } - {--nr-blocks } - - These all relate to the size of the fast device (eg, SSD), rather - than the whole cached device. - - """ - - Scenario: print help (--help) - When I run cache_metadata_size with -h - Then it should pass - And the output should contain exactly: - - """ - Usage: cache_metadata_size [options] - Options: - {-h|--help} - {-V|--version} - {--block-size } - {--device-size } - {--nr-blocks } - - These all relate to the size of the fast device (eg, SSD), rather - than the whole cached device. - - """ - - Scenario: No arguments specified causes fail - When I run cache_metadata_size - Then it should fail with: - """ - Please specify either --device-size and --block-size, or --nr-blocks. - """ - - Scenario: Just --device-size causes fail - When I run cache_metadata_size with --device-size 102400 - Then it should fail with: - """ - If you specify --device-size you must also give --block-size. - """ - - Scenario: Just --block-size causes fail - When I run cache_metadata_size with --block-size 64 - Then it should fail with: - """ - If you specify --block-size you must also give --device-size. - """ - - Scenario: Contradictory info causes fail - When I run cache_metadata_size with --device-size 102400 --block-size 1000 --nr-blocks 6 - Then it should fail with: - """ - Contradictory arguments given, --nr-blocks doesn't match the --device-size and --block-size. - """ - - Scenario: All args agreeing succeeds - When I run cache_metadata_size with --device-size 102400 --block-size 100 --nr-blocks 1024 - Then it should pass with: - """ - 8248 sectors - """ - - Scenario: Just --nr-blocks succeeds - When I run cache_metadata_size with --nr-blocks 1024 - Then it should pass with: - """ - 8248 sectors - """ - - Scenario: Just --device-size and --block-size succeeds - When I run cache_metadata_size with --device-size 102400 --block-size 100 - Then it should pass with: - """ - 8248 sectors - """ - - Scenario: A big configuration passes - When I run cache_metadata_size with --nr-blocks 67108864 - Then it should pass with: - """ - 3678208 - """ \ No newline at end of file diff --git a/functional-tests/cache-functional-tests.scm b/functional-tests/cache-functional-tests.scm index 60ca1c0..3185465 100644 --- a/functional-tests/cache-functional-tests.scm +++ b/functional-tests/cache-functional-tests.scm @@ -254,4 +254,77 @@ (cache-restore "-i" xml "-o" md) (receive (d2-stdout _) (cache-dump md) (assert-equal d1-stdout d2-stdout)))))) -) + + ;;;----------------------------------------------------------- + ;;; cache_metadata_size scenarios + ;;;----------------------------------------------------------- + + (define-scenario (cache-metadata-size v) + "cache_metadata_size -V" + (receive (stdout _) (cache-metadata-size "-V") + (assert-equal tools-version stdout))) + + (define-scenario (cache-metadata-size version) + "cache_metadata_size --version" + (receive (stdout _) (cache-metadata-size "--version") + (assert-equal tools-version stdout))) + + (define-scenario (cache-metadata-size h) + "cache_metadata_size -h" + (receive (stdout _) (cache-metadata-size "-h") + (assert-equal cache-metadata-size-help stdout))) + + (define-scenario (cache-metadata-size help) + "cache_metadata_size --help" + (receive (stdout _) (cache-metadata-size "--help") + (assert-equal cache-metadata-size-help stdout))) + + (define-scenario (cache-metadata-size no-args) + "No arguments specified causes fail" + (receive (_ stderr) (run-fail "cache_metadata_size") + (assert-equal "Please specify either --device-size and --block-size, or --nr-blocks." + stderr))) + + (define-scenario (cache-metadata-size device-size-only) + "Just --device-size causes fail" + (receive (_ stderr) (run-fail "cache_metadata_size --device-size" (meg 100)) + (assert-equal "If you specify --device-size you must also give --block-size." + stderr))) + + (define-scenario (cache-metadata-size block-size-only) + "Just --block-size causes fail" + (receive (_ stderr) (run-fail "cache_metadata_size --block-size" 128) + (assert-equal "If you specify --block-size you must also give --device-size." + stderr))) + + (define-scenario (cache-metadata-size conradictory-info-fails) + "Contradictory info causes fail" + (receive (_ stderr) (run-fail "cache_metadata_size --device-size 102400 --block-size 1000 --nr-blocks 6") + (assert-equal "Contradictory arguments given, --nr-blocks doesn't match the --device-size and --block-size." + stderr))) + + (define-scenario (cache-metadata-size all-args-agree) + "All args agreeing succeeds" + (receive (stdout stderr) (cache-metadata-size "--device-size" 102400 "--block-size" 100 "--nr-blocks" 1024) + (assert-equal "8248 sectors" stdout) + (assert-eof stderr))) + + (define-scenario (cache-metadata-size nr-blocks-alone) + "Just --nr-blocks succeeds" + (receive (stdout stderr) (cache-metadata-size "--nr-blocks" 1024) + (assert-equal "8248 sectors" stdout) + (assert-eof stderr))) + + (define-scenario (cache-metadata-size dev-size-and-block-size-succeeds) + "Specifying --device-size with --block-size succeeds" + (receive (stdout stderr) (cache-metadata-size "--device-size" 102400 "--block-size" 100) + (assert-equal "8248 sectors" stdout) + (assert-eof stderr))) + + (define-scenario (cache-metadata-size big-config) + "A big configuration succeeds" + (receive (stdout stderr) (cache-metadata-size "--nr-blocks 67108864") + (assert-equal "3678208 sectors" stdout) + (assert-eof stderr))) + + ) diff --git a/functional-tests/scenario-string-constants.scm b/functional-tests/scenario-string-constants.scm index f2bb014..f605e44 100644 --- a/functional-tests/scenario-string-constants.scm +++ b/functional-tests/scenario-string-constants.scm @@ -10,6 +10,7 @@ cache-restore-help cache-restore-outfile-too-small-text cache-dump-help + cache-metadata-size-help ) (import (rnrs)) @@ -92,4 +93,16 @@ Options: {-o } {-V|--version} {--repair}") + + (define cache-metadata-size-help + "Usage: cache_metadata_size [options] +Options: + {-h|--help} + {-V|--version} + {--block-size } + {--device-size } + {--nr-blocks } + +These all relate to the size of the fast device (eg, SSD), rather +than the whole cached device.") )