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