def test_emulator_conditional_or_double_in(self):
     parser = BaseParser("")
     parser.SetInputVars({"ARCH": "X64"})
     self.assertTrue(parser.ProcessConditional(
         '!if "IA32" in $(ARCH) || "X64" in $(ARCH)'))
     self.assertTrue(parser.InActiveCode())
     parser.ResetParserState()
     parser.SetInputVars({"ARCH": "IA32"})
     self.assertTrue(parser.ProcessConditional(
         '!if "IA32" in $(ARCH) || "X64" in $(ARCH)'))
     self.assertTrue(parser.InActiveCode())
     parser.ResetParserState()
 def test_process_conditional_reset(self):
     parser = BaseParser("")
     # test reset
     self.assertTrue(parser.ProcessConditional("!IF FALSE"))
     parser.ResetParserState()
     self.assertTrue(parser.InActiveCode())
     self.assertEqual(len(parser.ConditionalStack), 0)
예제 #3
0
 def test_emulator_conditional_not_in(self):
     parser = BaseParser("")
     parser.SetInputVars({"TOOL_CHAIN_TAG": "VS2019"})
     self.assertTrue(
         parser.ProcessConditional('!if "XCODE5" not in $(TOOL_CHAIN_TAG)'))
     self.assertTrue(parser.InActiveCode())
     parser.ResetParserState()
 def test_process_in_conditional(self):
     parser = BaseParser("")
     parser.SetInputVars({"TOOL_CHAIN_TAG": "GCC5_TEST"})
     self.assertTrue(parser.ProcessConditional(
         '!if ("GCC49" in $(TOOL_CHAIN_TAG)) OR ("GCC5" in $(TOOL_CHAIN_TAG))'))
     self.assertTrue(parser.InActiveCode())
     parser.ResetParserState()
     parser.SetInputVars({"TOOL_CHAIN_TAG": "TESTGCC49"})
     self.assertTrue(parser.ProcessConditional(
         '!if ("GCC49" in $(TOOL_CHAIN_TAG)) OR ("GCC5" in $(TOOL_CHAIN_TAG))'))
     self.assertTrue(parser.InActiveCode())
     parser.ResetParserState()
     # Don't give it a tool chain tag that isn't in the things we're searching for
     parser.SetInputVars({"TOOL_CHAIN_TAG": "NOTFOUND"})
     self.assertTrue(parser.ProcessConditional(
         '!if ("GCC49" in $(TOOL_CHAIN_TAG)) OR ("GCC5" in $(TOOL_CHAIN_TAG))'))
     self.assertFalse(parser.InActiveCode())
예제 #5
0
 def test_emulator_conditional_parens_order(self):
     ''' Makes sure the parenthesis affect the order of expressions '''
     parser = BaseParser("")
     self.assertFalse(
         parser.EvaluateConditional('!if TRUE OR FALSE AND FALSE'))
     self.assertTrue(
         parser.EvaluateConditional('!if TRUE OR (FALSE AND FALSE)'))
     parser.ResetParserState()
    def test_emulator_conditional_not_it_all(self):
        ''' Makes sure the parenthesis affect the order of expressions '''
        parser = BaseParser("")
        self.assertTrue(parser.EvaluateConditional('!if NOT FALSE OR FALSE'))
        self.assertFalse(parser.EvaluateConditional('!if NOT TRUE OR FALSE'))
        # check to make sure it works with parenthesis
        self.assertFalse(parser.EvaluateConditional('!if NOT(TRUE)'))
        self.assertTrue(parser.EvaluateConditional('!if NOT(FALSE)'))
        # make sure it works with the bang symbol
        self.assertFalse(parser.EvaluateConditional('!if !(TRUE)'))
        self.assertTrue(parser.EvaluateConditional('!if !(FALSE)'))

        parser.ResetParserState()