50 lines
1.0 KiB
50 lines
1.0 KiB
#!/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
|
|
|