Re: [PATCH v3 1/2] git-p4: add test case for "Translation of file content failed" error
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Sep 20, 2015, 21:16 UTC
- Message-ID
- <CAPig+cThcNa2Xg6GDkNKKeOMOzApTi_FQfQz_KRAbF8-PWY5Eg@mail.gmail.com>
- In-Reply-To
- <1442766131-45017-2-git-send-email-larsxschneider@gmail.com>
On Sun, Sep 20, 2015 at 12:22 PM, <larsxschneider@gmail.com> wrote:
> A P4 repository can get into a state where it contains a file with > type UTF-16 that does not contain a valid UTF-16 BOM. If git-p4 > attempts to retrieve the file then the process crashes with a > "Translation of file content failed" error.
Hmm, are these tests going to succeed only after patch 2/2 is applied? If so, the order of these patches is backward since you want each patch to be able to stand on its own and not introduce any sort of breakage.
Show 61 quoted lines
> More info here: http://answers.perforce.com/articles/KB/3117 > > Signed-off-by: Lars Schneider <larsxschneider@gmail.com> > --- > diff --git a/t/t9824-git-p4-handle-utf16-without-bom.sh b/t/t9824-git-p4-handle-utf16-without-bom.sh > new file mode 100755 > index 0000000..517f6da > --- /dev/null > +++ b/t/t9824-git-p4-handle-utf16-without-bom.sh > @@ -0,0 +1,49 @@ > +#!/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 -i.bak "$ d" 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 > -- > 2.5.1