mirror of https://github.com/ARMmbed/mbed-os.git
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
import json
|
|
from socket import *
|
|
from workspace_tools.settings import *
|
|
|
|
|
|
def get_server_connection():
|
|
sock = socket(AF_INET, SOCK_STREAM)
|
|
sock.connect((SERVER_ADDRESS, SERVER_PORT))
|
|
return sock
|
|
|
|
|
|
def get_muts():
|
|
# Get the data structure about the Mbed Under Test provided by this server
|
|
sock = get_server_connection()
|
|
sock.send(json.dumps({"info":"muts"}))
|
|
muts = sock.recv(1024)
|
|
return json.loads(muts)
|
|
|
|
|
|
def request_test(mcu, image_path, test_id, duration=10):
|
|
"""
|
|
The test_id needs to be provided only for an automated test the server will
|
|
load the correspondent Checker class and will return a json report at the
|
|
end of the test
|
|
"""
|
|
test_spec = {
|
|
"mcu": mcu,
|
|
"image": image_path,
|
|
"duration": duration,
|
|
"test_id": test_id,
|
|
}
|
|
|
|
sock = get_server_connection()
|
|
sock.send(json.dumps(test_spec))
|
|
|
|
report_buffer = []
|
|
try:
|
|
while True:
|
|
# Here we do not worry about efficiency the most important feature
|
|
# for the developer in front of the terminal is responsiveness
|
|
c = sock.recv(1)
|
|
if not c: break
|
|
report_buffer.append(c)
|
|
|
|
except KeyboardInterrupt, _:
|
|
print "\n[CTRL+c] closing connection"
|
|
sock.send("!")
|
|
|
|
print '\nTest completed'
|
|
sock.close()
|
|
|
|
try:
|
|
return json.loads(''.join(report_buffer))
|
|
except Exception, _:
|
|
return {"result": "error"}
|