All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: larsxschneider@gmail.com
Cc: git@vger.kernel.org, luke@diamand.org, sunshine@sunshineco.com,
	tboegi@web.de
Subject: Re: [PATCH v4 1/2] git-p4: add test case for "Translation of file content failed" error
Date: Mon, 21 Sep 2015 11:09:31 -0700	[thread overview]
Message-ID: <xmqqio73abl0.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <1442829701-2347-2-git-send-email-larsxschneider@gmail.com> (larsxschneider@gmail.com's message of "Mon, 21 Sep 2015 12:01:40 +0200")

larsxschneider@gmail.com writes:

> From: Lars Schneider <larsxschneider@gmail.com>
>
> 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.
>
> More info here: http://answers.perforce.com/articles/KB/3117
>
> Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
> ---
>  t/t9825-git-p4-handle-utf16-without-bom.sh | 50 ++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
>  create mode 100755 t/t9825-git-p4-handle-utf16-without-bom.sh
>
> diff --git a/t/t9825-git-p4-handle-utf16-without-bom.sh
> b/t/t9825-git-p4-handle-utf16-without-bom.sh
> new file mode 100755
> index 0000000..65c3c4e
> --- /dev/null
> +++ b/t/t9825-git-p4-handle-utf16-without-bom.sh
> @@ -0,0 +1,50 @@
> +#!/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 &&

Do you need the space between the address $ (i.e. the last line) and
operation 'd' (i.e. delete it)?  I am asking because that looks very
unusual at least in our codebase.

> +		mv -- depot/file1,v.new depot/file1,v &&
> +		printf "@$UTF16@" >>depot/file1,v &&
> +		p4d -jrF checkpoint.1
> +	)
> +'
> +
> +test_expect_failure '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

  reply	other threads:[~2015-09-21 18:10 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-21 10:01 [PATCH v4 0/2] git-p4: handle "Translation of file content failed" larsxschneider
2015-09-21 10:01 ` [PATCH v4 1/2] git-p4: add test case for "Translation of file content failed" error larsxschneider
2015-09-21 18:09   ` Junio C Hamano [this message]
2015-09-21 23:03     ` Lars Schneider
2015-09-21 23:54       ` Eric Sunshine
2015-09-22  1:10         ` Junio C Hamano
2015-09-22 10:09           ` Lars Schneider
2015-09-22 16:02             ` Junio C Hamano
2015-09-22 19:11               ` Michael Blume
2015-09-22 19:17                 ` Junio C Hamano
2015-09-23  7:34                   ` Lars Schneider
2015-09-22 10:12         ` Lars Schneider
2015-09-22 16:02           ` Junio C Hamano
2015-09-21 10:01 ` [PATCH v4 2/2] git-p4: handle "Translation of file content failed" larsxschneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqio73abl0.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=larsxschneider@gmail.com \
    --cc=luke@diamand.org \
    --cc=sunshine@sunshineco.com \
    --cc=tboegi@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.