Files
2015-08-18 14:34:11 +00:00

127 lines
2.7 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 (longout, "DZ:testout")
{
field (DTYP, "stream")
field (OUT, "@test.proto out device")
}
record (longin, "DZ:testin")
{
field (DTYP, "stream")
field (INP, "@test.proto in device")
}
record (longout, "DZ:testout1")
{
field (DTYP, "stream")
field (OUT, "@test.proto out1 device")
}
record (longin, "DZ:testin1")
{
field (DTYP, "stream")
field (INP, "@test.proto in1 device")
}
record (longout, "DZ:testout2")
{
field (DTYP, "stream")
field (OUT, "@test.proto out2 device")
}
record (longin, "DZ:testin2")
{
field (DTYP, "stream")
field (INP, "@test.proto in2 device")
}
record (longin, "DZ:testin3")
{
field (DTYP, "stream")
field (INP, "@test.proto in3 device")
}
}
set protocol {
Terminator = LF;
out {out "%{zero|one|two}bla";}
in {in "%{zero|one|two}bla"; out "%d";}
out1 {out "%#{zero|one|two}bla";}
in1 {in "%#{zero|one|two}bla"; out "%d";}
out2 {out "%#{zero=-1|one|two=5|default=?}bla";}
in2 {in "%#{zero=-1|one|two=5}bla"; out "%d";}
in3 {in "%{\x00|\r|}bla"; out "%d";}
}
set startup {
var streamDebug 1
}
set debug 0
startioc
ioccmd {dbpf DZ:testout 0}
assure "zerobla\n"
ioccmd {dbpf DZ:testout 1}
assure "onebla\n"
ioccmd {dbpf DZ:testout 2}
assure "twobla\n"
ioccmd {dbpf DZ:testout1 0}
assure "zerobla\n"
ioccmd {dbpf DZ:testout1 1}
assure "onebla\n"
ioccmd {dbpf DZ:testout1 2}
assure "twobla\n"
ioccmd {dbpf DZ:testout2 -1}
assure "zerobla\n"
ioccmd {dbpf DZ:testout2 0}
assure "onebla\n"
ioccmd {dbpf DZ:testout2 5}
assure "twobla\n"
ioccmd {dbpf DZ:testout2 17}
assure "defaultbla\n"
ioccmd {dbpf DZ:testin.PROC 1}
send "zerobla\n"
assure "0\n"
ioccmd {dbpf DZ:testin.PROC 1}
send "onebla\n"
assure "1\n"
ioccmd {dbpf DZ:testin.PROC 1}
send "twobla\n"
assure "2\n"
ioccmd {dbpf DZ:testin1.PROC 1}
send "zerobla\n"
assure "0\n"
ioccmd {dbpf DZ:testin1.PROC 1}
send "onebla\n"
assure "1\n"
ioccmd {dbpf DZ:testin1.PROC 1}
send "twobla\n"
assure "2\n"
ioccmd {dbpf DZ:testin2.PROC 1}
send "zerobla\n"
assure "-1\n"
ioccmd {dbpf DZ:testin2.PROC 1}
send "onebla\n"
assure "0\n"
ioccmd {dbpf DZ:testin2.PROC 1}
send "twobla\n"
assure "5\n"
ioccmd {dbpf DZ:testin3.PROC 1}
send "\000bla\n"
assure "0\n"
ioccmd {dbpf DZ:testin3.PROC 1}
send "\rbla\n"
assure "1\n"
ioccmd {dbpf DZ:testin3.PROC 1}
send "bla\n"
assure "2\n"
finish