parent
bfee3a4989
commit
07be580889
@ -1,45 +1,50 @@ |
||||
{ |
||||
timezone-static = import ./make-test.nix ({ pkgs, ... }: { |
||||
name = "timezone-static"; |
||||
meta.maintainers = with pkgs.lib.maintainers; [ lheckemann ]; |
||||
|
||||
machine.time.timeZone = "Europe/Amsterdam"; |
||||
|
||||
testScript = '' |
||||
$machine->waitForUnit("dbus.socket"); |
||||
$machine->fail("timedatectl set-timezone Asia/Tokyo"); |
||||
my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); |
||||
$dateResult[1] eq "1970-01-01 01:00:00\n" or die "Timezone seems to be wrong"; |
||||
''; |
||||
}); |
||||
|
||||
timezone-imperative = import ./make-test.nix ({ pkgs, ... }: { |
||||
name = "timezone-imperative"; |
||||
meta.maintainers = with pkgs.lib.maintainers; [ lheckemann ]; |
||||
|
||||
machine.time.timeZone = null; |
||||
|
||||
testScript = '' |
||||
$machine->waitForUnit("dbus.socket"); |
||||
|
||||
# Should default to UTC |
||||
my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); |
||||
print $dateResult[1]; |
||||
$dateResult[1] eq "1970-01-01 00:00:00\n" or die "Timezone seems to be wrong"; |
||||
|
||||
$machine->succeed("timedatectl set-timezone Asia/Tokyo"); |
||||
|
||||
# Adjustment should be taken into account |
||||
my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); |
||||
print $dateResult[1]; |
||||
$dateResult[1] eq "1970-01-01 09:00:00\n" or die "Timezone was not adjusted"; |
||||
|
||||
# Adjustment should persist across a reboot |
||||
$machine->shutdown; |
||||
$machine->waitForUnit("dbus.socket"); |
||||
my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); |
||||
print $dateResult[1]; |
||||
$dateResult[1] eq "1970-01-01 09:00:00\n" or die "Timezone adjustment was not persisted"; |
||||
''; |
||||
}); |
||||
} |
||||
import ./make-test-python.nix ({ pkgs, ...} : { |
||||
name = "timezone"; |
||||
meta.maintainers = with pkgs.lib.maintainers; [ lheckemann ]; |
||||
|
||||
nodes = { |
||||
node_eutz = { pkgs, ... }: { |
||||
time.timeZone = "Europe/Amsterdam"; |
||||
}; |
||||
|
||||
node_nulltz = { pkgs, ... }: { |
||||
time.timeZone = null; |
||||
}; |
||||
}; |
||||
|
||||
testScript = { nodes, ... }: '' |
||||
node_eutz.wait_for_unit("dbus.socket") |
||||
|
||||
with subtest("static - Ensure timezone change gives the correct result"): |
||||
node_eutz.fail("timedatectl set-timezone Asia/Tokyo") |
||||
date_result = node_eutz.succeed('date -d @0 "+%Y-%m-%d %H:%M:%S"') |
||||
assert date_result == "1970-01-01 01:00:00\n", "Timezone seems to be wrong" |
||||
|
||||
node_nulltz.wait_for_unit("dbus.socket") |
||||
|
||||
with subtest("imperative - Ensure timezone defaults to UTC"): |
||||
date_result = node_nulltz.succeed('date -d @0 "+%Y-%m-%d %H:%M:%S"') |
||||
print(date_result) |
||||
assert ( |
||||
date_result == "1970-01-01 00:00:00\n" |
||||
), "Timezone seems to be wrong (not UTC)" |
||||
|
||||
with subtest("imperative - Ensure timezone adjustment produces expected result"): |
||||
node_nulltz.succeed("timedatectl set-timezone Asia/Tokyo") |
||||
|
||||
# Adjustment should be taken into account |
||||
date_result = node_nulltz.succeed('date -d @0 "+%Y-%m-%d %H:%M:%S"') |
||||
print(date_result) |
||||
assert date_result == "1970-01-01 09:00:00\n", "Timezone was not adjusted" |
||||
|
||||
with subtest("imperative - Ensure timezone adjustment persists across reboot"): |
||||
# Adjustment should persist across a reboot |
||||
node_nulltz.shutdown() |
||||
node_nulltz.wait_for_unit("dbus.socket") |
||||
date_result = node_nulltz.succeed('date -d @0 "+%Y-%m-%d %H:%M:%S"') |
||||
print(date_result) |
||||
assert ( |
||||
date_result == "1970-01-01 09:00:00\n" |
||||
), "Timezone adjustment was not persisted" |
||||
''; |
||||
}) |
||||
|
Loading…
Reference in new issue