1
from os.path import isfile, splitext, basename
2
from os import system, remove
5
from logilab.common.testlib import TestCase, unittest_main
7
class RPyCompilation(TestCase):
10
self.trscript = self.find_pypy()
13
#trscript = '/home/adim/local/svn/pypy-dist/pypy/translator/goal/translate.py'
14
trscript = '/home/syt/cvs_work/pypy-dist/pypy/translator/goal/translate.py'
15
if not isfile(trscript):
16
self.skip('translate.py not found')
19
def _compile_fail(self, filename):
20
status = system('%s --batch %s' % (self.trscript, filename))
22
self.assertNotEquals(status, 0, "%s translation succeed !!" % filename)
23
except AssertionError:
24
exefile = '%s-c' % splitext(basename(filename))[0]
25
status = system('./%s' % exefile)
27
self.assertNotEquals(status, 0, "%s run succeed !!" % exefile)
29
def _compile_success(self, filename):
30
status = system('%s --batch %s' % (self.trscript, filename))
31
self.assertEquals(status, 0, "%s translation failed !!" % filename)
32
exefile = '%s-c' % splitext(basename(filename))[0]
33
status = system('./%s' % exefile)
35
self.assertEquals(status, 0, "%s run failed !!" % exefile)
38
def test_translations(self):
39
for filename in glob('rpythoninput/func_*.py'):
40
if filename.startswith('rpythoninput/func_noerror'):
41
yield self._compile_success, filename
43
yield self._compile_fail, filename
46
if __name__ == '__main__':
48
if not '-cc' in sys.argv:
49
sys.argv.append('-cc')