Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
test.py
00001 #!/usr/bin/env python 00002 00003 import re 00004 import sys 00005 import subprocess 00006 import os 00007 import yaml 00008 00009 def generate(test): 00010 with open('replacements.yml') as file: 00011 replacements = yaml.load(file) 00012 00013 lines = [] 00014 for line in re.split('(?<=[;{}])\n', test.read()): 00015 for pattern, replacement in replacements: 00016 line = re.sub(pattern, replacement, line, 0, re.DOTALL | re.MULTILINE) 00017 00018 match = re.match('(?: *\n)*( *)(.*)=>(.*);', line, re.DOTALL | re.MULTILINE) 00019 if match: 00020 tab, test, expect = match.groups() 00021 lines.append(tab+'res = {test};'.format(test=test.strip())) 00022 lines.append(tab+'TEST_ASSERT_EQUAL({expect}, res);'.format( 00023 name=re.match('\w*', test.strip()).group(), 00024 expect=expect.strip())) 00025 else: 00026 lines.append(line) 00027 00028 lines = lines[:-1] 00029 00030 with open('template_subunit.fmt') as file: 00031 template = file.read() 00032 00033 with open('main.cpp', 'a') as file: 00034 file.write(template.format( 00035 test=('\n'.join( 00036 4*' '+line.replace('\n', '\n'+4*' ') 00037 for line in lines)))) 00038 00039 def main(test=None): 00040 if test and not test.startswith('-'): 00041 with open(test) as file: 00042 generate(file) 00043 else: 00044 generate(sys.stdin) 00045 00046 00047 if __name__ == "__main__": 00048 main(*sys.argv[1:])
Generated on Tue Jul 12 2022 12:22:23 by
1.7.2