134 'ISFEATUREVARIANT' : False, |
135 'ISFEATUREVARIANT' : False, |
135 'PLATMACROS' : self.__platmacros_winscw, |
136 'PLATMACROS' : self.__platmacros_winscw, |
136 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build", |
137 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build", |
137 'METADEPS' : [] |
138 'METADEPS' : [] |
138 } |
139 } |
|
140 |
|
141 self.X86GCC = { 'PLATFORM': 'X86GCC', |
|
142 'EPOCROOT': self.__epocroot, |
|
143 'VARIANT_HRH': self.variant_hrh, |
|
144 'SYSTEMINCLUDE' : '', |
|
145 'id': 2, |
|
146 'key': '2222222222222222', |
|
147 'key_md5': '2222222222222222', |
|
148 'ISFEATUREVARIANT' : False, |
|
149 'PLATMACROS' : self.__platmacros_x86gcc, |
|
150 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build", |
|
151 'METADEPS' : [] |
|
152 } |
139 |
153 |
140 self.testPlats = [self.ARMV5, self.ARMV5SMP, self.ARMV6, self.ARMV7, self.ARMV7SMP, self.WINSCW] |
154 self.testPlats = [self.ARMV5, self.ARMV5SMP, self.ARMV6, self.ARMV7, self.ARMV7SMP, self.WINSCW, self.X86GCC] |
141 |
155 |
142 # Get the version of CPP that we are using and hope it's correct |
156 # Get the version of CPP that we are using and hope it's correct |
143 # since there is no tool check. |
157 # since there is no tool check. |
144 if os.environ.has_key('SBS_GNUCPP'): |
158 if os.environ.has_key('SBS_GNUCPP'): |
145 self.__gnucpp = os.environ['SBS_GNUCPP'] |
159 self.__gnucpp = os.environ['SBS_GNUCPP'] |
220 |
234 |
221 def testBldInfPlatformDeduction(self): |
235 def testBldInfPlatformDeduction(self): |
222 bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs') |
236 bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs') |
223 |
237 |
224 self.__testBuildPlatforms(bldInfTestRoot, 'no_prj_platforms.inf', |
238 self.__testBuildPlatforms(bldInfTestRoot, 'no_prj_platforms.inf', |
225 [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML']) |
239 [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86GCC']) |
226 self.__testBuildPlatforms(bldInfTestRoot, 'no_plats.inf', |
240 self.__testBuildPlatforms(bldInfTestRoot, 'no_plats.inf', |
227 [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML']) |
241 [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86GCC']) |
228 self.__testBuildPlatforms(bldInfTestRoot, 'default_plats.inf', |
242 self.__testBuildPlatforms(bldInfTestRoot, 'default_plats.inf', |
229 ['DEFAULT'], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML']) |
243 ['DEFAULT'], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86GCC']) |
230 self.__testBuildPlatforms(bldInfTestRoot, 'default_plats_minus_plat.inf', |
244 self.__testBuildPlatforms(bldInfTestRoot, 'default_plats_minus_plat.inf', |
231 ['DEFAULT', '-WINSCW'], ['ARMV7', 'ARMV5', 'GCCXML']) |
245 ['DEFAULT', '-WINSCW'], ['ARMV7', 'ARMV5', 'GCCXML', 'X86GCC']) |
232 self.__testBuildPlatforms(bldInfTestRoot, 'single_plat.inf', |
246 self.__testBuildPlatforms(bldInfTestRoot, 'single_plat.inf', |
233 ['ARMV5'], ['ARMV5', 'GCCXML']) |
247 ['ARMV5'], ['ARMV5', 'GCCXML', 'X86GCC']) |
234 self.__testBuildPlatforms(bldInfTestRoot, 'multiple_plats.inf', |
248 self.__testBuildPlatforms(bldInfTestRoot, 'multiple_plats.inf', |
235 ['ARMV5', 'WINSCW', 'TOOLS'], ['ARMV5', 'WINSCW', 'TOOLS', 'GCCXML']) |
249 ['ARMV5', 'WINSCW', 'TOOLS'], ['ARMV5', 'WINSCW', 'TOOLS', 'GCCXML', 'X86GCC']) |
236 return |
250 return |
237 |
251 |
238 def __testBldInfTestCode(self, aTestRoot, aBldInf, aActual, aExpected): |
252 def __testBldInfTestCode(self, aTestRoot, aBldInf, aActual, aExpected): |
239 loop_number = 0 |
253 loop_number = 0 |
240 for actual in aActual: |
254 for actual in aActual: |
684 |
698 |
685 def testDefFileResolution(self): |
699 def testDefFileResolution(self): |
686 |
700 |
687 class DefFileTest(object): |
701 class DefFileTest(object): |
688 """ Test resolveDefFile for a particular set of mmp options """ |
702 """ Test resolveDefFile for a particular set of mmp options """ |
689 def __init__(self, resolveddeffile, mmpfilename, deffilekeyword, target, nostrictdef, platform): |
703 def __init__(self, primarydeffile, secondarydeffile, mmpfilename, deffilekeyword, target, nostrictdef, platform): |
690 self.resolveddeffile = resolveddeffile |
704 self.primarydeffile = primarydeffile |
|
705 self.secondarydeffile = secondarydeffile |
691 self.mmpfilename=mmpfilename |
706 self.mmpfilename=mmpfilename |
692 self.deffilekeyword=deffilekeyword |
707 self.deffilekeyword=deffilekeyword |
693 self.target=target |
708 self.target=target |
694 self.nostrictdef = nostrictdef |
709 self.nostrictdef = nostrictdef |
695 self.platform = platform |
710 self.platform = platform |
696 |
711 |
697 def test(self, raptor): |
712 def test(self, raptor): |
698 m = raptor_meta.MMPRaptorBackend(raptor, self.mmpfilename, "") |
713 m = raptor_meta.MMPRaptorBackend(raptor, self.mmpfilename, "") |
699 m.deffile = self.deffilekeyword |
714 m.deffile = self.deffilekeyword |
700 m.nostrictdef = self.nostrictdef |
715 m.nostrictdef = self.nostrictdef |
701 f = m.resolveDefFile(self.target, self.platform) |
716 (resolvedDefFile, isSecondaryDefFile) = m.resolveDefFile(self.target, self.platform) |
702 |
717 |
703 return path_compare_notdrivelettercase(self.resolveddeffile,f) |
718 expectedDefFile = self.primarydeffile |
|
719 if isSecondaryDefFile: |
|
720 expectedDefFile = self.secondarydeffile |
|
721 |
|
722 return path_compare_notdrivelettercase(expectedDefFile, resolvedDefFile) |
704 |
723 |
705 defFileTests = [] |
724 defFileTests = [] |
706 |
725 |
707 for testPlat in self.testPlats: |
726 for testPlat in self.testPlats: |
708 epocroot = str(testPlat['EPOCROOT']) |
727 epocroot = str(testPlat['EPOCROOT']) |
709 releaseDir = testPlat['PLATFORM'].lower() |
728 releaseDir = testPlat['PLATFORM'].lower() |
710 defFileDir = "eabi" |
729 |
|
730 # Some configurations support both a primary location and a secondary location for .def files |
|
731 # In these cases, if the primary location .def file doesn't exist the secondary is used. |
|
732 primaryDefFileDir = "eabi" |
|
733 secondaryDefFileLoc = "" |
711 if testPlat['PLATFORM'] == "WINSCW": |
734 if testPlat['PLATFORM'] == "WINSCW": |
712 defFileDir = "bwins" |
735 primaryDefFileDir = "bwins" |
713 |
736 elif testPlat['PLATFORM'] == "X86GCC": |
|
737 primaryDefFileDir = "bx86gcc" |
|
738 secondaryDefFileLoc = self.__OSRoot+'/test/eabi' |
|
739 |
714 defFileTests.extend([ |
740 defFileTests.extend([ |
715 DefFileTest( |
741 DefFileTest( |
716 self.__OSRoot+'/test/'+defFileDir+'/targetu.def', |
742 self.__OSRoot+'/test/'+primaryDefFileDir+'/targetu.def', |
|
743 secondaryDefFileLoc+'/targetu.def', |
717 '/test/component/mmpfile.mmp', |
744 '/test/component/mmpfile.mmp', |
718 '', |
745 '', |
719 'target.exe', |
746 'target.exe', |
720 False, |
747 False, |
721 testPlat), |
748 testPlat), |
722 DefFileTest( |
749 DefFileTest( |
723 self.__OSRoot+'/test/'+defFileDir+'/target.def', |
750 self.__OSRoot+'/test/'+primaryDefFileDir+'/target.def', |
|
751 secondaryDefFileLoc+'/target.def', |
724 '/test/component/mmpfile.mmp', |
752 '/test/component/mmpfile.mmp', |
725 '', |
753 '', |
726 'target.exe', |
754 'target.exe', |
727 True, |
755 True, |
728 testPlat), |
756 testPlat), |
729 DefFileTest( |
757 DefFileTest( |
730 self.__OSRoot+'/test/'+defFileDir+'/targetu.DEF', |
758 self.__OSRoot+'/test/'+primaryDefFileDir+'/targetu.DEF', |
|
759 secondaryDefFileLoc+'/targetu.DEF', |
731 '/test/component/mmpfile.mmp', |
760 '/test/component/mmpfile.mmp', |
732 'target.DEF', |
761 'target.DEF', |
733 'target.exe', |
762 'target.exe', |
734 False, |
763 False, |
735 testPlat), |
764 testPlat), |
736 DefFileTest( |
765 DefFileTest( |
737 self.__OSRoot+'/test/'+defFileDir+'/target2.DEF', |
766 self.__OSRoot+'/test/'+primaryDefFileDir+'/target2.DEF', |
|
767 secondaryDefFileLoc+'/target2.DEF', |
738 '/test/component/mmpfile.mmp', |
768 '/test/component/mmpfile.mmp', |
739 'target2.DEF', |
769 'target2.DEF', |
740 'target.exe', |
770 'target.exe', |
741 True, |
771 True, |
742 testPlat), |
772 testPlat), |
743 DefFileTest( |
773 DefFileTest( |
744 self.__OSRoot+'/test/component/target2u.DEF', |
774 self.__OSRoot+'/test/component/target2u.DEF', |
|
775 secondaryDefFileLoc+'/target2u.DEF', |
745 '/test/component/mmpfile.mmp', |
776 '/test/component/mmpfile.mmp', |
746 './target2.DEF', |
777 './target2.DEF', |
747 'target.exe', |
778 'target.exe', |
748 False, |
779 False, |
749 testPlat), |
780 testPlat), |
750 DefFileTest( |
781 DefFileTest( |
751 self.__OSRoot+'/test/component/target2.DEF', |
782 self.__OSRoot+'/test/component/target2.DEF', |
|
783 secondaryDefFileLoc+'/target2.DEF', |
752 '/test/component/mmpfile.mmp', |
784 '/test/component/mmpfile.mmp', |
753 './target2.DEF', |
785 './target2.DEF', |
754 'target.exe', |
786 'target.exe', |
755 True, |
787 True, |
756 testPlat), |
788 testPlat), |
757 DefFileTest( |
789 DefFileTest( |
758 self.__OSRoot+'/test/component/'+defFileDir+'/target3u.DEF', |
790 self.__OSRoot+'/test/component/'+primaryDefFileDir+'/target3u.DEF', |
|
791 secondaryDefFileLoc+'/target3u.DEF', |
759 '/test/component/mmpfile.mmp', |
792 '/test/component/mmpfile.mmp', |
760 './~/target3.DEF', |
793 './~/target3.DEF', |
761 'target.exe', |
794 'target.exe', |
762 False, |
795 False, |
763 testPlat), |
796 testPlat), |
764 DefFileTest( |
797 DefFileTest( |
765 epocroot+'/epoc32/include/def/'+defFileDir+'/targetu.def', |
798 epocroot+'/epoc32/include/def/'+primaryDefFileDir+'/targetu.def', |
|
799 secondaryDefFileLoc+'/targetu.def', |
766 '/test/component/mmpfile.mmp', |
800 '/test/component/mmpfile.mmp', |
767 '/epoc32/include/def/~/target.def', |
801 '/epoc32/include/def/~/target.def', |
768 'target.exe', |
802 'target.exe', |
769 False, |
803 False, |
770 testPlat), |
804 testPlat), |
771 DefFileTest( |
805 DefFileTest( |
772 epocroot+'/epoc32/release/'+releaseDir+'/target.def', |
806 epocroot+'/epoc32/release/'+releaseDir+'/target.def', |
|
807 secondaryDefFileLoc+'/target.def', |
773 '/test/component/mmpfile.mmp', |
808 '/test/component/mmpfile.mmp', |
774 '/epoc32/release/'+releaseDir+'/target.def', |
809 '/epoc32/release/'+releaseDir+'/target.def', |
775 'target.exe', |
810 'target.exe', |
776 True, |
811 True, |
777 testPlat), |
812 testPlat), |
778 DefFileTest( |
813 DefFileTest( |
779 self.__OSRoot+'/deffiles/targetu.def', |
814 self.__OSRoot+'/deffiles/targetu.def', |
|
815 secondaryDefFileLoc+'/targetu.def', |
780 '/test/component/mmpfile.mmp', |
816 '/test/component/mmpfile.mmp', |
781 '/deffiles/target.def', |
817 '/deffiles/target.def', |
782 'target.exe', |
818 'target.exe', |
783 False, |
819 False, |
784 testPlat) |
820 testPlat) |
785 ]) |
821 ]) |
786 |
822 |
787 for t in defFileTests: |
823 for t in defFileTests: |
788 result = t.test(self.raptor) |
824 result = t.test(self.raptor) |
789 self.assertEquals(result, True) |
825 self.assertEquals(result, True) |
790 |
826 |
791 def dummyMetaReader(self): |
827 def dummyMetaReader(self): |
792 "make raptor_meta.MetaReader.__init__ into a none operation" |
828 "make raptor_meta.MetaReader.__init__ into a none operation" |
793 self.savedInit = raptor_meta.MetaReader.__init__ |
829 self.savedInit = raptor_meta.MetaReader.__init__ |