94 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
Feature: cache_check
 | 
						|
  Scenario: print version (-V flag)
 | 
						|
    When I run `cache_check -V`
 | 
						|
    
 | 
						|
    Then it should pass
 | 
						|
    And version to stdout
 | 
						|
 | 
						|
  Scenario: print version (--version flag)
 | 
						|
    When I run `cache_check --version`
 | 
						|
 | 
						|
    Then it should pass
 | 
						|
    And version to stdout
 | 
						|
 | 
						|
  Scenario: print help
 | 
						|
    When I run `cache_check --help`
 | 
						|
 | 
						|
    Then it should pass
 | 
						|
    And usage to stdout
 | 
						|
 | 
						|
  Scenario: print help
 | 
						|
    When I run `cache_check -h`
 | 
						|
 | 
						|
    Then it should pass
 | 
						|
    And usage to stdout
 | 
						|
 | 
						|
  Scenario: Metadata file must be specified
 | 
						|
    When I run `cache_check`
 | 
						|
 | 
						|
    Then it should fail
 | 
						|
    And usage to stderr
 | 
						|
    And the stderr should contain:
 | 
						|
 | 
						|
    """
 | 
						|
    No input file provided.
 | 
						|
    """
 | 
						|
 | 
						|
  Scenario: Metadata file doesn't exist
 | 
						|
    When I run `cache_check /arbitrary/filename`
 | 
						|
 | 
						|
    Then it should fail
 | 
						|
    And the stderr should contain:
 | 
						|
    """
 | 
						|
    /arbitrary/filename: No such file or directory
 | 
						|
    """
 | 
						|
 | 
						|
  Scenario: Metadata file cannot be a directory
 | 
						|
    Given a directory called foo
 | 
						|
 | 
						|
    When I run `cache_check foo`
 | 
						|
 | 
						|
    Then it should fail
 | 
						|
    And the stderr should contain:
 | 
						|
    """
 | 
						|
    foo: Not a block device or regular file
 | 
						|
    """
 | 
						|
 | 
						|
  Scenario: Metadata file exists, but can't be opened
 | 
						|
    Given input without read permissions
 | 
						|
    When I run `cache_check input`
 | 
						|
    Then it should fail
 | 
						|
    And the stderr should contain:
 | 
						|
    """
 | 
						|
    Permission denied
 | 
						|
    """
 | 
						|
 | 
						|
  Scenario: Metadata file full of zeroes
 | 
						|
    Given input file
 | 
						|
    And block 1 is zeroed
 | 
						|
    When I run `cache_check input`
 | 
						|
    Then it should fail
 | 
						|
 | 
						|
  Scenario: --quiet is observed
 | 
						|
    Given input file
 | 
						|
    And block 1 is zeroed
 | 
						|
    When I run `cache_check --quiet input`
 | 
						|
    Then it should fail
 | 
						|
    And it should give no output
 | 
						|
 | 
						|
  Scenario: -q is observed
 | 
						|
    Given input file
 | 
						|
    And block 1 is zeroed
 | 
						|
    When I run `cache_check -q input`
 | 
						|
    Then it should fail
 | 
						|
    And it should give no output
 | 
						|
 | 
						|
  Scenario: A valid metadata area passes
 | 
						|
    Given metadata containing:
 | 
						|
    """
 | 
						|
    """
 | 
						|
 | 
						|
    When I run cache_check
 | 
						|
    Then it should pass
 | 
						|
 |