git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: larsxschneider@gmail.comNext: Lars Schneider
Message 3 of 12 in “git-p4: handle "Translation of file content failed"”
  1. 0/2 git-p4: handle "Translation of file content failed"larsxschneider@gmail.com, Sep 20, 2015
  2. 1/2 git-p4: add test case for "Translation of file content failed" errorlarsxschneider@gmail.com, Sep 20, 2015
  3. Eric SunshineSep 20, 2015
  4. Lars SchneiderSep 20, 2015
  5. Eric SunshineSep 20, 2015
  6. Luke DiamandSep 21, 2015
  7. Junio C HamanoSep 21, 2015
  8. Luke DiamandSep 21, 2015
  9. Lars SchneiderSep 21, 2015
  10. Torsten BögershausenSep 21, 2015
  11. Junio C HamanoSep 21, 2015
  12. 2/2 git-p4: handle "Translation of file content failed"larsxschneider@gmail.com, Sep 20, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.