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

[PATCH 3/3] tests: add date printing and parsing tests

From
Jeff King <peff@peff.net>
Date
Aug 30, 2009, 21:47 UTC
Message-ID
<20090830214741.GC16119@coredump.intra.peff.net>
In-Reply-To
<20090830093642.GA30922@coredump.intra.peff.net>

Until now, there was no coverage of relative date printing or approxidate parsing routines (mainly because we had no way of faking the "now" time for relative date calculations, which made consistent testing impossible).

This new script tries to exercise the basic features of show_date and approxidate. The only specific problem case tested is showing relative year/month dates in the latter half of a year, as fixed by 607a9e8.

Signed-off-by: Jeff King <peff@peff.net>
---
Like I said, this is really just to exercise the basic code paths.
But now that the infrastructure is there, we can add any corner cases
or verify new features or bug fixes as they come up. Patches welcome. :)
 t/t0006-date.sh |   71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)
 create mode 100755 t/t0006-date.sh
diff --git a/t/t0006-date.sh b/t/t0006-date.sh
new file mode 100755
index 0000000..4beb44b
--- /dev/null
+++ b/t/t0006-date.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+test_description='test date parsing and printing'
+. ./test-lib.sh
+
+# arbitrary reference time: 2009-08-30 19:20:00
+TEST_DATE_NOW=1251660000; export TEST_DATE_NOW
+
+check_show() {
+	t=$(($TEST_DATE_NOW - $1))
+	echo "$t -> $2" >expect
+	test_expect_success "relative date ($2)" "
+	test-date show $t >actual &&
+	test_cmp expect actual
+	"
+}
+
+check_show 5 '5 seconds ago'
+check_show 300 '5 minutes ago'
+check_show 18000 '5 hours ago'
+check_show 432000 '5 days ago'
+check_show 1728000 '3 weeks ago'
+check_show 13000000 '5 months ago'
+check_show 37500000 '1 year, 2 months ago'
+check_show 55188000 '1 year, 9 months ago'
+check_show 630000000 '20 years ago'
+
+check_parse() {
+	echo "$1 -> $2" >expect
+	test_expect_success "parse date ($1)" "
+	test-date parse '$1' >actual &&
+	test_cmp expect actual
+	"
+}
+
+check_parse 2008 bad
+check_parse 2008-02 bad
+check_parse 2008-02-14 '2008-02-14 00:00:00 +0000'
+check_parse '2008-02-14 20:30:45' '2008-02-14 20:30:45 +0000'
+
+check_approxidate() {
+	echo "$1 -> $2 +0000" >expect
+	test_expect_success "parse approxidate ($1)" "
+	test-date approxidate '$1' >actual &&
+	test_cmp expect actual
+	"
+}
+
+check_approxidate now '2009-08-30 19:20:00'
+check_approxidate '5 seconds ago' '2009-08-30 19:19:55'
+check_approxidate 5.seconds.ago '2009-08-30 19:19:55'
+check_approxidate 10.minutes.ago '2009-08-30 19:10:00'
+check_approxidate yesterday '2009-08-29 19:20:00'
+check_approxidate 3.days.ago '2009-08-27 19:20:00'
+check_approxidate 3.weeks.ago '2009-08-09 19:20:00'
+check_approxidate 3.months.ago '2009-05-30 19:20:00'
+check_approxidate 2.years.3.months.ago '2007-05-30 19:20:00'
+
+check_approxidate '6am yesterday' '2009-08-29 06:00:00'
+check_approxidate '6pm yesterday' '2009-08-29 18:00:00'
+check_approxidate '3:00' '2009-08-30 03:00:00'
+check_approxidate '15:00' '2009-08-30 15:00:00'
+check_approxidate 'noon today' '2009-08-30 12:00:00'
+check_approxidate 'noon yesterday' '2009-08-29 12:00:00'
+
+check_approxidate 'last tuesday' '2009-08-25 19:20:00'
+check_approxidate 'July 5th' '2009-07-05 19:20:00'
+check_approxidate '06/05/2009' '2009-06-05 00:00:00'
+check_approxidate '06.05.2009' '2009-05-06 00:00:00'
+
+test_done
-- 
1.6.4.2.375.g73938
Previous: Jeff King
Message 47 of 47 in “Round-down years in "years+months" relative date view”
  1. Round-down years in "years+months" relative date viewDavid Reiss, Aug 27, 2009
  2. Jeff KingAug 28, 2009
  3. Alex RiesenAug 28, 2009
  4. Jeff KingAug 28, 2009
  5. Alex RiesenAug 28, 2009
  6. Jeff KingAug 28, 2009
  7. Alex RiesenAug 28, 2009
  8. A Large Angry SCMAug 28, 2009
  9. Nicolas PitreAug 28, 2009
  10. Jeff KingAug 28, 2009
  11. Alex RiesenAug 28, 2009
  12. Jeff KingAug 28, 2009
  13. Alex RiesenAug 28, 2009
  14. Alex RiesenAug 28, 2009
  15. Nicolas PitreAug 28, 2009
  16. Alex RiesenAug 28, 2009
  17. Nicolas PitreAug 28, 2009
  18. Alex RiesenAug 28, 2009
  19. Nicolas PitreAug 28, 2009
  20. Alex RiesenAug 28, 2009
  21. Jeff KingAug 28, 2009
  22. Alex RiesenAug 28, 2009
  23. Alex RiesenAug 28, 2009
  24. Allow testing of _relative family of time formatting and parsing functionsAlex Riesen, Aug 28, 2009
  25. Alex RiesenAug 28, 2009
  26. Junio C HamanoAug 29, 2009
  27. Alex RiesenAug 30, 2009
  28. Jeff KingAug 30, 2009
  29. Alex RiesenAug 30, 2009
  30. 1/2 Add date formatting and parsing functions relative to a given timeAlex Riesen, Aug 30, 2009
  31. 2/2 Allow testing of _relative family of time formatting and parsing functionsAlex Riesen, Aug 30, 2009
  32. Jeff KingAug 30, 2009
  33. Jeff KingAug 30, 2009
  34. Alex RiesenAug 30, 2009
  35. Jeff KingAug 30, 2009
  36. Alex RiesenAug 30, 2009
  37. 1/3 Add date formatting and parsing functions relative to a given timeJeff King, Aug 30, 2009
  38. Jeff KingAug 30, 2009
  39. Jeff KingAug 31, 2009
  40. 1/4 Add date formatting and parsing functions relative to a given timeJeff King, Aug 31, 2009
  41. Alex RiesenAug 31, 2009
  42. 2/4 refactor test-date interfaceJeff King, Aug 31, 2009
  43. 3/4 tests: add date printing and parsing testsJeff King, Aug 31, 2009
  44. Jeff KingSep 1, 2009
  45. 4/4 fix approxidate parsing of relative months and yearsJeff King, Aug 31, 2009
  46. 2/3 refactor test-date interfaceJeff King, Aug 30, 2009
  47. 3/3 tests: add date printing and parsing testsJeff King, Aug 30, 2009

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.