def test_resolve_multiple_defines(self): """second easiest test, this one requires multiple passes of the replacement string""" buf = "\n\n\ `define B 1\n\ `define A `B\n\ module test ();\n\ endmodule" define_dict = preprocessor.generate_define_table(buf, debug=False) result = preprocessor.resolve_defines("`B:`A", define_dict, debug=False) self.assertEqual(result, '1:1')
def test_complicated_string(self): """Hardest test of all, filled with multiple replacements and all of the pre-processing techniques""" buf = "\n\n\ `define B 2 \n\ `define A `B \n\ `define C 4 \n\ module test ();\n\ endmodule" define_dict = preprocessor.generate_define_table(buf, debug=False) result = preprocessor.resolve_defines("val[(`A * `B * `C):((`C)-(`A))]", define_dict, debug = self.dbg) result = preprocessor.evaluate_range(result, define_dict, debug=False) #print "result: %s" % result self.assertEqual(result, "val[16:2]")
def test_generate_define_table(self): """generate a define table given a file""" self.module_buffer = "`define TEST_DEFINE 1" result = preprocessor.generate_define_table(self.module_buffer, debug = self.dbg) self.assertEqual(result["TEST_DEFINE"], '1')