(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git p4 handling of UTF-16 files without BOM">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./lib-git-p4.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UTF16) op: Equal rhs: { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) (27) (EscapedLiteralPart token:<Lit_EscapedChar "\\0">) (00) (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) (27) (EscapedLiteralPart token:<Lit_EscapedChar "\\0">) (00) ) } spids: [15] ) ] spids: [15] ) (C {(test_expect_success)} {(SQ <"start p4d">)} {(SQ <"\n"> <"\tstart_p4d\n">)}) (C {(test_expect_success)} {(SQ <"init depot with UTF-16 encoded file and artificially remove BOM">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd \"$cli\" &&\n"> <"\t\tprintf \"$UTF16\" >file1 &&\n"> <"\t\tp4 add -t utf16 file1 &&\n"> <"\t\tp4 submit -d \"file1\"\n"> <"\t) &&\n"> <"\n"> <"\t(\n"> <"\t\tcd db &&\n"> <"\t\tp4d -jc &&\n"> <"\t\t# P4D automatically adds a BOM. Remove it here to make the file invalid.\n"> <"\t\tsed -e \"\\$d\" depot/file1,v >depot/file1,v.new &&\n"> <"\t\tmv depot/file1,v.new depot/file1,v &&\n"> <"\t\tprintf \"@$UTF16@\" >>depot/file1,v &&\n"> <"\t\tp4d -jrF checkpoint.1\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"clone depot with invalid UTF-16 file in verbose mode">)} { (SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" --verbose //depot &&\n"> <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tprintf \"$UTF16\" >expect &&\n"> <"\t\ttest_cmp_bin expect file1\n"> <"\t)\n"> ) } ) (C {(test_expect_failure)} {(SQ <"clone depot with invalid UTF-16 file in non-verbose mode">)} {(SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" //depot\n">)} ) (C {(test_expect_success)} {(SQ <"kill p4d">)} {(SQ <"\n"> <"\tkill_p4d\n">)}) (C {(test_done)}) ] )