Add coverage tests for allowmultistrings, and reorder for coverage of the test program itself.

This commit is contained in:
Sei Lisa 2014-07-26 03:57:02 +02:00
parent a46c5463eb
commit 0b6ff4646e

View file

@ -10,7 +10,40 @@ import os
class UnitTestCase(unittest.TestCase): class UnitTestCase(unittest.TestCase):
pass pass
class TestCompiler(UnitTestCase): class Test01LibraryLoader(UnitTestCase):
def test_coverage(self):
os.remove('builtins.txt')
f = open('builtins.txt', 'wb')
f.write(r'''const key a="\t"
event ev(integer i)
event ev(integer i)
quaternion x(integer i)
void x(integer i)
blah
const vector a = <4,5,3,2>
const vector a = <4,5,3,2
const vector a = <x,4,3>
const vector a = <4,x,3>
const vector a = <3,4,x>
const rotation a = <3,4,4,x>
const list l = []
const quaternion q=<1,2,3,4>
const string v="
const string q="\t"
''')
f.close()
parser()
f = open('builtins.txt.dat', 'rb')
b = f.read()
f.close()
os.remove('builtins.txt')
f = open('builtins.txt', 'wb')
f.write(b)
f.close()
parser()
class Test02Compiler(UnitTestCase):
def setUp(self): def setUp(self):
self.parser = parser() self.parser = parser()
self.outscript = outscript() self.outscript = outscript()
@ -150,6 +183,7 @@ class TestCompiler(UnitTestCase):
print self.outscript.output(self.parser.parse(''' print self.outscript.output(self.parser.parse('''
float f=2+2; float f=2+2;
string s = "1" "2";
default{timer(){ default{timer(){
1+([]+(integer)~1); 1+([]+(integer)~1);
list a; list a;
@ -158,10 +192,11 @@ class TestCompiler(UnitTestCase):
f += 4; f += 4;
integer i; integer i;
i |= i; i |= i;
"a" "b" "c";
i>>=i; i>>=i;
}}''', }}''',
set(('explicitcast','extendedtypecast','extendedassignment', set(('explicitcast','extendedtypecast','extendedassignment',
'extendedglobalexpr')))) 'extendedglobalexpr', 'allowmultistrings'))))
print self.parser.scopeindex print self.parser.scopeindex
self.assertRaises(EParseUnexpected, self.parser.PopScope) self.assertRaises(EParseUnexpected, self.parser.PopScope)
@ -173,44 +208,5 @@ class TestCompiler(UnitTestCase):
del self.parser del self.parser
del self.outscript del self.outscript
class TestLibraryLoader(UnitTestCase):
def test_coverage(self):
try:
os.remove('builtins.txt')
except OSError:
pass
f = open('builtins.txt', 'wb')
f.write(r'''const key a="\t"
event ev(integer i)
event ev(integer i)
quaternion x(integer i)
void x(integer i)
blah
const vector a = <4,5,3,2>
const vector a = <4,5,3,2
const vector a = <x,4,3>
const vector a = <4,x,3>
const vector a = <3,4,x>
const rotation a = <3,4,4,x>
const list l = []
const quaternion q=<1,2,3,4>
const string v="
const string q="\t"
''')
f.close()
parser()
f = open('builtins.txt.dat', 'rb')
b = f.read()
f.close()
try:
os.remove('builtins.txt')
except OSError:
pass
f = open('builtins.txt', 'wb')
f.write(b)
f.close()
parser()
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()