def semihostagent(ctx, request): io_handler = semihost.InternalSemihostIOHandler() agent = semihost.SemihostAgent(ctx, io_handler) def cleanup(): agent.cleanup() request.addfinalizer(cleanup) return agent
def semihost_telnet_agent(ctx, telnet_server, request): semihost_console = semihost.ConsoleIOHandler(telnet_server) agent = semihost.SemihostAgent(ctx, console=semihost_console) def cleanup(): agent.cleanup() request.addfinalizer(cleanup) return agent
def semihost_telnet_agent(ctx, telnet, request): agent = semihost.SemihostAgent(ctx, console=telnet) def cleanup(): agent.cleanup() request.addfinalizer(cleanup) return agent
def test_console_readc(self, semihost_builder): console = RecordingSemihostIOHandler() agent = semihost.SemihostAgent(semihost_builder.ctx, console=console) semihost_builder.set_agent(agent) console.set_input_data(semihost.STDIN_FD, 'x') result = semihost_builder.do_no_args_call(semihost.TARGET_SYS_READC) assert chr(result) == 'x'
def test_console_write(self, semihost_builder): console = RecordingSemihostIOHandler() agent = semihost.SemihostAgent(semihost_builder.ctx, console=console) semihost_builder.set_agent(agent) result = semihost_builder.do_write(semihost.STDOUT_FD, 'hello world') assert result == 0 assert console.get_output_data(semihost.STDOUT_FD) == 'hello world'
def test_console_writec(self, semihost_builder): console = RecordingSemihostIOHandler() agent = semihost.SemihostAgent(semihost_builder.ctx, console=console) semihost_builder.set_agent(agent) for c in 'abcdef': result = semihost_builder.do_writec(c) assert result == 0 assert console.get_output_data(semihost.STDOUT_FD) == 'abcdef'
def test_console_read(self, semihost_builder, data, readlen): console = RecordingSemihostIOHandler() agent = semihost.SemihostAgent(semihost_builder.ctx, console=console) semihost_builder.set_agent(agent) console.set_input_data(semihost.STDIN_FD, data) result, resultData = semihost_builder.do_read(semihost.STDIN_FD, readlen) assert result == (readlen - min(readlen, len(data))) expectedData = data[:min(len(data), readlen)] assert resultData == expectedData
def ioh(ctx): handler = semihost.SemihostIOHandler() agent = semihost.SemihostAgent(ctx, io_handler=handler) return handler, agent
def test_only_console(self, ctx): c = RecordingSemihostIOHandler() a = semihost.SemihostAgent(ctx, io_handler=None, console=c) assert type(a.io_handler) is semihost.SemihostIOHandler assert a.console is c
def test_only_io_handler(self, ctx): c = RecordingSemihostIOHandler() a = semihost.SemihostAgent(ctx, io_handler=c, console=None) assert a.io_handler is c assert a.console is c
def test_no_io_handler(self, ctx): a = semihost.SemihostAgent(ctx, io_handler=None, console=None) assert type(a.io_handler) is semihost.SemihostIOHandler assert type(a.console) is semihost.SemihostIOHandler assert a.console is a.io_handler
def console_semihost_builder(semihost_builder): console = RecordingSemihostIOHandler() agent = semihost.SemihostAgent(semihost_builder.ctx, console=console) semihost_builder.set_agent(agent) return semihost_builder