[libvirt] [PATCH 1/3] util: new function virTimeLocalOffsetFromUTC

Eric Blake eblake at redhat.com
Wed May 21 14:27:04 UTC 2014


On 05/21/2014 07:26 AM, Daniel P. Berrange wrote:
> On Wed, May 21, 2014 at 04:16:29PM +0300, Laine Stump wrote:
>> Since there isn't a single libc API to get this value, this patch
>> supplies one which gets the value by grabbing current UTC, then
>> converting that into a struct tm with localtime_r(), then back to a
>> time_t using mktime; it again does the same operation, but using
>> gmtime_r() instead (for UTC). It then subtracts utc time from the
>> localtime, and finally adjusts if dst is set in the localtime timeinfo
>> (because for some reason mktime doesn't take that into account).

> 
> I think we ought to be able to unit test this code to make sure it is
> doing what we want. ie setenv("TZ", "EDT") in the start of the test
> suite to force a predictable timezone, then check the delta is
> correct.

Even better than "EDT" (which is not POSIX-compliant), reuse what we
have done in other situations where we want to guarantee a known
non-zero timezone that uses just POSIX functionality:

tests/qemuxml2argvtest.c:    if (setenv("TZ", "VIR00:30", 1) < 0) {


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140521/2683b963/attachment-0001.sig>


More information about the libvir-list mailing list