(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./lib-git-p4.sh]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS lfs]} {[LIT_CHARS help]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]}) ) ) (FunctionDef test_file_in_lfs [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('FILE', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('SIZE', {[DQ [VarSub 2]]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('EXPECTED_CONTENT', {[DQ [VarSub 3]]})]) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^version "]]}) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^oid "]]}) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^size "]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[LIT_CHARS 3]} {[DQ [VarSub FILE]]}) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "size "][VarSub SIZE]]}) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('HASH', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub FILE]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "oid sha256:"]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/oid sha256://g"]]}) )]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('LFS_FILE', {[DQ [LIT_CHARS .git/lfs/objects/][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub HASH]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -c1-2]}) )][LIT_CHARS /][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub HASH]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -c3-4]}) )][LIT_CHARS /][VarSub HASH]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[VarSub EXPECTED_CONTENT]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_path_is_file]} {[DQ [VarSub FILE]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_path_is_file]} {[DQ [VarSub LFS_FILE]]}) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[DQ [VarSub LFS_FILE]]}) ) ) ) ) ) ) ) ) ) ) ) ) ) ) (FunctionDef test_file_count_in_dir [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('EXPECTED_COUNT', {[DQ [VarSub 2]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS find]} {[DQ [VarSub DIR]]} {[LIT_CHARS -type]} {[LIT_CHARS f]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[VarSub EXPECTED_COUNT]} {[LIT_CHARS actual]}) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1.txt &&\n"> file2.dat &&\n"> \"path with spaces/file3.bin\" &&\n"> file4.bin &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 24 bytes)">]} {[SQ expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 25 bytes)">]} {[SQ expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 25 bytes) and extension (dat)">]} {[SQ expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 24 bytes)">]} {[SQ expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 24 bytes)">]} {[SQ .gitattributes &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ 28 bytes)">]} {[SQ file5.bin &&\n"> file6.bin &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_done]}) )