Add simulation tests

Use clknetsim to run multiple chronyd instances with simulated clocks
and network. It allows fast and reproducible testing, without real
network.

Included are several tests of performance in different clock/network
conditions, chronyd options, NTP authentication, chronyc, and past bug
fixes.
This commit is contained in:
Miroslav Lichvar
2014-02-27 18:07:45 +01:00
parent ea526b96dd
commit 115e83f3aa
21 changed files with 894 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
#!/bin/bash
. test.common
# Test fix in commit 60d0fa299307076143da94d36deb7b908fa9bdb7
test_start "frequency accumulation"
time_offset=100.0
jitter=1e-6
base_delay=1e-6
wander=0.0
limit=200
time_max_limit=1e-5
freq_max_limit=1e-7
time_rms_limit=1e-5
freq_rms_limit=1e-7
min_sync_time=120
max_sync_time=140
client_server_options="minpoll 6 maxpoll 6"
client_conf="driftfile tmp/drift
makestep 1 1"
for freq_offset in -5e-2 -5e-4 5e-4 5e-2; do
for drift in -1e+4 -1e+2 1e+2 1e+4; do
echo "$drift 100000" > tmp/drift
run_test || test_fail
check_chronyd_exit || test_fail
check_sync || test_fail
done
done
test_pass