(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (DQ ("Test the svn importer's input handling routines.\n") ('\n') ('These tests provide some simple checks that the line_buffer API\n') ('behaves as advertised.\n') ('\n') ('While at it, check that input of newlines and null bytes are handled\n') ('correctly.\n') ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'hello world' span_id:23))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:27) (Token id:Id.Lit_Chars val:'\techo ">HELLO" >expect &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\ttest-line-buffer <<-\\EOF >actual &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tbinary 6\n' span_id:30) (Token id:Id.Lit_Chars val:'\tHELLO\n' span_id:31) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:32) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:33) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'0-length read, send along greeting' span_id:40))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:44) (Token id:Id.Lit_Chars val:'\techo ">HELLO" >expect &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\ttest-line-buffer <<-\\EOF >actual &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tbinary 0\n' span_id:47) (Token id:Id.Lit_Chars val:'\tcopy 6\n' span_id:48) (Token id:Id.Lit_Chars val:'\tHELLO\n' span_id:49) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:50) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:51) ) } ) (C {(test_expect_success)} {(Id.KW_Bang '!') (MINGW)} {(SQ (Token id:Id.Lit_Chars val:'read from file descriptor' span_id:61))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'\trm -f input &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\techo hello >expect &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\techo hello >input &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\techo copy 6 |\n' span_id:69) (Token id: Id.Lit_Chars val: '\ttest-line-buffer "&4" 4<input >actual &&\n' span_id: 70 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:71) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'skip, copy null byte' span_id:78))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:82) (Token id:Id.Lit_Chars val:'\techo Q | q_to_nul >expect &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tq_to_nul <<-\\EOF | test-line-buffer >actual &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\tskip 2\n' span_id:85) (Token id:Id.Lit_Chars val:'\tQ\n' span_id:86) (Token id:Id.Lit_Chars val:'\tcopy 2\n' span_id:87) (Token id:Id.Lit_Chars val:'\tQ\n' span_id:88) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:89) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:90) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'read null byte' span_id:97))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:101) (Token id: Id.Lit_Chars val: '\techo ">QhelloQ" | q_to_nul >expect &&\n' span_id: 102 ) (Token id:Id.Lit_Chars val:'\tq_to_nul <<-\\EOF | test-line-buffer >actual &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\tbinary 8\n' span_id:104) (Token id:Id.Lit_Chars val:'\tQhelloQ\n' span_id:105) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:106) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:107) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'long reads are truncated' span_id:114))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:118) (Token id:Id.Lit_Chars val:'\techo ">foo" >expect &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\ttest-line-buffer <<-\\EOF >actual &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\tbinary 5\n' span_id:121) (Token id:Id.Lit_Chars val:'\tfoo\n' span_id:122) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:123) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:124) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'long copies are truncated' span_id:131))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) (Token id:Id.Lit_Chars val:'\tprintf "%s\\n" ">" foo >expect &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\ttest-line-buffer <<-\\EOF >actual &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\tbinary 1\n' span_id:138) (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id:Id.Lit_Chars val:'\tcopy 5\n' span_id:140) (Token id:Id.Lit_Chars val:'\tfoo\n' span_id:141) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:142) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:143) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'long binary reads are truncated' span_id:150))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:154) (Token id:Id.Lit_Chars val:'\techo ">foo" >expect &&\n' span_id:155) (Token id:Id.Lit_Chars val:'\ttest-line-buffer <<-\\EOF >actual &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tbinary 5\n' span_id:157) (Token id:Id.Lit_Chars val:'\tfoo\n' span_id:158) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:160) ) } ) (C {(test_done)}) ] )