/* Test A requires that the minimum estimate of the peer delay is not
larger than the configured maximum, in both client modes that the server
- processing time is sane, and in interleaved symmetric mode that the
+ processing time is sane, in interleaved client/server mode that the
+ previous response was not in basic mode (which prevents using timestamps
+ that minimise delay error), and in interleaved symmetric mode that the
measured delay and intervals between remote timestamps don't indicate
a missed response */
testA = sample.peer_delay - sample.peer_dispersion <= inst->max_delay &&
precision <= inst->max_delay &&
!(inst->mode == MODE_CLIENT && response_time > MAX_SERVER_INTERVAL) &&
+ !(inst->mode == MODE_CLIENT && interleaved_packet &&
+ UTI_IsZeroTimespec(&inst->prev_local_tx.ts) &&
+ UTI_CompareTimespecs(&local_transmit.ts, &inst->local_tx.ts) == 0) &&
!(inst->mode == MODE_ACTIVE && interleaved_packet &&
(sample.peer_delay > 0.5 * prev_remote_poll_interval ||
UTI_CompareNtp64(&message->receive_ts, &message->transmit_ts) <= 0 ||
check_source_selection || test_fail
check_sync || test_fail
-check_file_messages "111 111 1111.* 4I [DKH] [DKH]\$" 0 0 measurements.log || test_fail
+check_file_messages "111 111 .111.* 4I [DKH] [DKH]\$" 0 0 measurements.log || test_fail
rm -f tmp/measurements.log
server_conf=""
+max_sync_time=270
run_test || test_fail
check_chronyd_exit || test_fail
check_file_messages "111 111 1111.* 4B [DKH] [DKH]\$" 2 2 measurements.log || test_fail
check_file_messages "111 111 1111.* 4I [DKH] [DKH]\$" 30 200 measurements.log || test_fail
+check_file_messages "111 111 0111.* 4I [DKH] [DKH]\$" 1 1 measurements.log || test_fail
rm -f tmp/measurements.log
clients=2
send_request(inst1);
process_request(&remote_addr);
- proc_response(inst1, 1, 1, 1, 0);
+ proc_response(inst1,
+ !source.params.interleaved || source.params.version != 4 ||
+ inst1->mode == MODE_ACTIVE || j != 2,
+ 1, 1, 0);
advance_time(1 << inst1->local_poll);
}