mirror of https://github.com/nirenjan/libx52.git
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/usr/bin/env bash
 | 
						|
# Timezone tests
 | 
						|
#
 | 
						|
# Copyright (C) 2020 Nirenjan Krishnan (nirenjan@nirenjan.org)
 | 
						|
#
 | 
						|
# SPDX-License-Identifier: GPL-2.0-only WITH Classpath-exception-2.0
 | 
						|
 | 
						|
source $(dirname $0)/../common_infra.sh
 | 
						|
require_programs faketime
 | 
						|
 | 
						|
TEST_SUITE_ID="libx52 timezone tests"
 | 
						|
 | 
						|
# Use the America/Los_Angeles timezone
 | 
						|
# Standard time is UTC-08:00, Daylight time is UTC-07:00
 | 
						|
export TZ=America/Los_Angeles
 | 
						|
 | 
						|
# All timezone tests use DD-MM-YY and 12hr format
 | 
						|
timezone_test()
 | 
						|
{
 | 
						|
    local datetime="$1"
 | 
						|
 | 
						|
    TEST_ID="Test setting clock to '$(date --date="$datetime")'"
 | 
						|
 | 
						|
    local dd=$(date --date="$datetime" +%_d)
 | 
						|
    local mm=$(date --date="$datetime" +%_m)
 | 
						|
    local yy=$(date --date="$datetime" +%_y)
 | 
						|
    local hr=$(date --date="$datetime" +%_H)
 | 
						|
    local mn=$(date --date="$datetime" +%_M)
 | 
						|
 | 
						|
    local off
 | 
						|
    if [[ "$(date --date="$datetime" +%Z)" == 'PDT' ]]
 | 
						|
    then
 | 
						|
        # Pacific Daylight Time
 | 
						|
        # Default offset for clocks 2 & 3 should be +420 minutes
 | 
						|
        off=420
 | 
						|
    else
 | 
						|
        # Pacific Standard time
 | 
						|
        # Default offset for clocks 2 & 3 should be +480 minutes
 | 
						|
        off=480
 | 
						|
    fi
 | 
						|
 | 
						|
    local clock_value=$(($hr * 256 + $mn))
 | 
						|
    local date_value=$(($mm * 256 + $dd))
 | 
						|
    local year_value=$yy
 | 
						|
 | 
						|
    expect_pattern \
 | 
						|
        $X52_CLOCK_DATE_INDEX $(printf '%04x' $date_value) \
 | 
						|
        $X52_CLOCK_YEAR_INDEX $(printf '%04x' $year_value) \
 | 
						|
        $X52_CLOCK_1_INDEX $(printf '%04x' $clock_value) \
 | 
						|
        $X52_CLOCK_2_INDEX $(printf '%04x' $off) \
 | 
						|
        $X52_CLOCK_3_INDEX $(printf '%04x' $off) \
 | 
						|
 | 
						|
    faketime "$datetime" $X52CLI clock local 12hr ddmmyy
 | 
						|
    verify_output
 | 
						|
}
 | 
						|
 | 
						|
# Check timezone test for 14:15:16 on the 13th day of every month from
 | 
						|
# January 2017 to December 2019
 | 
						|
 | 
						|
for year in $(seq 2017 2019)
 | 
						|
do
 | 
						|
    for month in $(seq 1 12)
 | 
						|
    do
 | 
						|
        timezone_test "$(printf '%d-%02d-13 14:15:16' $year $month)"
 | 
						|
    done
 | 
						|
done
 | 
						|
 | 
						|
verify_test_suite
 |