forked from M-Labs/artiq
add unitttest for artiq_rpctool
This commit is contained in:
parent
e6e176fa14
commit
3952954c12
|
@ -0,0 +1,39 @@
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import asyncio
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from artiq.protocols.pc_rpc import Server
|
||||||
|
|
||||||
|
|
||||||
|
class Target:
|
||||||
|
def output_value(self):
|
||||||
|
return 4125380
|
||||||
|
|
||||||
|
|
||||||
|
class TestRPCTool(unittest.TestCase):
|
||||||
|
async def check_value(self):
|
||||||
|
proc = await asyncio.create_subprocess_exec(
|
||||||
|
sys.executable, "-m", "artiq.frontend.artiq_rpctool", "::1", "7777", "call", "output_value",
|
||||||
|
stdout = asyncio.subprocess.PIPE)
|
||||||
|
(value, err) = await proc.communicate()
|
||||||
|
self.assertEqual(value.decode('ascii').rstrip(), '4125380')
|
||||||
|
await proc.wait()
|
||||||
|
|
||||||
|
async def do_test(self):
|
||||||
|
server = Server({"target": Target()})
|
||||||
|
await server.start("::1", 7777)
|
||||||
|
await self.check_value()
|
||||||
|
await server.stop()
|
||||||
|
|
||||||
|
def test_rpc(self):
|
||||||
|
if os.name == "nt":
|
||||||
|
loop = asyncio.ProactorEventLoop()
|
||||||
|
asyncio.set_event_loop(loop)
|
||||||
|
else:
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
try:
|
||||||
|
loop.run_until_complete(self.do_test())
|
||||||
|
finally:
|
||||||
|
loop.close()
|
||||||
|
|
Loading…
Reference in New Issue