Skip to content
Snippets Groups Projects
test_stack_frame_parser_context.py 1.57 KiB
Newer Older
pompolic's avatar
pompolic committed
import unittest

pompolic's avatar
pompolic committed
class TestContextBasedAllocationAttribution(unittest.TestCase):
pompolic's avatar
pompolic committed
	def setUp(self):
		self.a = Parser("a", 128)
		self.b = Parser("b", 32)
		self.top_level_parse = TopLevelParse()

		self.top_level_parse.enter_h_packrat_parse(self.a.address)

		#TODO: are we initializing from scratch for evers test?
		self.top_level_parse.enter_h_do_parse(self.a.address)
		self.top_level_parse.parse_virtual(self.a.address)
		self.top_level_parse.enter_perform_lowlevel_parse(self.a.address)

	#TODO: teardown, invoke the return_from_* functions
pompolic's avatar
pompolic committed

	def test_top_of_stack(self):
		#self.assertEqual(self.top_level_parse.peek_parser(), cr)
		pass

	def test_after_h_do_parse(self):
pompolic's avatar
pompolic committed
		self.top_level_parse.enter_h_do_parse(self.b.address)
		self.assertIs(self.top_level_parse.peek_parser(), self.b)

	def test_after_enter_parse_virtual(self):
pompolic's avatar
pompolic committed
		self.top_level_parse.enter_h_do_parse(self.b.address)
		self.top_level_parse._parse_virtual(self.b.address)
		self.assertIs(self.top_level_parse.peek_parser(), self.b)

	def test_after_enter_perform_lowlevel_parse(self):
pompolic's avatar
pompolic committed
		self.top_level_parse.enter_h_do_parse(self.b.address)
		self.top_level_parse._parse_virtual(self.b.address)
		self.top_level_parse.enter_perform_lowlevel_parse(self.b.address)
		self.assertIs(self.top_level_parse.peek_parser(), self.b)
pompolic's avatar
pompolic committed
	# TODO: thes need a different setUp() with two parsers pushed on the stack
	def test_after_return_from_perform_lowlevel_parse(self):
		pass

	def test_after_return_from_parse_virtual(self):
		pass

	def test_after_return_from_h_do_parse(self):
		#self.assertIs(self.top_level_parse.peek_parser(), ws)
pompolic's avatar
pompolic committed
		pass