fixed the segfault! hand-initialized HParser needed PB_MIN set.
This commit is contained in:
parent
62af9f6222
commit
10c8b0bd22
4 changed files with 13 additions and 9 deletions
|
|
@ -6,15 +6,15 @@ pythonenv = env.Clone(IMPLICIT_COMMAND_DEPENDENCIES = 0)
|
||||||
|
|
||||||
pythonenv.Append(CPPPATH = ['../../', '/usr/include/python2.7'])
|
pythonenv.Append(CPPPATH = ['../../', '/usr/include/python2.7'])
|
||||||
pythonenv.Append(CCFLAGS = ['-fpic', '-DSWIG', '-Wno-all', '-Wno-extra', '-Wno-error'])
|
pythonenv.Append(CCFLAGS = ['-fpic', '-DSWIG', '-Wno-all', '-Wno-extra', '-Wno-error'])
|
||||||
#pythonenv.Append(LIBS = ['hammer'])
|
pythonenv.Append(LIBS = ['hammer'])
|
||||||
#pythonenv.Append(LIBPATH = ['../../'])
|
pythonenv.Append(LIBPATH = ['../../'])
|
||||||
pythonenv.Append(SWIGFLAGS = ['-DHAMMER_INTERNAL__NO_STDARG_H', '-Isrc/', '-python'])
|
pythonenv.Append(SWIGFLAGS = ['-DHAMMER_INTERNAL__NO_STDARG_H', '-Isrc/', '-python'])
|
||||||
|
|
||||||
pythonenv.Command("hammer.i", "../swig/hammer.i", Copy("$TARGET", "$SOURCE"))
|
pythonenv.Command("hammer.i", "../swig/hammer.i", Copy("$TARGET", "$SOURCE"))
|
||||||
|
|
||||||
swig = ['hammer.i']
|
swig = ['hammer.i']
|
||||||
|
|
||||||
libhammer_python = pythonenv.SharedLibrary('hammer', libhammer_shared + swig, SHLIBPREFIX='_')
|
libhammer_python = pythonenv.SharedLibrary('hammer', swig, SHLIBPREFIX='_')
|
||||||
|
|
||||||
pytestenv = pythonenv.Clone()
|
pytestenv = pythonenv.Clone()
|
||||||
pytestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
pytestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
||||||
|
|
|
||||||
|
|
@ -477,7 +477,7 @@ class TestNot2(unittest.TestCase):
|
||||||
# # def test_failure(self):
|
# # def test_failure(self):
|
||||||
# # pass
|
# # pass
|
||||||
|
|
||||||
class TestARightrec(unittest.TestCase):
|
class TestRightrec(unittest.TestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
cls.parser = h.h_indirect()
|
cls.parser = h.h_indirect()
|
||||||
|
|
@ -486,13 +486,13 @@ class TestARightrec(unittest.TestCase):
|
||||||
def test_success(self):
|
def test_success(self):
|
||||||
tree = h.h_parse(self.parser, "a", 1).ast.token_data.seq
|
tree = h.h_parse(self.parser, "a", 1).ast.token_data.seq
|
||||||
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
||||||
tree = h_parse(self.parser, "aa", 2).ast.token_data.seq
|
tree = h.h_parse(self.parser, "aa", 2).ast.token_data.seq
|
||||||
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
||||||
self.assertEqual(tree[1].token_data.seq[0].token_data.uint, ord("a"))
|
self.assertEqual(tree[1].token_data.seq[0].token_data.uint, ord("a"))
|
||||||
tree = h_parse(self.parser, "aaa", 3).ast.token_data.seq
|
tree = h.h_parse(self.parser, "aaa", 3).ast.token_data.seq
|
||||||
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
self.assertEqual(tree[0].token_data.uint, ord("a"))
|
||||||
self.assertEqual(tree[1].token_data.seq[0].token_data.uint, ord("a"))
|
self.assertEqual(tree[1].token_data.seq[0].token_data.uint, ord("a"))
|
||||||
self.assertEqual(tree[1].token_data.seq[1].token_data.seq[0].uint, ord("a"))
|
self.assertEqual(tree[1].token_data.seq[1].token_data.seq[0].token_data.uint, ord("a"))
|
||||||
def test_failure(self):
|
def test_failure(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,8 @@ HParser* h_choice__ma(HAllocator* mm__, void *args[]) {
|
||||||
|
|
||||||
s->len = len;
|
s->len = len;
|
||||||
HParser *ret = h_new(HParser, 1);
|
HParser *ret = h_new(HParser, 1);
|
||||||
ret->vtable = &choice_vt; ret->env = (void*)s;
|
ret->vtable = &choice_vt;
|
||||||
|
ret->env = (void*)s;
|
||||||
|
ret->backend = PB_MIN;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,8 @@ HParser* h_sequence__ma(HAllocator* mm__, void *args[]) {
|
||||||
|
|
||||||
s->len = len;
|
s->len = len;
|
||||||
HParser *ret = h_new(HParser, 1);
|
HParser *ret = h_new(HParser, 1);
|
||||||
ret->vtable = &sequence_vt; ret->env = (void*)s;
|
ret->vtable = &sequence_vt;
|
||||||
|
ret->env = (void*)s;
|
||||||
|
ret->backend = PB_MIN;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue