#! /usr/bin/perl
my
(
$mock
,
$real
);
my
$TRUE
= Time::Local::timegm(19, 25, 3, 30, 6, 2006);
Test::MockTime::set_absolute_time(
'2006-07-30T03:25:19Z'
);
$mock
=
time
;
ok((
$mock
>=
$TRUE
) && (
$mock
<=
$TRUE
+1),
"Absolute time works"
);
sleep
2;
$mock
=
time
;
ok((
$mock
>=
$TRUE
+2) && (
$mock
<=
$TRUE
+3),
"Absolute time is still in sync after two seconds sleep:$mock"
);
$mock
= Time::Local::timelocal(
localtime
);
$real
= Time::Local::timelocal(CORE::
localtime
);
ok(
$mock
<=
$real
,
"localtime seems ok"
);
Test::MockTime::set_absolute_time(
'03:25:19 07/30/2006'
,
'%H:%M:%S %m/%d/%Y'
);
$mock
=
time
;
ok((
$mock
>=
$TRUE
) && (
$mock
<=
$TRUE
+1),
"Absolute time with explicit date specworks"
);
sleep
2;
$mock
=
time
;
ok((
$mock
>=
$TRUE
+2) && (
$mock
<=
$TRUE
+3),
"Absolute time is still in sync after two seconds sleep:$mock"
);
$real
= Time::Local::timelocal(CORE::
localtime
);
ok(
$mock
<=
$real
,
"localtime seems ok"
);
Test::MockTime::set_fixed_time(
'2006-07-30T03:25:19Z'
);
$real
=
time
;
sleep
2;
$mock
=
time
;
cmp_ok(
$mock
,
'=='
,
$real
,
"time is fixed"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"time is fixed correctly"
);
Test::MockTime::set_fixed_time(
'2006-07-30T03:25:19Z'
);
$mock
= Time::Local::timelocal(
localtime
());
sleep
2;
$real
= Time::Local::timelocal(
localtime
);
cmp_ok(
$mock
,
'=='
,
$real
,
"localtime is fixed"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"localtime is fixed correctly"
);
Test::MockTime::set_fixed_time(
'2006-07-30T03:25:19Z'
);
$mock
= Time::Local::timegm(
gmtime
);
sleep
2;
$real
= Time::Local::timegm(
gmtime
);
cmp_ok(
$mock
,
'=='
,
$real
,
"gmtime is fixed"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"gmtime is fixed correctly"
);
Test::MockTime::set_fixed_time(
'03:25:19 07/30/2006'
,
'%H:%M:%S %m/%d/%Y'
);
$real
=
time
;
sleep
2;
$mock
=
time
;
cmp_ok(
$mock
,
'=='
,
$real
,
"time is fixed with explicit date spec"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"time is fixed correctly"
);
Test::MockTime::set_fixed_time(
'03:25:19 07/30/2006'
,
'%H:%M:%S %m/%d/%Y'
);
$mock
= Time::Local::timelocal(
localtime
());
sleep
2;
$real
= Time::Local::timelocal(
localtime
);
cmp_ok(
$mock
,
'=='
,
$real
,
"localtime is fixed"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"localtime is fixed correctly"
);
Test::MockTime::set_fixed_time(
'03:25:19 07/30/2006'
,
'%H:%M:%S %m/%d/%Y'
);
$mock
= Time::Local::timegm(
gmtime
);
sleep
2;
$real
= Time::Local::timegm(
gmtime
);
cmp_ok(
$mock
,
'=='
,
$real
,
"gmtime is fixed"
);
cmp_ok(
$mock
,
'=='
,
$TRUE
,
"gmtime is fixed correctly"
);