cfengine/core — pull request #192 by mvpel (2012-10-05 03:21:38+00:00)
Title: Replace "date +%s" in testall with more compatible code (Mantis#1254)

n order to calculate the total run time of acceptance tests, the
testall script needs the UNIX seconds - a time() call - of the start
and end times of the test runs. It currently uses the command
"date +%s" to get these times.

Many older OS platforms - such as HP-UX 11.11, Solaris 8 and 9, and
others - do not support the "%s" format for the date command.

This patch creates a unix_seconds() subroutine which uses the modern
"date +%s" command if available, falls back to a Perl "print time()"
call, and failing that it falls back to pulling the octal date out of
a pax-created cpio header for an empty temporary file and converting
it to decimal using "bc."

This code will work on every POSIX-compliant platform (since the
pax/cpio/bc approach is strictly POSIX) as well as any platorm that
has a copy of Perl in the path.