#!/usr/bin/env bash

. ./test.common
test_start "NTP eras"

if check_config_h 'HAVE_LONG_TIME_T 1'; then
	ntp_start=$(awk "BEGIN {print $(grep NTP_ERA_SPLIT ../../config.h | tr -dc '0-9*+-')}")
else
	ntp_start="-2147483648"
fi

# Set the starting test date to 500 seconds before the second NTP era.
# This should work with 32-bit time_t and also with 64-bit time_t if the
# configured NTP interval covers the test interval.
export CLKNETSIM_START_DATE=$(date -d 'Feb  7 06:19:56 UTC 2036' +'%s')

if awk "BEGIN {exit !($ntp_start <= $CLKNETSIM_START_DATE && \
		$CLKNETSIM_START_DATE + $limit < $ntp_start + 2^32)}"; then
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_source_selection || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
fi

# The following tests need 64-bit time_t and ntp_start not before 1970
check_config_h 'HAVE_LONG_TIME_T 1' || test_skip
echo "$ntp_start" | grep -q '-' && test_skip

for time_offset in -1e-1 1e-1; do
	for start_offset in 0 "2^32 - $limit"; do
		export CLKNETSIM_START_DATE=$(awk "BEGIN {print $ntp_start + $start_offset}")
		run_test || test_fail
		check_chronyd_exit || test_fail
		check_source_selection || test_fail
		check_packet_interval || test_fail
		check_sync || test_fail
	done

	for start_offset in -$limit "2^32"; do
		export CLKNETSIM_START_DATE=$(awk "BEGIN {print $ntp_start + $start_offset}")
		run_test || test_fail
		check_chronyd_exit || test_fail
		check_source_selection || test_fail
		check_packet_interval || test_fail
		check_sync && test_fail
	done
done

test_pass
