From: Jakub Narebski <jnareb@gmail.com>
To: lists@haller-berlin.de (Stefan Haller)
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Add tests to demonstrate update-index bug with core.symlinks/core.filemode
Date: Sun, 24 Oct 2010 16:41:44 -0700 (PDT) [thread overview]
Message-ID: <m37hh7jh17.fsf@localhost.localdomain> (raw)
In-Reply-To: <1jqvbx3.1icsj8j1jf26lfM%lists@haller-berlin.de>
lists@haller-berlin.de (Stefan Haller) writes:
> This is the first time I write a git test, so please point out anything
> I might have done wrong. Also, I still don't have much of an idea how or
> where to fix the problem, so any guidance towards that is much
> appreciated.
>
> t/t2107-update-index-executable-bit-merged.sh | 44 +++++++++++++++++++++++++
> t/t2108-update-index-symlink-merged.sh | 43 ++++++++++++++++++++++++
> 2 files changed, 87 insertions(+), 0 deletions(-)
> create mode 100755 t/t2107-update-index-executable-bit-merged.sh
> create mode 100755 t/t2108-update-index-symlink-merged.sh
I guess that because those two tests are conceptually about the same
thing, namely errors in git-update-index handling permissions which
cannot be represented on filesystem (core.filemode and/or
core.symlinks is false).
> diff --git a/t/t2107-update-index-executable-bit-merged.sh b/t/t2107-update-index-executable-bit-merged.sh
> new file mode 100755
> index 0000000..7a8f740
> --- /dev/null
> +++ b/t/t2107-update-index-executable-bit-merged.sh
> @@ -0,0 +1,44 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2010 Stefan Haller
> +#
> +
> +test_description='git update-index on filesystem w/o symlinks test.
> +
> +This tests that git update-index keeps the executable bit when staging
> +an unmerged file after a merge if core.filemode is false.'
All right.
> +
> +. ./test-lib.sh
All right.
> +
> +test_expect_success \
> +'preparation' '
> +git config core.filemode false &&
> +touch foo &&
> +git add foo &&
> +git update-index --chmod=+x foo &&
> +git commit -m "Create"'
The suggested way of coding in test script looks like the following:
+test_expect_success 'preparation' '
+ git config core.filemode false &&
+ >foo &&
+ git add foo &&
+ git update-index --chmod=+x foo &&
+ git commit -m "Create"
+'
BTW. does it matter that 'foo' is empty?
[...]
> +test_expect_failure \
> +'check that filemode is still 100755' '
> +case "`git ls-files --stage --cached -- foo`" in
> +"100755 "*foo) echo pass;;
> +*) echo fail; git ls-files --stage --cached -- foo; (exit 1);;
> +esac'
Wouldn't it be better to simply prepare expected output (perhaps with
stubs for hashes), and compare actual with expected output?
Also, weren't you able to use test_tick, test_commit, test_merge
functions from test-lib.sh?
--
Jakub Narebski
Poland
ShadeHawk on #git
next prev parent reply other threads:[~2010-10-24 23:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 17:28 git-update-index loses executable bit for unmerged files when core.filemode is false Stefan Haller
2010-10-24 11:40 ` [PATCH] Add tests to demonstrate update-index bug with core.symlinks/core.filemode Stefan Haller
2010-10-24 18:53 ` Stefan Haller
2010-10-25 7:34 ` Junio C Hamano
2010-10-24 23:41 ` Jakub Narebski [this message]
2010-10-25 8:59 ` Stefan Haller
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=m37hh7jh17.fsf@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=lists@haller-berlin.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).