git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] t0006-date.sh: add `human` date format tests.

From
Johannes Sixt <j6t@kdbg.org>
Date
Jan 8, 2019, 21:27 UTC
Message-ID
<a8a586d9-dad7-606f-948c-06725ac3e062@kdbg.org>
In-Reply-To
<20181231003150.8031-4-ischis2@cox.net>
Am 31.12.18 um 01:31 schrieb Stephen P. Smith:
Show 98 quoted lines
> +check_human_date () {
> +	time=$1
> +	expect=$2
> +	test_expect_success "check date ($format:$time)" '
> +		echo "$time -> $expect" >expect &&
> +		TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
> +		grep "$expect" actual
> +	'
> +}
> +
>   # arbitrary but sensible time for examples
>   TIME='1466000000 +0200'
>   check_show iso8601 "$TIME" '2016-06-15 16:13:20 +0200'
> @@ -52,6 +62,20 @@ check_show unix "$TIME" '1466000000'
>   check_show iso-local "$TIME" '2016-06-15 14:13:20 +0000'
>   check_show raw-local "$TIME" '1466000000 +0000'
>   check_show unix-local "$TIME" '1466000000'
> +check_show human "$TIME" 'Jun 15 2016'
> +
> +# 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 "$(($(date +%s)-1728000)) +0200" $THIS_YEAR_REGEX # 3 weeks ago
> +check_human_date "$(($(date +%s)-13000000)) +0200" $THIS_YEAR_REGEX # 5 months ago
> +check_human_date "$(($(date +%s)-31449600)) +0200" $THIS_YEAR_REGEX # 12 months ago
> +check_human_date "$(($(date +%s)-37500000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 2 months ago
> +check_human_date "$(($(date +%s)-55188000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 9 months ago
> +check_human_date "$(($(date +%s)-630000000)) +0200" $MORE_THAN_A_YEAR_REGEX # 20 years ago
>   
>   check_show 'format:%z' "$TIME" '+0200'
>   check_show 'format-local:%z' "$TIME" '+0000'
> diff --git a/t/t4202-log.sh b/t/t4202-log.sh
> index 819c24d10e..d7f3b73650 100755
> --- a/t/t4202-log.sh
> +++ b/t/t4202-log.sh
> @@ -1707,4 +1707,28 @@ test_expect_success '--exclude-promisor-objects does not BUG-crash' '
>   	test_must_fail git log --exclude-promisor-objects source-a
>   '
>   
> +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
> +"
> +}
> +
> +TODAY_REGEX='[A-Z][a-z][a-z] [012][0-9]:[0-6][0-9] .0200'
> +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 "$(($(date +%s)-1728000)) +0200" $THIS_YEAR_REGEX # 3 weeks ago
> +check_human_date "$(($(date +%s)-13000000)) +0200" $THIS_YEAR_REGEX # 5 months ago
> +check_human_date "$(($(date +%s)-31449600)) +0200" $THIS_YEAR_REGEX # 12 months ago
> +check_human_date "$(($(date +%s)-37500000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 2 months ago
> +check_human_date "$(($(date +%s)-55188000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 9 months ago
> +check_human_date "$(($(date +%s)-630000000)) +0200" $MORE_THAN_A_YEAR_REGEX # 20 years ago
> +
>   test_done
> diff --git a/t/t7007-show.sh b/t/t7007-show.sh
> index 42d3db6246..0a0334a8b5 100755
> --- a/t/t7007-show.sh
> +++ b/t/t7007-show.sh
> @@ -128,4 +128,29 @@ test_expect_success 'show --graph is forbidden' '
>     test_must_fail git show --graph HEAD
>   '
>   
> +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 &&
> +		grep \"$expect\" actual
> +"
> +}
> +
> +TODAY_REGEX='[A-Z][a-z][a-z] [012][0-9]:[0-6][0-9] .0200'
> +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 "$(($(date +%s)-1728000)) +0200" $THIS_YEAR_REGEX # 3 weeks ago
> +check_human_date "$(($(date +%s)-13000000)) +0200" $THIS_YEAR_REGEX # 5 months ago
> +check_human_date "$(($(date +%s)-31449600)) +0200" $THIS_YEAR_REGEX # 12 months ago
> +check_human_date "$(($(date +%s)-37500000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 2 months ago
> +check_human_date "$(($(date +%s)-55188000)) +0200" $MORE_THAN_A_YEAR_REGEX # 1 year, 9 months ago
> +check_human_date "$(($(date +%s)-630000000)) +0200" $MORE_THAN_A_YEAR_REGEX # 20 years ago

The $...REGEX expansions must be put in double-quotes to protect them from field splitting. But then the tests do not pass anymore (I tested only t4202). Please revisit this change.

-- Hannes
Previous: Stephen & Linda SmithNext: Stephen P. Smith
Message 13 of 56 in “Add 'human' date format”
  1. 0/3 Add 'human' date formatStephen P. Smith, Dec 31, 2018
  2. 2/3 Add 'human' date format documentationStephen P. Smith, Dec 31, 2018
  3. 3/3 t0006-date.sh: add `human` date format tests.Stephen P. Smith, Dec 31, 2018
  4. Junio C HamanoJan 2, 2019
  5. Stephen & Linda SmithJan 3, 2019
  6. Junio C HamanoJan 3, 2019
  7. Stephen P. SmithJan 3, 2019
  8. Philip OakleyJan 3, 2019
  9. Junio C HamanoJan 3, 2019
  10. Stephen P. SmithJan 3, 2019
  11. Jeff KingJan 3, 2019
  12. Stephen & Linda SmithJan 3, 2019
  13. Johannes SixtJan 8, 2019
  14. Stephen P. SmithJan 9, 2019
  15. Johannes SixtJan 9, 2019
  16. Stephen & Linda SmithJan 10, 2019
  17. 1/3 Add 'human' date formatStephen P. Smith, Dec 31, 2018
  18. Jeff KingJan 3, 2019
  19. Stephen P. SmithJan 3, 2019
  20. Jeff KingJan 4, 2019
  21. Stephen P SmithJan 4, 2019
  22. Jeff KingJan 6, 2019
  23. 0/5 Re-roll of 'human' date format patch setStephen P. Smith, Jan 18, 2019
  24. 3/5 Add 'human' date format documentationStephen P. Smith, Jan 18, 2019
  25. Junio C HamanoJan 18, 2019
  26. 2/5 Remove the proposed use of auto as secondary way to specify humanStephen P. Smith, Jan 18, 2019
  27. Junio C HamanoJan 18, 2019
  28. Stephen & Linda SmithJan 19, 2019
  29. 5/5 Add `human` date format tests.Stephen P. Smith, Jan 18, 2019
  30. Junio C HamanoJan 18, 2019
  31. 4/5 Add `human` format to test-toolStephen P. Smith, Jan 18, 2019
  32. Junio C HamanoJan 18, 2019
  33. Stephen P. SmithJan 20, 2019
  34. Junio C HamanoJan 22, 2019
  35. 1/5 Add 'human' date formatStephen P. Smith, Jan 18, 2019
  36. 0/5 Re-roll of 'human' date format patch setStephen P. Smith, Jan 21, 2019
  37. 1/5 Add 'human' date formatStephen P. Smith, Jan 21, 2019
  38. 2/5 Replace the proposed 'auto' mode with 'auto:'Stephen P. Smith, Jan 21, 2019
  39. 5/5 Add `human` date format tests.Stephen P. Smith, Jan 21, 2019
  40. 3/5 Add 'human' date format documentationStephen P. Smith, Jan 21, 2019
  41. 4/5 Add `human` format to test-toolStephen P. Smith, Jan 21, 2019
  42. Junio C HamanoJan 22, 2019
  43. 0/5 Re-roll of 'human' date format patch setStephen P. Smith, Jan 29, 2019
  44. 4/5 Add `human` format to test-toolStephen P. Smith, Jan 29, 2019
  45. 1/5 Add 'human' date formatStephen P. Smith, Jan 29, 2019
  46. 3/5 Add 'human' date format documentationStephen P. Smith, Jan 29, 2019
  47. 2/5 Replace the proposed 'auto' mode with 'auto:'Stephen P. Smith, Jan 29, 2019
  48. 5/5 Add `human` date format tests.Stephen P. Smith, Jan 29, 2019
  49. 0/5 Re-roll of 'human' date format patch setStephen P. Smith, Jan 21, 2019
  50. 1/5 Add 'human' date formatStephen P. Smith, Jan 21, 2019
  51. 5/5 Add `human` date format tests.Stephen P. Smith, Jan 21, 2019
  52. SZEDER GáborJan 21, 2019
  53. Stephen & Linda SmithJan 22, 2019
  54. 4/5 Add `human` format to test-toolStephen P. Smith, Jan 21, 2019
  55. 3/5 Add 'human' date format documentationStephen P. Smith, Jan 21, 2019
  56. 2/5 Replace the proposed 'auto' mode with 'auto:'Stephen P. Smith, Jan 21, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.