| #!/bin/sh |
| |
| test_description='git p4 handling of UTF-16 files without BOM' |
| |
| . ./lib-git-p4.sh |
| |
| UTF16="\227\000\227\000" |
| |
| test_expect_success 'start p4d' ' |
| start_p4d |
| ' |
| |
| test_expect_success 'init depot with UTF-16 encoded file and artificially remove BOM' ' |
| ( |
| cd "$cli" && |
| printf "$UTF16" >file1 && |
| p4 add -t utf16 file1 && |
| p4 submit -d "file1" |
| ) && |
| |
| ( |
| cd db && |
| p4d -jc && |
| # P4D automatically adds a BOM. Remove it here to make the file invalid. |
| sed -e "\$d" depot/file1,v >depot/file1,v.new && |
| mv depot/file1,v.new depot/file1,v && |
| printf "@$UTF16@" >>depot/file1,v && |
| p4d -jrF checkpoint.1 |
| ) |
| ' |
| |
| test_expect_success 'clone depot with invalid UTF-16 file in verbose mode' ' |
| git p4 clone --dest="$git" --verbose //depot && |
| test_when_finished cleanup_git && |
| ( |
| cd "$git" && |
| printf "$UTF16" >expect && |
| test_cmp_bin expect file1 |
| ) |
| ' |
| |
| test_expect_failure 'clone depot with invalid UTF-16 file in non-verbose mode' ' |
| git p4 clone --dest="$git" //depot |
| ' |
| |
| test_expect_success 'kill p4d' ' |
| kill_p4d |
| ' |
| |
| test_done |