implemented hwtest

This commit is contained in:
Alex Kaplan 2015-09-17 00:55:39 -07:00
parent 4202474484
commit dcfd128eff
1 changed files with 84 additions and 2 deletions

View File

@ -1,3 +1,85 @@
#!/bin/bash
#!/usr/bin/env python
exit 0
import io
import sys
import serial
import re
#------------------------------------------------------------------
def answer_prompt(sio,prompt_to_wait_for,answer_to_write):
#------------------------------------------------------------------
prompt_found = False
data = ''
while not prompt_found:
data += sio.read(100);
print '-' * 50
print ' %d bytes read' % (len(data))
print '-' * 50
print data
if(data[:-1].endswith(prompt_to_wait_for)):
sio.write(unicode(answer_to_write+'\n'))
print '-' * 50
print ' detected [%s] ' % prompt_to_wait_for
print '-' * 50
prompt_found = True
else:
sio.write(unicode('\n'))
sio.flush()
#------------------------------------------------------------------
def scanfor(sio,regexp_to_scan_for,answer_to_write):
#------------------------------------------------------------------
prompt_found = False
data = ''
while not prompt_found:
data += sio.read(100);
print '-' * 50
print ' %d bytes read' % (len(data))
print '-' * 50
print data
if re.search(regexp_to_scan_for,data):
print '-' * 50
print ' detected [%s] ' % regexp_to_scan_for
print '-' * 50
sio.write(unicode(answer_to_write+'\n'))
prompt_found = True
sio.flush()
return data
#------------------------------------------------------------------
def main():
#------------------------------------------------------------------
if( len(sys.argv)>1 ):
serial_port=sys.argv[1]
else:
serial_port='/dev/ttyACM0';
print 'reading from %s:' % serial_port
ser = serial.Serial(serial_port,115200, timeout=1);
sio = io.TextIOWrapper(io.BufferedRWPair(ser,ser))
#login
answer_prompt(sio,'login:','root')
answer_prompt(sio,'#','hwtest')
d=scanfor(sio,r'.*### [^#]+ ###.*','poweroff')
if re.search(r'.*### ALL TESTS PASSED ###.*',d):
print "---> TESTS PASSED"
ser.close();
return 0
ser.close();
print "---> TESTS FAILED"
return 1
#------------------------------------------------------------------
if __name__ == "__main__":
#------------------------------------------------------------------
exit( main() )