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";
 | |
|     '';
 | |
|   });
 | |
| }
 | 
