def test_transfer(name, data, config, io1str, io2str, timeout=1000, extra_args=""): """Test a transfer between two gensio objects This function takes a name (for reporting), some data to transfer, a config file for ser2net, and transfers the data one direction, then the other, then both ways at the same time. """ print("Transfer %s:\n config=%s io1=%s\n io2=%s" % (name, config, io1str, io2str)) ser2net, io1, io2 = utils.setup_2_ser2net(o, config, io1str, io2str, extra_args=extra_args) try: print(" io1 to io2") utils.test_dataxfer(io1, io2, data, timeout=timeout) print(" io2 to io1") utils.test_dataxfer(io2, io1, data, timeout=timeout) print(" bidirectional") utils.test_dataxfer_simul(io1, io2, data, timeout=timeout) finally: utils.finish_2_ser2net(ser2net, io1, io2) print(" Success!") return
def do_small_test(io1, io2): rb = gensio.get_random_bytes(512) print(" testing io1 to io2") utils.test_dataxfer(io1, io2, rb) print(" testing io2 to io1") utils.test_dataxfer(io2, io1, rb) print(" Success!")
def test_stdio_small(): print("Test stdio small echo") rb = gensio.get_random_bytes(512) io = utils.alloc_io(o, "stdio,cat", chunksize=64) utils.test_dataxfer(io, io, rb) utils.io_close(io) print(" Success!")
def test_echo_device(): print("Test echo device") io = utils.alloc_io(o, "serialdev,/dev/ttyEcho0,38400") check_raddr(io, "echo device", "/dev/ttyEcho0,38400N81 RTSHI DTRHI") utils.test_dataxfer(io, io, "This is a test string!") utils.io_close(io) print(" Success!")
def test_pty_basic(): print("Test pty basic echo") io = utils.alloc_io(o, "pty,cat", chunksize=64) check_raddr(io, "pty basic", '"cat"') utils.test_dataxfer(io, io, "This is a test string!") utils.io_close(io) print(" Success!")
def test_echo_gensio(): print("Test echo gensio") io = utils.alloc_io(o, "echo") check_raddr(io, "echo", "echo") utils.test_dataxfer(io, io, "This is a test string!") utils.io_close(io) print(" Success!")
def test_one_xfer(name, data1, data2, config, io1str, io2str, timeout=1000, extra_args="", compare1=None, compare2=None): print(" " + name) ser2net, io1, io2 = utils.setup_2_ser2net(o, config, io1str, io2str, extra_args=extra_args) try: if data1: utils.test_dataxfer(io1, io2, data1, timeout=timeout, compare=compare1) if data2: utils.test_dataxfer(io2, io1, data2, timeout=timeout, compare=compare2) finally: utils.finish_2_ser2net(ser2net, io1, io2) return
def test_serial_pipe_device(): print("Test serial pipe device") io1 = utils.alloc_io(o, "serialdev,/dev/ttyPipeA0,9600") io2 = utils.alloc_io(o, "serialdev,/dev/ttyPipeB0,9600") utils.test_dataxfer(io1, io2, "This is a test string!") utils.io_close(io1) utils.io_close(io2) print(" Success!")
def do_large_test(io1, io2): rb = os.urandom(1048570) print(" testing io1 to io2") utils.test_dataxfer(io1, io2, rb, timeout=30000) print(" testing io2 to io1") utils.test_dataxfer(io2, io1, rb, timeout=30000) print(" testing bidirection between io1 and io2") utils.test_dataxfer_simul(io1, io2, rb, timeout=30000) print(" Success!")
def do_medium_test(io1, io2): rb = os.urandom(131071) print(" testing io1 to io2") utils.test_dataxfer(io1, io2, rb, timeout=10000) print(" testing io2 to io1") utils.test_dataxfer(io2, io1, rb, timeout=10000) print(" testing bidirection between io1 and io2") utils.test_dataxfer_simul(io1, io2, rb, timeout=10000) print(" Success!")
def test_ipmisol_small(): print("Test ipmisol small") isim = ipmisimdaemon.IPMISimDaemon(o) io1 = utils.alloc_io(o, "serialdev,/dev/ttyPipeA0,9600") io2 = utils.alloc_io( o, "ipmisol,lan -U ipmiusr -P test -p 9001 localhost,9600") utils.test_dataxfer(io1, io2, "This is a test string!") utils.io_close(io1) utils.io_close(io2) print(" Success!")
def test_ipmisol_large(): print("Test ipmisol large") isim = ipmisimdaemon.IPMISimDaemon(o) io1 = utils.alloc_io(o, "serialdev,/dev/ttyPipeA0,115200") io2 = utils.alloc_io( o, "ipmisol,lan -U ipmiusr -P test -p 9001 localhost,115200") rb = gensio.get_random_bytes(104857) utils.test_dataxfer(io1, io2, rb, timeout=10000) utils.io_close(io1) utils.io_close(io2) print(" Success!")
def test_stdio_basic_stderr(): print("Test stdio basic stderr echo") io = utils.alloc_io(o, "stdio,sh -c 'cat 1>&2'", chunksize=64) io.handler.ignore_input = True io.read_cb_enable(True) err = io.open_channel_s(None, None) utils.HandleData(o, "stderr", chunksize=64, io=err) utils.test_dataxfer(io, err, "This is a test string!") utils.io_close(io) utils.io_close(err) print(" Success!")
def do_test(io1, io2): utils.test_dataxfer(io1, io2, "This is a test string!")
def t2(): print("Test serial pipe device") io1 = utils.alloc_io(o, "termios,/dev/ttyPipeA0,9600") io2 = utils.alloc_io(o, "termios,/dev/ttyPipeB0,9600") utils.test_dataxfer(io1, io2, "This is a test string!")
def test_stdio_basic(): print("Test stdio basic echo") io = utils.alloc_io(o, "stdio,cat", chunksize=64) utils.test_dataxfer(io, io, "This is a test string!") utils.io_close(io) print(" Success!")
raise Exception("kickolduser: remote end didn't close") finally: if io3 is not None: utils.io_close(io3) utils.finish_2_ser2net(ser2net, io1, io2) print(" multiple connections") ser2net, io1, io2 = utils.setup_2_ser2net( utils.o, ("connection: &con", " accepter: tcp,3023", " connector: serialdev,/dev/ttyPipeA0,9600N81", " options:", " max-connections: 2"), "tcp,localhost,3023", "serialdev,/dev/ttyPipeB0,9600N81") io3 = None io4 = None try: utils.test_dataxfer(io2, io1, "Test string") io3 = utils.alloc_io(utils.o, "tcp,localhost,3023") io3.handler.set_compare("Test 2 string") utils.test_dataxfer(io2, io1, "Test 2 string") if io3.handler.wait_timeout(1000) == 0: raise Exception("max-connections: Didn't receive data") io4 = utils.alloc_io(utils.o, "tcp,localhost,3023", do_open=False) io4.handler.set_compare("Port already in use\r\n") io4.handler.set_expected_err("Remote end closed connection") io4.open_s() io4.read_cb_enable(True) if io4.handler.wait_timeout(1000) == 0: raise Exception( "max-connections: Overconnect didn't receive errstring") io4.read_cb_enable(True)
def do_test(io1, io2): utils.test_dataxfer(io1, io2, "This is a test string!") print(" Success!")
def t1(): print("Test echo device") io = utils.alloc_io(o, "termios,/dev/ttyEcho0,38400") utils.test_dataxfer(io, io, "This is a test string!")