Skip to content

Commit 081cf35

Browse files
committed
Update tests function to parse every .stp file in the stepcode tree
(assumes code is under ~/projects/src/stepcode)
1 parent c1c3bc1 commit 081cf35

1 file changed

Lines changed: 45 additions & 19 deletions

File tree

src/exp2python/python/SCL/Part21.py

Lines changed: 45 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -408,34 +408,60 @@ def p_empty(self, p):
408408
pass
409409

410410
def test_debug():
411+
import os.path
412+
411413
logging.basicConfig()
412414
logger.setLevel(logging.DEBUG)
413415

414-
s = open('io1-tu-203.stp', 'r').read()
415416
parser = Parser()
416-
417-
try:
418-
r = parser.parse(s, debug=1)
419-
except SystemExit:
420-
pass
421-
422-
return (parser, r)
417+
parser.reset()
418+
419+
logger.info("***** parser debug *****")
420+
p = os.path.expanduser('~/projects/src/stepcode/data/ap214e3/s1-c5-214/s1-c5-214.stp')
421+
with open(p, 'rU') as f:
422+
s = f.read()
423+
try:
424+
parser.parse(s, debug=1)
425+
except SystemExit:
426+
pass
427+
428+
logger.info("***** finished *****")
423429

424430
def test():
431+
import os, os.path, itertools, codecs
432+
425433
logging.basicConfig()
426-
logger.setLevel(logging.ERROR)
434+
logger.setLevel(logging.INFO)
427435

428-
s = open('io1-tu-203.stp', 'r').read()
429436
parser = Parser()
430-
431-
try:
432-
r = parser.parse(s)
433-
except SystemExit:
434-
pass
435-
436-
return (parser, r)
437-
437+
compat_list = []
438+
439+
def parse_check(p):
440+
logger.info("processing {0}".format(p))
441+
parser.reset()
442+
with open(p, 'rU') as f:
443+
iso_wrapper = codecs.EncodedFile(f, 'iso-8859-1')
444+
s = iso_wrapper.read()
445+
parser.parse(s)
446+
447+
logger.info("***** standard test *****")
448+
for d, _, files in os.walk(os.path.expanduser('~/projects/src/stepcode')):
449+
for f in itertools.ifilter(lambda x: x.endswith('.stp'), files):
450+
p = os.path.join(d, f)
451+
try:
452+
parse_check(p)
453+
except LexError:
454+
logger.exception('Lexer issue, adding {0} to compatibility test list'.format(os.path.basename(p)))
455+
compat_list.append(p)
456+
457+
lexer = Lexer(compatibility_mode=True)
458+
parser = Parser(lexer=lexer)
459+
460+
logger.info("***** compatibility test *****")
461+
for p in compat_list:
462+
parse_check(p)
463+
464+
logger.info("***** finished *****")
438465

439466
if __name__ == '__main__':
440467
test()
441-

0 commit comments

Comments
 (0)