87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| Feature: thin_check
 | |
|   Scenario: print version (-V flag)
 | |
|     When I run `thin_check -V`
 | |
|     Then it should pass with version
 | |
| 
 | |
|   Scenario: print version (--version flag)
 | |
|     When I run `thin_check --version`
 | |
|     Then it should pass with version
 | |
| 
 | |
|   Scenario: print help
 | |
|     When I run `thin_check --help`
 | |
|     Then it should pass with:
 | |
| 
 | |
|     """
 | |
|     Usage: thin_check [options] {device|file}
 | |
|     Options:
 | |
|       {-q|--quiet}
 | |
|       {-h|--help}
 | |
|       {-V|--version}
 | |
|       {--clear-needs-check-flag}
 | |
|       {--ignore-non-fatal-errors}
 | |
|       {--skip-mappings}
 | |
|       {--super-block-only}
 | |
|     """
 | |
| 
 | |
|   Scenario: print help
 | |
|     When I run `thin_check -h`
 | |
|     Then it should pass with:
 | |
| 
 | |
|     """
 | |
|     Usage: thin_check [options] {device|file}
 | |
|     Options:
 | |
|       {-q|--quiet}
 | |
|       {-h|--help}
 | |
|       {-V|--version}
 | |
|       {--clear-needs-check-flag}
 | |
|       {--ignore-non-fatal-errors}
 | |
|       {--skip-mappings}
 | |
|       {--super-block-only}
 | |
|     """
 | |
| 
 | |
|   Scenario: Unrecognised option should cause failure
 | |
|     When I run `thin_check --hedeghogs-only`
 | |
|     Then it should fail
 | |
| 
 | |
|   Scenario: --super-block-only check passes on valid metadata
 | |
|     Given valid thin metadata
 | |
|     When I run thin_check with --super-block-only
 | |
|     Then it should pass
 | |
| 
 | |
|   Scenario: --super-block-only check fails with corrupt superblock
 | |
|     Given a corrupt superblock
 | |
|     When I run thin_check with --super-block-only
 | |
|     Then it should fail with:
 | |
|     """
 | |
|     examining superblock
 | |
|       superblock is corrupt
 | |
|         bad checksum in superblock
 | |
|     """
 | |
| 
 | |
|   Scenario: --skip-mappings check passes on valid metadata
 | |
|     Given valid thin metadata
 | |
|     When I run thin_check with --skip-mappings
 | |
|     Then it should pass
 | |
| 
 | |
|   Scenario: --ignore-non-fatal-errors check passes on valid metadata
 | |
|     Given valid thin metadata
 | |
|     When I run thin_check with --ignore-non-fatal-errors
 | |
|     Then it should pass
 | |
| 
 | |
|   Scenario: -q should give no output
 | |
|     Given a corrupt superblock
 | |
|     When I run thin_check with --quiet
 | |
|     Then it should fail
 | |
|     And it should give no output
 | |
| 
 | |
|   Scenario: --quiet should give no output
 | |
|     Given a corrupt superblock
 | |
|     When I run thin_check with --quiet
 | |
|     Then it should fail
 | |
|     And it should give no output
 | |
| 
 | |
|   Scenario: Accepts --clear-needs-check-flag
 | |
|     Given valid thin metadata
 | |
|     When I run thin_check with --clear-needs-check-flag
 | |
|     Then it should pass
 |