#!/bin/bashset -eu -o pipefail git init; function baseline() { local pathspec=$1 # first argument is the pathspec to test git ls-files "$pathspec" && status=0 || status=$? { echo "$pathspec" echo "$status" } >> baseline.git} # success # special 'there is no pathspec' specbaseline ':' # repeated_matcher_keywordsbaseline ':(glob,glob)'baseline ':(literal,literal)'baseline ':(top,top)'baseline ':(icase,icase)'baseline ':(attr,attr)'baseline ':!^(exclude,exclude)' # empty_signaturesbaseline '.'baseline 'some/path'baseline ':some/path'baseline ':()some/path'baseline '::some/path'baseline ':::some/path'baseline ':():some/path' # whitespace_in_pathspecbaseline ' some/path'baseline 'some/ path'baseline 'some/path 'baseline ': some/path'baseline ': !some/path'baseline ': :some/path'baseline ': ()some/path'baseline ':! some/path' # short_signaturesbaseline ':/some/path'baseline ':^some/path'baseline ':!some/path'baseline ':/!some/path'baseline ':!/^/:some/path' # signatures_and_searchmodesbaseline ':(top)'baseline ':(icase)'baseline ':(attr)'baseline ':(exclude)'baseline ':(literal)'baseline ':(glob)'baseline ':(top,exclude)'baseline ':(icase,literal)'baseline ':!(literal)some/*path'baseline ':(top,literal,icase,attr,exclude)some/path'baseline ':(top,glob,icase,attr,exclude)some/path' # attributes_in_signaturebaseline ':(attr:someAttr)'baseline ':(attr:!someAttr)'baseline ':(attr:-someAttr)'baseline ':(attr:someAttr=value)'baseline ':(attr:a=one b=)'baseline ':(attr:a= b=two)'baseline ':(attr:a=one b=two)'baseline ':(attr:a=one b=two)'baseline ':(attr:someAttr anotherAttr)' # attributes_with_escape_chars_in_state_valuesbaseline ':(attr:v=one\-)'baseline ':(attr:v=one\_)'baseline ':(attr:v=one\,)'baseline ':(attr:v=one\,two\,three)'baseline ':(attr:a=\d b= c=\d)' # failing #empty_inputbaseline "" # invalid_short_signaturesbaseline ':"()'baseline ':#()'baseline ':%()'baseline ':&()'baseline ":'()"baseline ':,()'baseline ':-()'baseline ':;()'baseline ':<()'baseline ':=()'baseline ':>()'baseline ':@()'baseline ':_()'baseline ':`()'baseline ':~()' # invalid_keywordsbaseline ':( )some/path'baseline ':(tp)some/path'baseline ':(top, exclude)some/path'baseline ':(top,exclude,icse)some/path' # invalid_attributesbaseline ':(attr:+invalidAttr)some/path'baseline ':(attr:validAttr +invalidAttr)some/path'baseline ':(attr:+invalidAttr,attr:valid)some/path'baseline ':(attr:inva\lid)some/path' # invalid_attribute_valuesbaseline ':(attr:v=inva#lid)some/path'baseline ':(attr:v=inva\\lid)some/path'baseline ':(attr:v=invalid\\)some/path'baseline ':(attr:v=invalid\#)some/path'baseline ':(attr:v=inva\=lid)some/path'baseline ':(attr:a=valid b=inva\#lid)some/path'baseline ':(attr:v=val��)'baseline ':(attr:pr=pre��x:,)�' # escape_character_at_end_of_attribute_valuebaseline ':(attr:v=invalid\)some/path'baseline ':(attr:v=invalid\ )some/path'baseline ':(attr:v=invalid\ valid)some/path' # empty_attribute_specificationbaseline ':(attr:)' # multiple_attribute_specificationsbaseline ':(attr:one,attr:two)some/path' # missing_parenthesesbaseline ':(top' # glob_and_literal_keywords_presentbaseline ':(glob,literal)some/path'
#!/bin/bash
set -eu -o pipefail
git init;
function baseline() {
local pathspec=$1 # first argument is the pathspec to test
git ls-files "$pathspec" && status=0 || status=$?
{
echo "$pathspec"
echo "$status"
} >> baseline.git
}
# success
# special 'there is no pathspec' spec
baseline ':'
# repeated_matcher_keywords
baseline ':(glob,glob)'
baseline ':(literal,literal)'
baseline ':(top,top)'
baseline ':(icase,icase)'
baseline ':(attr,attr)'
baseline ':!^(exclude,exclude)'
# empty_signatures
baseline '.'
baseline 'some/path'
baseline ':some/path'
baseline ':()some/path'
baseline '::some/path'
baseline ':::some/path'
baseline ':():some/path'
# whitespace_in_pathspec
baseline ' some/path'
baseline 'some/ path'
baseline 'some/path '
baseline ': some/path'
baseline ': !some/path'
baseline ': :some/path'
baseline ': ()some/path'
baseline ':! some/path'
# short_signatures
baseline ':/some/path'
baseline ':^some/path'
baseline ':!some/path'
baseline ':/!some/path'
baseline ':!/^/:some/path'
# signatures_and_searchmodes
baseline ':(top)'
baseline ':(icase)'
baseline ':(attr)'
baseline ':(exclude)'
baseline ':(literal)'
baseline ':(glob)'
baseline ':(top,exclude)'
baseline ':(icase,literal)'
baseline ':!(literal)some/*path'
baseline ':(top,literal,icase,attr,exclude)some/path'
baseline ':(top,glob,icase,attr,exclude)some/path'
# attributes_in_signature
baseline ':(attr:someAttr)'
baseline ':(attr:!someAttr)'
baseline ':(attr:-someAttr)'
baseline ':(attr:someAttr=value)'
baseline ':(attr:a=one b=)'
baseline ':(attr:a= b=two)'
baseline ':(attr:a=one b=two)'
baseline ':(attr:a=one b=two)'
baseline ':(attr:someAttr anotherAttr)'
# attributes_with_escape_chars_in_state_values
baseline ':(attr:v=one\-)'
baseline ':(attr:v=one\_)'
baseline ':(attr:v=one\,)'
baseline ':(attr:v=one\,two\,three)'
baseline ':(attr:a=\d b= c=\d)'
# failing
#empty_input
baseline ""
# invalid_short_signatures
baseline ':"()'
baseline ':#()'
baseline ':%()'
baseline ':&()'
baseline ":'()"
baseline ':,()'
baseline ':-()'
baseline ':;()'
baseline ':<()'
baseline ':=()'
baseline ':>()'
baseline ':@()'
baseline ':_()'
baseline ':`()'
baseline ':~()'
# invalid_keywords
baseline ':( )some/path'
baseline ':(tp)some/path'
baseline ':(top, exclude)some/path'
baseline ':(top,exclude,icse)some/path'
# invalid_attributes
baseline ':(attr:+invalidAttr)some/path'
baseline ':(attr:validAttr +invalidAttr)some/path'
baseline ':(attr:+invalidAttr,attr:valid)some/path'
baseline ':(attr:inva\lid)some/path'
# invalid_attribute_values
baseline ':(attr:v=inva#lid)some/path'
baseline ':(attr:v=inva\\lid)some/path'
baseline ':(attr:v=invalid\\)some/path'
baseline ':(attr:v=invalid\#)some/path'
baseline ':(attr:v=inva\=lid)some/path'
baseline ':(attr:a=valid b=inva\#lid)some/path'
baseline ':(attr:v=val��)'
baseline ':(attr:pr=pre��x:,)�'
# escape_character_at_end_of_attribute_value
baseline ':(attr:v=invalid\)some/path'
baseline ':(attr:v=invalid\ )some/path'
baseline ':(attr:v=invalid\ valid)some/path'
# empty_attribute_specification
baseline ':(attr:)'
# multiple_attribute_specifications
baseline ':(attr:one,attr:two)some/path'
# missing_parentheses
baseline ':(top'
# glob_and_literal_keywords_present
baseline ':(glob,literal)some/path'