summary refs log tree commit diff
path: root/nixos/tests/timezone.nix
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2017-07-31 15:55:24 +0100
committerJoachim F <joachifm@users.noreply.github.com>2017-07-31 15:55:24 +0100
commita0d464033c2bacffa9c05d27903fb03cd09ace46 (patch)
tree65344218179a86b9b244e2c6760a87bc1ea6a721 /nixos/tests/timezone.nix
parent449946ef94edbffb352bf7bcac934af3b2cebf57 (diff)
downloadnixlib-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.nix45
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";
+    '';
+  });
+}