123 lines
2.8 KiB
Tcl
Executable File
123 lines
2.8 KiB
Tcl
Executable File
#!/usr/bin/env tclsh
|
|
source streamtestlib.tcl
|
|
|
|
# Define records, protocol and startup (text goes to files)
|
|
# The asynPort "device" is connected to a network TCP socket
|
|
# Talk to the socket with send/receive/assure
|
|
# Send commands to the ioc shell with ioccmd
|
|
|
|
set records {
|
|
record (ai, "DZ:test1")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto test1 device")
|
|
}
|
|
record (ai, "DZ:test2")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto test2 device")
|
|
}
|
|
record (ai, "DZ:test3")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto test3 device")
|
|
}
|
|
record (ai, "DZ:test4")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto test4 device")
|
|
}
|
|
}
|
|
|
|
set protocol {
|
|
Terminator = LF;
|
|
@mismatch {out "mismatch";}
|
|
test1 {in "%f"; out "|%f|%10f|%.2f|%- 10.5f|% f|%+f|%-5.1f|%#f|"; }
|
|
test2 {in "%6f%(DESC)s"; out "|%g|%(DESC)s|"; }
|
|
test3 {in "% 6f%(DESC)s"; out "|%g|%(DESC)s|"; }
|
|
test4 {in "%#f"; out "%f"; }
|
|
}
|
|
|
|
set startup {
|
|
}
|
|
|
|
startioc
|
|
|
|
set inf [format %f inf]
|
|
if [catch {set nan [format %f nan]}] {set nan nan}
|
|
|
|
process DZ:test1
|
|
send "3.14159265359\n"
|
|
assure "|3.141593| 3.141593|3.14| 3.14159 | 3.141593|+3.141593|3.1 |3.141593|\n"
|
|
process DZ:test1
|
|
send "-3.14159265359\n"
|
|
assure "|-3.141593| -3.141593|-3.14|-3.14159 |-3.141593|-3.141593|-3.1 |-3.141593|\n"
|
|
process DZ:test1
|
|
send "0\n"
|
|
assure "|0.000000| 0.000000|0.00| 0.00000 | 0.000000|+0.000000|0.0 |0.000000|\n"
|
|
process DZ:test1
|
|
send "NAN\n"
|
|
assure "|$nan| $nan|$nan| $nan | $nan|+$nan|$nan |$nan|\n"
|
|
process DZ:test1
|
|
send "-Inf\n"
|
|
assure "|-$inf| -$inf|-$inf|-$inf |-$inf|-$inf|-$inf |-$inf|\n"
|
|
process DZ:test1
|
|
send "1e6\n"
|
|
assure "|1000000.000000|1000000.000000|1000000.00| 1000000.00000| 1000000.000000|+1000000.000000|1000000.0|1000000.000000|\n"
|
|
process DZ:test1
|
|
send " - 3.14159265359\n"
|
|
assure "mismatch\n"
|
|
process DZ:test1
|
|
send "bla\n"
|
|
assure "mismatch\n"
|
|
process DZ:test1
|
|
send " bla\n"
|
|
assure "mismatch\n"
|
|
process DZ:test1
|
|
send "-bla\n"
|
|
assure "mismatch\n"
|
|
|
|
process DZ:test2
|
|
send "3.14159265359\n"
|
|
assure "|3.1415|9265359|\n"
|
|
process DZ:test2
|
|
send " 3.14159265359\n"
|
|
assure "|3.1415|9265359|\n"
|
|
process DZ:test2
|
|
send " 10blabla\n"
|
|
assure "|10|blabla|\n"
|
|
process DZ:test2
|
|
send " 1\n"
|
|
assure "|1||\n"
|
|
|
|
process DZ:test3
|
|
send "3.14159265359\n"
|
|
assure "|3.1415|9265359|\n"
|
|
process DZ:test3
|
|
send " 3.14159265359\n"
|
|
assure "|3|.14159265359|\n"
|
|
process DZ:test3
|
|
send " 10blabla\n"
|
|
assure "|10|blabla|\n"
|
|
process DZ:test3
|
|
send " 1\n"
|
|
assure "|1||\n"
|
|
|
|
process DZ:test4
|
|
send "3.14159265359\n"
|
|
assure "3.141593\n"
|
|
process DZ:test4
|
|
send " -3.14159265359\n"
|
|
assure "-3.141593\n"
|
|
process DZ:test4
|
|
send " - 3.14159265359\n"
|
|
assure "-3.141593\n"
|
|
process DZ:test4
|
|
send " + 3.14159265359\n"
|
|
assure "3.141593\n"
|
|
process DZ:test4
|
|
send " +- 3.14159265359\n"
|
|
assure "mismatch\n"
|
|
|
|
finish
|