diff options
author | Linus Heckemann <git@sphalerite.org> | 2017-07-31 15:55:24 +0100 |
---|---|---|
committer | Joachim F <joachifm@users.noreply.github.com> | 2017-07-31 15:55:24 +0100 |
commit | a0d464033c2bacffa9c05d27903fb03cd09ace46 (patch) | |
tree | 65344218179a86b9b244e2c6760a87bc1ea6a721 /nixos/tests/timezone.nix | |
parent | 449946ef94edbffb352bf7bcac934af3b2cebf57 (diff) | |
download | nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar.gz nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar.bz2 nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar.lz nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar.xz nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.tar.zst nixlib-a0d464033c2bacffa9c05d27903fb03cd09ace46.zip |
nixos/timezone: support imperative timezone configuration (#26608)
Fixes #26469.
Diffstat (limited to 'nixos/tests/timezone.nix')
-rw-r--r-- | nixos/tests/timezone.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/nixos/tests/timezone.nix b/nixos/tests/timezone.nix new file mode 100644 index 000000000000..2204649a3fc4 --- /dev/null +++ b/nixos/tests/timezone.nix @@ -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"; + ''; + }); +} |