sbsv2/raptor/test/unit_suite/raptor_api_unit.py
changeset 625 a1925fb7753a
parent 591 22486c9c7b15
equal deleted inserted replaced
624:f70b728ea30c 625:a1925fb7753a
    16 
    16 
    17 import generic_path
    17 import generic_path
    18 import raptor
    18 import raptor
    19 import raptor_api
    19 import raptor_api
    20 import unittest
    20 import unittest
       
    21 import raptor_tests
    21 
    22 
    22 class TestRaptorApi(unittest.TestCase):
    23 class TestRaptorApi(unittest.TestCase):
    23 			
    24 			
    24 	def testContext(self):
    25 	def testContext(self):
    25 		api = raptor_api.Context()
    26 		api = raptor_api.Context()
    28 		r = raptor.Raptor()
    29 		r = raptor.Raptor()
    29 		api = raptor_api.Context(r)
    30 		api = raptor_api.Context(r)
    30 		
    31 		
    31 	def testAliases(self):
    32 	def testAliases(self):
    32 		r = raptor.Raptor()
    33 		r = raptor.Raptor()
    33 		r.cache.Load( generic_path.Join(r.home, "test", "config", "api.xml") )
    34 		r.cache.Load( generic_path.Join(r.home, "test", "configapi", "api.xml") )
    34 
    35 
    35 		api = raptor_api.Context(r)
    36 		api = raptor_api.Context(r)
    36 	
    37 	
    37 		aliases = api.getaliases() # type == ""
    38 		aliases = api.getaliases() # type == ""
    38 		self.failUnlessEqual(len(aliases), 4)
    39 		self.failUnlessEqual(len(aliases), 4)
    39 		self.failUnlessEqual(set(["alias_A","alias_B","s1","s2"]),
    40 		self.failUnlessEqual(set(["alias_A","alias_B","s1","s2"]),
    40 							 set(a.name for a in aliases))
    41 							 set(a.name for a in aliases))
       
    42 		
       
    43 		aliaslist = [a.name for a in aliases] # verify that the list is sorted
       
    44 		self.failUnlessEqual(["alias_A","alias_B","s1","s2"], aliaslist)
    41 		
    45 		
    42 		aliases = api.getaliases(raptor_api.ALL) # ignore type
    46 		aliases = api.getaliases(raptor_api.ALL) # ignore type
    43 		self.failUnlessEqual(len(aliases), 6)
    47 		self.failUnlessEqual(len(aliases), 6)
    44 		
    48 		
    45 		aliases = api.getaliases("X") # type == "X"
    49 		aliases = api.getaliases("X") # type == "X"
    47 		self.failUnlessEqual(aliases[0].name, "alias_D")
    51 		self.failUnlessEqual(aliases[0].name, "alias_D")
    48 		self.failUnlessEqual(aliases[0].meaning, "a.b.c.d")
    52 		self.failUnlessEqual(aliases[0].meaning, "a.b.c.d")
    49 	
    53 	
    50 	def testConfig(self):
    54 	def testConfig(self):
    51 		r = raptor.Raptor()
    55 		r = raptor.Raptor()
    52 		r.cache.Load( generic_path.Join(r.home, "test", "config", "api.xml") )
    56 		r.cache.Load( generic_path.Join(r.home, "test", "configapi", "api.xml") )
    53 
    57 
    54 		api = raptor_api.Context(r)
    58 		api = raptor_api.Context(r)
    55 		
    59 		
    56 		if r.filesystem == "unix":
    60 		if r.filesystem == "unix":
    57 			path = "/home/raptor/foo/bar"
    61 			path = "/home/raptor/foo/bar"
    58 		else:
    62 		else:
    59 			path = "C:/home/raptor/foo/bar"
    63 			path = "C:/home/raptor/foo/bar"
    60 			
    64 			
    61 		config = api.getconfig("buildme")
    65 		config = api.getconfig("buildme")
    62 		self.failUnlessEqual(config.fullname, "buildme")
    66 		self.failUnlessEqual(config.meaning, "buildme")
    63 		self.failUnlessEqual(config.outputpath, path)
    67 		self.failUnlessEqual(config.outputpath, path)
    64 		
    68 		
       
    69 		# metadata
       
    70 				
       
    71 		metadatamacros = map(lambda x: str(x.name+"="+x.value) if x.value else str(x.name), config.metadata.platmacros)
       
    72 		metadatamacros.sort()
       
    73 		results = ['SBSV2=_____SBSV2', '__GNUC__=3']
       
    74 		results.sort()
       
    75 		self.failUnlessEqual(metadatamacros, results)
       
    76 		
       
    77 		includepaths = map(lambda x: str(x.path), config.metadata.includepaths)
       
    78 		includepaths.sort()
       
    79 		expected_includepaths = [raptor_tests.ReplaceEnvs("$(EPOCROOT)/epoc32/include/variant"), 
       
    80 								raptor_tests.ReplaceEnvs("$(EPOCROOT)/epoc32/include"), "."]
       
    81 		expected_includepaths.sort()
       
    82 		self.failUnlessEqual(includepaths, expected_includepaths)
       
    83 		
       
    84 		preincludefile = str(config.metadata.preincludeheader.file)
       
    85 		self.failUnlessEqual(preincludefile, raptor_tests.ReplaceEnvs("$(EPOCROOT)/epoc32/include/variant/Symbian_OS.hrh"))
       
    86 		
       
    87 		# build
       
    88 		
       
    89 		sourcemacros = map(lambda x: str(x.name+"="+x.value) if x.value else str(x.name), config.build.sourcemacros)
       
    90 		results = ['__BBB__', '__AAA__', '__DDD__=first_value', '__CCC__', '__DDD__=second_value']
       
    91 		self.failUnlessEqual(sourcemacros, results)
       
    92 		
       
    93 		compilerpreincludefile = str(config.build.compilerpreincludeheader.file)
       
    94 		self.failUnlessEqual(compilerpreincludefile, raptor_tests.ReplaceEnvs("$(EPOCROOT)/epoc32/include/preinclude.h"))
       
    95 
       
    96 		expectedtypes = ["one", "two"]
       
    97 		expectedtypes.sort()
       
    98 		types = map(lambda t:t.name, config.build.targettypes)
       
    99 		types.sort()
       
   100 		self.failUnlessEqual(types, expectedtypes)
       
   101 
       
   102 		# general
       
   103 
    65 		config = api.getconfig("buildme.foo")
   104 		config = api.getconfig("buildme.foo")
    66 		self.failUnlessEqual(config.fullname, "buildme.foo")
   105 		self.failUnlessEqual(config.meaning, "buildme.foo")
    67 		self.failUnlessEqual(config.outputpath, path)
   106 		self.failUnlessEqual(config.outputpath, path)
    68 		
   107 		
    69 		config = api.getconfig("s1")
   108 		config = api.getconfig("s1")
    70 		self.failUnlessEqual(config.fullname, "buildme.foo")
   109 		self.failUnlessEqual(config.meaning, "buildme.foo")
    71 		self.failUnlessEqual(config.outputpath, path)
   110 		self.failUnlessEqual(config.outputpath, path)
    72 		
   111 		
    73 		config = api.getconfig("s2.product_A")
   112 		config = api.getconfig("s2.product_A")
    74 		self.failUnlessEqual(config.fullname, "buildme.foo.bar.product_A")
   113 		self.failUnlessEqual(config.meaning, "buildme.foo.bar.product_A")
    75 		self.failUnlessEqual(config.outputpath, path)
   114 		self.failUnlessEqual(config.outputpath, path)
    76 		
   115 		
    77 	def testProducts(self):
   116 	def testProducts(self):
    78 		r = raptor.Raptor()
   117 		r = raptor.Raptor()
    79 		r.cache.Load( generic_path.Join(r.home, "test", "config", "api.xml") )
   118 		r.cache.Load( generic_path.Join(r.home, "test", "configapi", "api.xml") )
    80 
   119 
    81 		api = raptor_api.Context(r)
   120 		api = raptor_api.Context(r)
    82 		
   121 		
    83 		products = api.getproducts() # type == "product"
   122 		products = api.getproducts() # type == "product"
    84 		self.failUnlessEqual(len(products), 2)
   123 		self.failUnlessEqual(len(products), 2)
    85 		self.failUnlessEqual(set(["product_A","product_C"]),
   124 		self.failUnlessEqual(set(["product_A","product_C"]),
    86 							 set(p.name for p in products))
   125 							 set(p.name for p in products))
       
   126 		productlist = [p.name for p in products] # verify that the list is sorted
       
   127 		self.failUnlessEqual(["product_A","product_C"], productlist)
    87 		
   128 		
    88 # run all the tests
   129 # run all the tests
    89 
   130 
    90 from raptor_tests import SmokeTest
   131 from raptor_tests import SmokeTest
    91 
   132