From: Stephen & Linda Smith <ischis2@cox.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH 3/3] t0006-date.sh: add `human` date format tests.
Date: Wed, 02 Jan 2019 19:36:16 -0700 [thread overview]
Message-ID: <2832897.SWEsZI4Xea@thunderbird> (raw)
In-Reply-To: <xmqqva37j595.fsf@gitster-ct.c.googlers.com>
On Wednesday, January 2, 2019 11:15:02 AM MST Junio C Hamano wrote:
> 'date +%s' is used everywhere in this patch but has never been used
> in our test suite before. It is not portable.
So I don't make this mistake again, Is there a reference somewhere for that is
and is not portable?
>
> We perhaps can use "test-tool date timestamp", like so
>
> check_human_date $(test-tool date timestamp "18000 seconds ago") ...
>
> or moving the part that munges 18000 into the above form inside
> check_human_date helper function, e.g.
>
> check_human_date () {
> commit_date=$(test-tool date timestamp "$1 seconds ago")
> commit_date="$commit_date +0200"
> expect=$2
> ...
> }
>
> which would let us write
>
> check_human_date 432000" $THIS_YEAR_REGEX # 5 days ago
Thanks
>
> > +check_human_date() {
> > + commit_date=$1
> > + expect=$2
> > + test_expect_success "$commit_date" "
> > + echo $expect $commit_date >dates &&
> > + git add dates &&
> > + git commit -m 'Expect String' --date=\"$commit_date\" dates &&
> > + git log -1 --date=human | grep \"^Date:\" >actual &&
> > + grep \"$expect\" actual
> > +"
>
> As the body of the test_expect_success helper is eval'ed, variables
> $commit_date and $expect should be visible to it, without turning
> them into values before executing test_expect_success function,
> i.e.
>
> test_expect_success "$commit_date" '
> echo "$expect $commit_date" >dates &&
> ...
> git commit -m "Expect String" --date="$commit_date" dates &&
> git show -s --date=human | grep '^Date:" >actual &&
> grep "$expect" actual
> '
>
> which would reduce the need for unreadable backslashes.
I was worried about embedded spaces that might not be parsed correctly by the
called function. I will update
>
> Instead of duplicating, perhaps move this to a more common place?
> Would it make sense to make it "check_date_format ()" helper by
> passing another argument to parameterize --date=human part
I had considered that, but then noted that for the other formats specific
strings were being used. The use of specific strings was possible since the
other formats were always guarenteed to have the same string literal due to a
singe unvarying input.
I don't mind parameterize the format and it would make the solution more
general.
> > "Stephen P. Smith" <ischis2@cox.net> writes:
> > +# Subtract some known constant time and look for expected field format
> > +TODAY_REGEX='5 hours ago'
> > +THIS_YEAR_REGEX='[A-Z][a-z][a-z] [A-Z][a-z][a-z] [0-9]*
> > [012][0-9]:[0-6][0-9]' +MORE_THAN_A_YEAR_REGEX='[A-Z][a-z][a-z]
> > [A-Z][a-z][a-z] [0-9]* [0-9][0-9][0-9][0-9]' +check_human_date "$(($(date
> > +%s)-18000)) +0200" $TODAY_REGEX # 5 hours ago +check_human_date
> > "$(($(date +%s)-432000)) +0200" $THIS_YEAR_REGEX # 5 days ago
> > +check_human_date() {
> > + commit_date=$1
> > + expect=$2
> > + test_expect_success "$commit_date" "
> > + echo $expect $commit_date >dates &&
> > + git add dates &&
> > + git commit -m 'Expect String' --date=\"$commit_date\" dates &&
> > + git show --date=human | grep \"^Date:\" >actual &&
>
> Using "show" here is much better than "log -1" above; using "show
> -s" would be even better.
I was attempting to test both git log and git show. For get log the `-1` was
to only get the latest commit.
Are you suggesting that t4202-log.sh not be updated and that only and t7007-
show.sh and t0006-date.sh updated?
Side note: I found when updating that all three scripts that log and show
returned the same formats, but date returned a different string if the delta
date was less than 24hours
I just noted that the patch 3/3 should be re-titled since the tests are
currently for three commands.
Hope you are better.
sps
next prev parent reply other threads:[~2019-01-03 2:36 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-31 0:31 [PATCH 0/3] Add 'human' date format Stephen P. Smith
2018-12-31 0:31 ` [PATCH 1/3] " Stephen P. Smith
2019-01-03 7:37 ` Jeff King
2019-01-03 13:19 ` Stephen P. Smith
2019-01-04 7:50 ` Jeff King
2019-01-04 13:03 ` Stephen P Smith
2019-01-06 6:19 ` Jeff King
2018-12-31 0:31 ` [PATCH 2/3] Add 'human' date format documentation Stephen P. Smith
2018-12-31 0:31 ` [PATCH 3/3] t0006-date.sh: add `human` date format tests Stephen P. Smith
2019-01-02 18:15 ` Junio C Hamano
2019-01-03 2:36 ` Stephen & Linda Smith [this message]
2019-01-03 6:42 ` Junio C Hamano
2019-01-03 13:20 ` Stephen P. Smith
2019-01-03 21:14 ` Philip Oakley
2019-01-03 21:45 ` Junio C Hamano
2019-01-03 23:57 ` Stephen P. Smith
2019-01-03 7:44 ` Jeff King
2019-01-03 13:12 ` Stephen & Linda Smith
2019-01-08 21:27 ` Johannes Sixt
2019-01-09 0:44 ` Stephen P. Smith
2019-01-09 6:58 ` Johannes Sixt
2019-01-10 1:50 ` Stephen & Linda Smith
2019-01-18 6:18 ` [PATCH v2 0/5] Re-roll of 'human' date format patch set Stephen P. Smith
2019-01-18 6:18 ` [PATCH v2 1/5] Add 'human' date format Stephen P. Smith
2019-01-18 6:18 ` [PATCH v2 2/5] Remove the proposed use of auto as secondary way to specify human Stephen P. Smith
2019-01-18 18:35 ` Junio C Hamano
2019-01-19 3:44 ` Stephen & Linda Smith
2019-01-18 6:18 ` [PATCH v2 3/5] Add 'human' date format documentation Stephen P. Smith
2019-01-18 18:47 ` Junio C Hamano
2019-01-18 6:18 ` [PATCH v2 4/5] Add `human` format to test-tool Stephen P. Smith
2019-01-18 19:03 ` Junio C Hamano
2019-01-20 22:11 ` Stephen P. Smith
2019-01-22 18:29 ` Junio C Hamano
2019-01-18 6:18 ` [PATCH v2 5/5] Add `human` date format tests Stephen P. Smith
2019-01-18 19:24 ` Junio C Hamano
2019-01-21 5:31 ` [PATCH v3 0/5] Re-roll of 'human' date format patch set Stephen P. Smith
2019-01-21 5:31 ` [PATCH v3 1/5] Add 'human' date format Stephen P. Smith
2019-01-21 5:31 ` [PATCH v3 2/5] Replace the proposed 'auto' mode with 'auto:' Stephen P. Smith
2019-01-21 5:31 ` [PATCH v3 3/5] Add 'human' date format documentation Stephen P. Smith
2019-01-21 5:31 ` [PATCH v3 4/5] Add `human` format to test-tool Stephen P. Smith
2019-01-22 22:34 ` Junio C Hamano
2019-01-21 5:31 ` [PATCH v3 5/5] Add `human` date format tests Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 0/5] Re-roll of 'human' date format patch set Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 1/5] Add 'human' date format Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 2/5] Replace the proposed 'auto' mode with 'auto:' Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 3/5] Add 'human' date format documentation Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 4/5] Add `human` format to test-tool Stephen P. Smith
2019-01-29 3:50 ` [PATCH v4 5/5] Add `human` date format tests Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 0/5] Re-roll of 'human' date format patch set Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 1/5] Add 'human' date format Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 2/5] Replace the proposed 'auto' mode with 'auto:' Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 3/5] Add 'human' date format documentation Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 4/5] Add `human` format to test-tool Stephen P. Smith
2019-01-21 5:16 ` [PATCH v3 5/5] Add `human` date format tests Stephen P. Smith
2019-01-21 15:04 ` SZEDER Gábor
2019-01-22 0:53 ` Stephen & Linda Smith
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2832897.SWEsZI4Xea@thunderbird \
--to=ischis2@cox.net \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=torvalds@linux-foundation.org \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).