Re: [PATCH v8 4/4] t1006: add tests for git cat-file --literally
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Apr 18, 2015, 00:00 UTC
- Message-ID
- <CAPig+cRoY5OEvoZ4oysdiDTpMh+mYgL3dYAOYOhnRgH_=a1fzQ@mail.gmail.com>
- In-Reply-To
- <1429117232-5102-1-git-send-email-karthik.188@gmail.com>
On Wed, Apr 15, 2015 at 1:00 PM, Karthik Nayak <karthik.188@gmail.com> wrote:
Show 13 quoted lines
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com> > --- > diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh > index ab36b1e..61fab78 100755 > --- a/t/t1006-cat-file.sh > +++ b/t/t1006-cat-file.sh > @@ -296,4 +308,21 @@ test_expect_success '%(deltabase) reports packed delta bases' ' > } > ' > > +bogus_type="bogus" > +bogus_content="bogus" > +bogus_size=$(strlen $bogus_content)
If someone ever changes the value of 'bogus_content' so it contains whitespace, then the result of strlen() will be incorrect as you've invoked it. You should quote its argument (as other callers in this script do) to safeguard against such an issue.
bogus_size=$(strlen "$bogus_content")
> +bogus_sha1=$(printf $bogus_content | git hash-object -t $bogus_type --literally -w --stdin)
Ditto regarding quoting of 'bogus_content'.
Also, if someone ever modifies 'bogus_content' so that it contains a literal '%' (such as "%s"), then your printf() invocation will misbehave. Either call it like this:
$(printf '%s' "$bogus_content" | ...)
or, better yet, call echo_without_newline() as other similar code elsewhere in this script does, and as suggested earlier[1].
[1]: http://article.gmane.org/gmane.comp.version-control.git/266972/
Show 8 quoted lines
> +test_expect_success "Type of broken object is correct" ' > + echo $bogus_type >expect && > + git cat-file -t --literally $bogus_sha1 >actual && > + test_cmp expect actual > +' > + > +test_expect_success "Size of broken object is correct" ' > + echo $bogus_size >expect &&
Bad indentation. Use tab rather than spaces.
Show 7 quoted lines
> + git cat-file -s --literally $bogus_sha1 >actual && > + test_cmp expect actual > +' > + > test_done > -- > 2.4.0.rc1.249.gb598846