@@ -569,21 +569,33 @@ def fix(x):
569
569
570
570
print '\n [ checking example testcases... ]\n '
571
571
572
- cmd = [os .environ .get ('CXX' ) or 'g++' , '-std=c++11' ,
573
- os .path .join ('test' , 'example' , 'find_div0s.cpp' ),
574
- os .path .join ('src' , 'pass.cpp' ),
575
- os .path .join ('src' , 'wasm.cpp' ),
576
- os .path .join ('src' , 'passes' , 'Print.cpp' ),
577
- '-Isrc' , '-g' , '-lasmjs' , '-lsupport' , '-Llib/.' , '-pthread' ]
578
- if os .environ .get ('COMPILER_FLAGS' ):
579
- for f in os .environ .get ('COMPILER_FLAGS' ).split (' ' ):
580
- cmd .append (f )
581
- print ' ' .join (cmd )
582
- subprocess .check_call (cmd )
583
- actual = subprocess .Popen (['./a.out' ], stdout = subprocess .PIPE ).communicate ()[0 ]
584
- expected = open (os .path .join ('test' , 'example' , 'find_div0s.txt' )).read ()
585
- if actual != expected :
586
- fail (actual , expected )
572
+ for t in sorted (os .listdir (os .path .join ('test' , 'example' ))):
573
+ cmd = [os .path .join ('src' , 'pass.cpp' ),
574
+ os .path .join ('src' , 'wasm.cpp' ),
575
+ os .path .join ('src' , 'passes' , 'Print.cpp' ),
576
+ '-Isrc' , '-g' , '-lasmjs' , '-lsupport' , '-Llib/.' , '-pthread' ]
577
+ if t .endswith ('.cpp' ):
578
+ cmd = [os .path .join ('test' , 'example' , t )] + cmd
579
+ elif t .endswith ('.c' ):
580
+ # build the C file separately
581
+ extra = [os .environ .get ('CC' ) or 'gcc' ,
582
+ os .path .join ('test' , 'example' , t ), '-c' , '-o' , 'example.o' ,
583
+ '-Isrc' , '-g' , '-lasmjs' , '-lsupport' , '-Llib/.' , '-pthread' ]
584
+ print ' ' .join (extra )
585
+ subprocess .check_call (extra )
586
+ cmd = ['example.o' , '-lbinaryen-c' ] + cmd
587
+ else :
588
+ continue
589
+ if os .environ .get ('COMPILER_FLAGS' ):
590
+ for f in os .environ .get ('COMPILER_FLAGS' ).split (' ' ):
591
+ cmd .append (f )
592
+ cmd = [os .environ .get ('CXX' ) or 'g++' , '-std=c++11' ] + cmd
593
+ print ' ' .join (cmd )
594
+ subprocess .check_call (cmd )
595
+ actual = subprocess .Popen (['./a.out' ], stdout = subprocess .PIPE ).communicate ()[0 ]
596
+ expected = open (os .path .join ('test' , 'example' , '.' .join (t .split ('.' )[:- 1 ]) + '.txt' )).read ()
597
+ if actual != expected :
598
+ fail (actual , expected )
587
599
588
600
if has_emcc :
589
601
0 commit comments