nixos/timezone: support imperative timezone configuration (#26608)
Fixes #26469.
This commit is contained in:
committed by
Joachim F
parent
449946ef94
commit
a0d464033c
@@ -0,0 +1,45 @@
|
||||
{
|
||||
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";
|
||||
'';
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user