From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Jeff King'" <peff@peff.net>
Cc: "'brian m. carlson'" <sandals@crustytoothpaste.net>,
"'Junio C Hamano'" <gitster@pobox.com>, <git@vger.kernel.org>,
"'Linux Kernel'" <linux-kernel@vger.kernel.org>,
<git-packagers@googlegroups.com>
Subject: RE: [Breakage] Git v2.21.0-rc0 - t5318 (NonStop)
Date: Fri, 8 Feb 2019 17:53:53 -0500 [thread overview]
Message-ID: <006601d4c001$2de3a160$89aae420$@nexbridge.com> (raw)
In-Reply-To: <20190208223512.GA2135@sigill.intra.peff.net>
On February 8, 2019 17:35, Jeff King wrote:
> On Fri, Feb 08, 2019 at 05:12:43PM -0500, Randall S. Becker wrote:
> > On February 8, 2019 17:07, brian m. carlson wrote:
> > > On Fri, Feb 08, 2019 at 02:31:57PM -0500, Jeff King wrote:
> > > > > It is available AFAIK on Linux, POSIX, and Windows under Cygwin.
> > > > > That's more than /dev/zero has anyway. I have the patch ready if
> > > > > you want it.
> > > >
> > > > Is it POSIX? Certainly truncate() is, but I didn't think the
> > > > command-line tool was. If it really is available everywhere, then
> > > > yeah, I'd be fine with it.
> > >
> > > It's not. POSIX doesn't specify the command, and macOS lacks it, I
> believe.
> >
> > I'm happy to modify the test (it is in one spot), to make a decision based
> on:
> > a) whether /dev/zero exists
> > b) whether the system is a NonStop
> > c) something else
> >
> > What would you all prefer? It doesn't matter to me one way or another,
> > as long as I can get the dependency to /dev/zero removed so tests will
> > run here.
>
> For the case in t5318, I think we can just put the NULs in a file. Does this
> work on your platform?
Yes, should work just fine.
>
> ---
> diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh index
> 16d10ebce8..6d0ccc7eba 100755
> --- a/t/t5318-commit-graph.sh
> +++ b/t/t5318-commit-graph.sh
> @@ -383,7 +383,8 @@ corrupt_graph_and_verify() {
> cp $objdir/info/commit-graph commit-graph-backup &&
> printf "$data" | dd of="$objdir/info/commit-graph" bs=1
> seek="$pos" conv=notrunc &&
> dd of="$objdir/info/commit-graph" bs=1 seek="$zero_pos" count=0
> &&
> - dd if=/dev/zero of="$objdir/info/commit-graph" bs=1
> seek="$zero_pos" count=$(($orig_size - $zero_pos)) &&
> + gen_zero_bytes $(($orig_size - $zero_pos)) >zeroes &&
> + dd if=zeroes of="$objdir/info/commit-graph" bs=1 seek="$zero_pos"
> &&
> test_must_fail git commit-graph verify 2>test_err &&
> grep -v "^+" test_err >err &&
> test_i18ngrep "$grepstr" err
> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index
> 92cf8f812c..4afab14431 100644
> --- a/t/test-lib-functions.sh
> +++ b/t/test-lib-functions.sh
> @@ -1302,3 +1302,8 @@ test_set_port () {
> port=$(($port + ${GIT_TEST_STRESS_JOB_NR:-0}))
> eval $var=$port
> }
> +
> +# Generate an output of $1 bytes of all zeroes (NULs, not ASCII zeroes).
> +gen_zero_bytes () {
> + perl -e 'print "\0" x $ARGV[0]' "$@"
> +}
This function does work on platform, so it's good.
> For the others that need infinite zeroes, I think using "yes" makes more
> sense, though we could also teach this function to accept an "infinity"
> parameter.
You could be sneaky about it, I suppose
+# Generate an output of $1 bytes of all zeroes (NULs, not ASCII zeroes).
+ gen_zero_bytes () {
+ if [ $1 -eq -1 ]; then
+ yes | tr 'y' '\0'
+ else
+ perl -e 'print "\0" x $ARGV[0]' "$@"
+ }
Or something alone those lines. It's not even slightly elegant, though. It would be better inside perl, so just
+# Generate an output of $1 bytes of all zeroes (NULs, not ASCII zeroes). If $1 is < 0, output forever.
+ gen_zero_bytes () {
+ perl -e ' if ($ARGV[0] < 0) { while (-1) { print "\0" } } else { print "\0" x $ARGV[0] }' "$@"
+ }
Cheers,
Randall
next prev parent reply other threads:[~2019-02-08 22:54 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-08 11:08 [Breakage] Git v2.21.0-rc0 - t5318 (NonStop) Randall S. Becker
2019-02-08 16:50 ` Jeff King
2019-02-08 17:49 ` Randall S. Becker
2019-02-08 18:03 ` Jeff King
2019-02-08 18:29 ` Johannes Sixt
2019-02-08 19:31 ` Junio C Hamano
2019-02-08 18:47 ` Randall S. Becker
2019-02-08 19:15 ` Jeff King
2019-02-08 19:26 ` Randall S. Becker
2019-02-08 19:31 ` Jeff King
2019-02-08 20:38 ` Randall S. Becker
2019-02-08 21:00 ` Jeff King
2019-02-08 21:44 ` Randall S. Becker
2019-02-08 22:07 ` brian m. carlson
2019-02-08 22:12 ` Randall S. Becker
2019-02-08 22:18 ` brian m. carlson
2019-02-08 22:36 ` Randall S. Becker
2019-02-08 22:35 ` Jeff King
2019-02-08 22:53 ` Randall S. Becker [this message]
2019-02-09 4:24 ` Jeff King
2019-02-09 8:39 ` Johannes Sixt
2019-02-09 16:55 ` Randall S. Becker
2019-02-09 23:29 ` Jeff King
2019-02-10 9:40 ` Johannes Sixt
2019-02-09 16:53 ` Randall S. Becker
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='006601d4c001$2de3a160$89aae420$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=git-packagers@googlegroups.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peff@peff.net \
--cc=sandals@crustytoothpaste.net \
/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.