| import segprint2fasm |
| |
| import unittest |
| import StringIO |
| import re |
| |
| |
| class TestStringMethods(unittest.TestCase): |
| def check_segprint_fasm_equiv(self, segp_fn, fasm_fn): |
| fout = StringIO.StringIO() |
| segprint2fasm.run(open(segp_fn, 'r'), fout) |
| fasm_out = fout.getvalue() |
| |
| fasm_ref = open(fasm_fn, 'r').read() |
| |
| def normalize(fasm): |
| '''Remove all comments and sort''' |
| ret = [] |
| for l in fasm.split('\n'): |
| # Remove comments |
| i = l.rfind('#') |
| if i >= 0: |
| l = l[0:i] |
| l = l.strip() |
| if not l: |
| continue |
| ret.append(l) |
| return sorted(ret) |
| |
| fasm_out = normalize(fasm_out) |
| fasm_ref = normalize(fasm_ref) |
| self.assertEquals(fasm_ref, fasm_out) |
| |
| def test_lut_int(self): |
| self.check_segprint_fasm_equiv( |
| 'test_data/lut_int/design.segp', 'test_data/lut_int.fasm') |
| |
| def test_ff_int(self): |
| self.check_segprint_fasm_equiv( |
| 'test_data/ff_int/design.segp', 'test_data/ff_int.fasm') |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |