3 set TARGET_HOST "localhost"
4 set ROOT_DIR "/home/mike/JJ"
6 set RESULT_FILE [clock format [clock seconds] -format "latency-results-%Y.%m.%d.%H.%M.%S.csv"]
8 set INVOCATIONS [list \
9 { "TTV default" "DISPLAY=:0" } \
10 [list "Custom lib, kdbus transport" "LD_LIBRARY_PATH=$ROOT_DIR/libs DBUS_SESSION_BUS_ADDRESS='kdbus:path=/dev/kdbus/1000-testtest/bus'"] \
13 # [list "Custom lib, dbus transport" "DISPLAY=:0 LD_LIBRARY_PATH=$ROOT_DIR/libs"] \
17 # 2000 { 1000 2000 } \
18 # 5000 { 1000 2000 5000 } \
19 # 10000 { 1000 2000 5000 10000 } \
20 # 20000 { 1000 2000 5000 10000 20000 } \
21 # 50000 { 1000 2000 5000 10000 20000 50000 } \
22 # 75000 { 1000 2000 5000 10000 20000 50000 75000 } \
23 # 100000 { 1000 2000 5000 10000 20000 50000 75000 } \
24 # 200000 { 1000 2000 5000 10000 20000 50000 75000 } \
25 # 300000 { 1000 2000 5000 10000 20000 50000 75000 } \
29 # ***************************************************************************************************************************************************
32 proc run_server { invocation } {
33 global TARGET_HOST ROOT_DIR
34 spawn ssh -t $TARGET_HOST "cd $ROOT_DIR/ipc-test; $invocation ./ping-server"
36 "Waiting for clients" { return $spawn_id }
39 puts $expect_out(buffer)
47 proc terminate_server { server_id } {
48 set spawn_id $server_id
51 "closed." { return 1 }
57 proc run_client { invocation } {
58 global TARGET_HOST ROOT_DIR
59 spawn ssh -t $TARGET_HOST "$invocation $ROOT_DIR/ipc-test/ping-client"
63 -re {avg RTT: (\d+) us} {
64 set round_trip_time $expect_out(1,string)
66 timeout { puts "ctrl-C"; send "\x03" }
68 return $round_trip_time
72 proc log_result { data { new_file 0 } } {
75 puts "Storing results into file $RESULT_FILE"
77 set pl [open $RESULT_FILE [expr {$new_file ? "w" : "a"}]]
78 puts $pl [join $data ","]
82 # ***************************************************************************************************************************************************
87 log_result { {"Test environment"} {"Round Trip Time [us]"} } 1
89 # iterate over different invocations
90 foreach invocation $INVOCATIONS {
91 set test_env [lindex $invocation 0]
92 puts "Test environment: $test_env"
94 puts -nonewline "Bringing up server... "
95 set server [run_server [lindex $invocation 1]]
103 # average several passes to get more stable figures
106 for { set run 1 } { $run <= $NUM_PASSES } { incr run } {
107 set result [run_client [lindex $invocation 1]]
119 set avg [expr $total / $passes]
121 log_result [list "\"$test_env\"" $avg]
128 puts -nonewline "Terminating server... "
129 terminate_server $server