46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  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";
 | 
						|
    '';
 | 
						|
  });
 | 
						|
}
 |