[PATCH 1/1] test: support for generating decreasing dates with bash 4.0 and 4.1
authorTomi Ollila <tomi.ollila@iki.fi>
Wed, 1 Jan 2014 16:25:52 +0000 (18:25 +0200)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:58:50 +0000 (09:58 -0800)
ec/ab406dddf396eed9ce8c5bc27fc889174f1ced [new file with mode: 0644]

diff --git a/ec/ab406dddf396eed9ce8c5bc27fc889174f1ced b/ec/ab406dddf396eed9ce8c5bc27fc889174f1ced
new file mode 100644 (file)
index 0000000..1b838d3
--- /dev/null
@@ -0,0 +1,92 @@
+Return-Path: <too@guru-group.fi>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 2EB17431FC0\r
+       for <notmuch@notmuchmail.org>; Wed,  1 Jan 2014 08:26:07 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id JtGXSmDYFxsH for <notmuch@notmuchmail.org>;\r
+       Wed,  1 Jan 2014 08:26:00 -0800 (PST)\r
+Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
+       by olra.theworths.org (Postfix) with ESMTP id 812B2431FAF\r
+       for <notmuch@notmuchmail.org>; Wed,  1 Jan 2014 08:26:00 -0800 (PST)\r
+Received: by guru.guru-group.fi (Postfix, from userid 501)\r
+       id 3811E10014F; Wed,  1 Jan 2014 18:25:54 +0200 (EET)\r
+From: Tomi Ollila <tomi.ollila@iki.fi>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 1/1] test: support for generating decreasing dates with bash\r
+       4.0 and 4.1\r
+Date: Wed,  1 Jan 2014 18:25:52 +0200\r
+Message-Id: <1388593552-25920-1-git-send-email-tomi.ollila@iki.fi>\r
+X-Mailer: git-send-email 1.8.0\r
+Cc: tomi.ollila@iki.fi\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 01 Jan 2014 16:26:07 -0000\r
+\r
+The printf builtin "%(fmt)T" specifier (which allows time values\r
+to use strftime-like formatting) is introduced in bash 4.2.\r
+\r
+Added a new function `secs_to_rfc2822date` which uses the above specifier\r
+with post 4.1 bash and perl(1) construct with pre-4.2 bash.\r
+---\r
+ test/test-lib.sh | 19 +++++++++++++++++--\r
+ 1 file changed, 17 insertions(+), 2 deletions(-)\r
+\r
+diff --git a/test/test-lib.sh b/test/test-lib.sh\r
+index 2fcaba6..7d88867 100644\r
+--- a/test/test-lib.sh\r
++++ b/test/test-lib.sh\r
+@@ -272,6 +272,21 @@ remove_cr () {\r
+       tr '\015' Q | sed -e 's/Q$//'\r
+ }\r
\r
++# The printf '%(fmt)T' specifier is bash 4.2+ feature.\r
++if [[ ${BASH_VERSINFO[0]} -gt 4 || ${BASH_VERSINFO[1]} -ge 2 ]]\r
++then\r
++      secs_to_rfc2822date ()\r
++      {\r
++              TZ=UTC printf "%(%a, %d %b %Y %T %z)T\n" "$1"\r
++      }\r
++else\r
++      secs_to_rfc2822date ()\r
++      {\r
++              perl -le 'use POSIX "strftime"; @time = gmtime $ARGV[0];\r
++                      print strftime "%a, %d %b %Y %T +0000", @time' "$1"\r
++      }\r
++fi\r
++\r
+ # Generate a new message in the mail directory, with a unique message\r
+ # ID and subject. The message is not added to the index.\r
+ #\r
+@@ -373,8 +388,8 @@ generate_message ()\r
+       # we use decreasing timestamps here for historical reasons;\r
+       # the existing test suite when we converted to unique timestamps just\r
+       # happened to have signicantly fewer failures with that choice.\r
+-      template[date]=$(TZ=UTC printf "%(%a, %d %b %Y %T %z)T\n" \\r
+-                      $((978709437 - gen_msg_cnt)))\r
++\r
++      template[date]=$(secs_to_rfc2822date $((978709437 - gen_msg_cnt)))\r
+     fi\r
\r
+     additional_headers=""\r
+-- \r
+1.8.0\r
+\r