#!/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:test1") { field (DTYP, "stream") field (OUT, "@test.proto test1 device") } record (longin, "DZ:test2") { field (DTYP, "stream") field (INP, "@test.proto test2 device") } record (longin, "DZ:test3") { field (DTYP, "stream") field (INP, "@test.proto test3 device") } record (longin, "DZ:test4") { field (DTYP, "stream") field (INP, "@test.proto test4 device") } } set protocol { OutTerminator = LF; MaxInput = 4; test1 { out "%r"; out "%.1r"; out "%.2r"; out "%.3r"; out "%.4r"; out "%.5r"; out "%#r"; out "%#.1r"; out "%#.2r"; out "%#.3r"; out "%#.4r"; out "%#.5r"; out "%r"; out "%1r"; out "%2r"; out "%3r"; out "%4r"; out "%5r"; out "%0r"; out "%01r"; out "%02r"; out "%03r"; out "%04r"; out "%05r"; out "%#0r"; out "%#01r"; out "%#02r"; out "%#03r"; out "%#04r"; out "%#05r"; }; test2 { in "%04.4r"; out "%08x"; } test3{ in "%#3r\?"; out "%08x"; } test4{ in "%#03r\?"; out "%08x"; } } set startup { } set debug 0 startioc ioccmd {dbpf DZ:test1 0} assure "\x00\n" assure "\x00\n" assure "\x00\x00\n" assure "\x00\x00\x00\n" assure "\x00\x00\x00\x00\n" assure "\x00\x00\x00\x00\x00\n" assure "\x00\n" assure "\x00\n" assure "\x00\x00\n" assure "\x00\x00\x00\n" assure "\x00\x00\x00\x00\n" assure "\x00\x00\x00\x00\x00\n" assure "\x00\n" assure "\x00\n" assure "\x00\x00\n" assure "\x00\x00\x00\n" assure "\x00\x00\x00\x00\n" assure "\x00\x00\x00\x00\x00\n" assure "\x00\n" assure "\x00\n" assure "\x00\x00\n" assure "\x00\x00\x00\n" assure "\x00\x00\x00\x00\n" assure "\x00\x00\x00\x00\x00\n" assure "\x00\n" assure "\x00\n" assure "\x00\x00\n" assure "\x00\x00\x00\n" assure "\x00\x00\x00\x00\n" assure "\x00\x00\x00\x00\x00\n" ioccmd {dbpf DZ:test1 1} assure "\x01\n" assure "\x01\n" assure "\x00\x01\n" assure "\x00\x00\x01\n" assure "\x00\x00\x00\x01\n" assure "\x00\x00\x00\x00\x01\n" assure "\x01\n" assure "\x01\n" assure "\x01\x00\n" assure "\x01\x00\x00\n" assure "\x01\x00\x00\x00\n" assure "\x01\x00\x00\x00\x00\n" assure "\x01\n" assure "\x01\n" assure "\x00\x01\n" assure "\x00\x00\x01\n" assure "\x00\x00\x00\x01\n" assure "\x00\x00\x00\x00\x01\n" assure "\x01\n" assure "\x01\n" assure "\x00\x01\n" assure "\x00\x00\x01\n" assure "\x00\x00\x00\x01\n" assure "\x00\x00\x00\x00\x01\n" assure "\x01\n" assure "\x01\n" assure "\x01\x00\n" assure "\x01\x00\x00\n" assure "\x01\x00\x00\x00\n" assure "\x01\x00\x00\x00\x00\n" ioccmd {dbpf DZ:test1 -1} assure "\xff\n" assure "\xff\n" assure "\xff\xff\n" assure "\xff\xff\xff\n" assure "\xff\xff\xff\xff\n" assure "\xff\xff\xff\xff\xff\n" assure "\xff\n" assure "\xff\n" assure "\xff\xff\n" assure "\xff\xff\xff\n" assure "\xff\xff\xff\xff\n" assure "\xff\xff\xff\xff\xff\n" assure "\xff\n" assure "\xff\n" assure "\xff\xff\n" assure "\xff\xff\xff\n" assure "\xff\xff\xff\xff\n" assure "\xff\xff\xff\xff\xff\n" assure "\xff\n" assure "\xff\n" assure "\x00\xff\n" assure "\x00\x00\xff\n" assure "\x00\x00\x00\xff\n" assure "\x00\x00\x00\x00\xff\n" assure "\xff\n" assure "\xff\n" assure "\xff\x00\n" assure "\xff\x00\x00\n" assure "\xff\x00\x00\x00\n" assure "\xff\x00\x00\x00\x00\n" ioccmd {dbpf DZ:test1 269554195} assure "\x13\n" assure "\x13\n" assure "\x12\x13\n" assure "\x11\x12\x13\n" assure "\x10\x11\x12\x13\n" assure "\x00\x10\x11\x12\x13\n" assure "\x13\n" assure "\x13\n" assure "\x13\x12\n" assure "\x13\x12\x11\n" assure "\x13\x12\x11\x10\n" assure "\x13\x12\x11\x10\x00\n" assure "\x13\n" assure "\x13\n" assure "\x00\x13\n" assure "\x00\x00\x13\n" assure "\x00\x00\x00\x13\n" assure "\x00\x00\x00\x00\x13\n" assure "\x13\n" assure "\x13\n" assure "\x00\x13\n" assure "\x00\x00\x13\n" assure "\x00\x00\x00\x13\n" assure "\x00\x00\x00\x00\x13\n" assure "\x13\n" assure "\x13\n" assure "\x13\x00\n" assure "\x13\x00\x00\n" assure "\x13\x00\x00\x00\n" assure "\x13\x00\x00\x00\x00\n" ioccmd {dbpf DZ:test1 -559038737} assure "\xef\n" assure "\xef\n" assure "\xbe\xef\n" assure "\xad\xbe\xef\n" assure "\xde\xad\xbe\xef\n" assure "\xff\xde\xad\xbe\xef\n" assure "\xef\n" assure "\xef\n" assure "\xef\xbe\n" assure "\xef\xbe\xad\n" assure "\xef\xbe\xad\xde\n" assure "\xef\xbe\xad\xde\xff\n" assure "\xef\n" assure "\xef\n" assure "\xff\xef\n" assure "\xff\xff\xef\n" assure "\xff\xff\xff\xef\n" assure "\xff\xff\xff\xff\xef\n" assure "\xef\n" assure "\xef\n" assure "\x00\xef\n" assure "\x00\x00\xef\n" assure "\x00\x00\x00\xef\n" assure "\x00\x00\x00\x00\xef\n" assure "\xef\n" assure "\xef\n" assure "\xef\x00\n" assure "\xef\x00\x00\n" assure "\xef\x00\x00\x00\n" assure "\xef\x00\x00\x00\x00\n" ioccmd {dbpf DZ:test2.PROC 1} send "\x01\x02\x03\x04" assure "01020304\n" ioccmd {dbpf DZ:test2.PROC 1} send "\xde\xad\xbe\xef" assure "deadbeef\n" ioccmd {dbpf DZ:test2.PROC 1} send "\x00\x00\x00\x00" assure "00000000\n" ioccmd {dbpf DZ:test3.PROC 1} send "\x04\x03\x02\x01" assure "00020304\n" ioccmd {dbpf DZ:test3.PROC 1} send "\xde\xad\xbe\xef" assure "ffbeadde\n" ioccmd {dbpf DZ:test3.PROC 1} send "\x00\x00\x00\x00" assure "00000000\n" ioccmd {dbpf DZ:test4.PROC 1} send "\x04\x03\x02\x01" assure "00020304\n" ioccmd {dbpf DZ:test4.PROC 1} send "\xde\xad\xbe\xef" assure "00beadde\n" ioccmd {dbpf DZ:test4.PROC 1} send "\x00\x00\x00\x00" assure "00000000\n" finish