@@ -408,34 +408,60 @@ def p_empty(self, p):
408408 pass
409409
410410def 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
424430def 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
439466if __name__ == '__main__' :
440467 test ()
441-
0 commit comments