1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
from try_parser import TryParser import unittest from valid_builders import DESKTOP_BUILDERS, MOBILE_BUILDERS, TEST_BUILDERS, TALOS_BUILDERS
# Test cases:
# DEFAULT SET # nothing in comments should give all available platforms opt desktop builders, all mobile, no test or talos # only try: in comments same as above MESSAGE_DEFAULT1 = '' MESSAGE_DEFAULT2 = "junk" RESULT_DEFAULT = ['Linux tryserver build', 'Linux x86-64 tryserver build', 'OS X 10.5.2 tryserver build', 'OS X 10.6.2 tryserver build', 'WINNT 5.2 tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build']
# SPECIFYING opt/debug MESSAGE_BUILD_D = ['--build', 'd', '--p', 'linux'] MESSAGE_BUILD_O = ['--build', 'o', '--p', 'linux'] MESSAGE_BUILD_B = ['--build', 'b', '--p', 'linux'] # should result in those desktop, all mobile, no tests/talos RESULT_D = ['Linux tryserver leak test build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build'] RESULT_O = ['Linux tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build'] RESULT_B = ['Linux tryserver build', 'Linux tryserver leak test build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build']
# SPECIFIC PLATFORMS MESSAGE_MAC_ONLY = ['--build', 'o', '--p', 'macosx,macosx64', '--m', 'none'] RESULT_MAC_ONLY = ['OS X 10.5.2 tryserver build', 'OS X 10.6.2 tryserver build']
# MOBILE ONLY #--p none -- this also tests what happens if you don't specify --build MESSAGE_MOBILE_ONLY = ['--p', 'none'] RESULT_MOBILE_ONLY = ['Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build']
# TEST SUITES # test for 'all' and test for selective just opt MESSAGE_ALL_TESTS = ['--u', 'all'] MESSAGE_SELECT_TESTS = ['--p', 'linux', '--u', 'reftest,crashtest,mochitest-other'] RESULT_ALL_TESTS = ['OS X 10.5.2 tryserver build', 'OS X 10.6.2 tryserver build', 'WINNT 5.2 tryserver build', 'Linux x86-64 tryserver build', 'Linux tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitests-1/5', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitests-2/5', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitests-3/5', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitests-4/5', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitests-5/5', 'Rev3 WINNT 6.1 x64 tryserver opt test mochitest-other', 'Rev3 WINNT 6.1 x64 tryserver opt test reftest', 'Rev3 WINNT 6.1 x64 tryserver opt test crashtest', 'Rev3 WINNT 6.1 x64 tryserver opt test xpcshell', 'Rev3 WINNT 6.1 x64 tryserver opt test jsreftest', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitests-1/5', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitests-2/5', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitests-3/5', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitests-4/5', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitests-5/5', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test mochitest-other', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test reftest', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test crashtest', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test xpcshell', 'Rev3 MacOSX Leopard 10.5.8 tryserver opt test jsreftest', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitests-1/5', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitests-2/5', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitests-3/5', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitests-4/5', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitests-5/5', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test mochitest-other', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test reftest', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test crashtest', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test xpcshell', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver opt test jsreftest', 'Rev3 WINNT 6.1 tryserver opt test mochitests-1/5', 'Rev3 WINNT 6.1 tryserver opt test mochitests-2/5', 'Rev3 WINNT 6.1 tryserver opt test mochitests-3/5', 'Rev3 WINNT 6.1 tryserver opt test mochitests-4/5', 'Rev3 WINNT 6.1 tryserver opt test mochitests-5/5', 'Rev3 WINNT 6.1 tryserver opt test mochitest-other', 'Rev3 WINNT 6.1 tryserver opt test reftest', 'Rev3 WINNT 6.1 tryserver opt test reftest-d2d', 'Rev3 WINNT 6.1 tryserver opt test crashtest', 'Rev3 WINNT 6.1 tryserver opt test xpcshell', 'Rev3 WINNT 6.1 tryserver opt test jsreftest', 'Rev3 Fedora 12x64 tryserver opt test mochitests-1/5', 'Rev3 Fedora 12x64 tryserver opt test mochitests-2/5', 'Rev3 Fedora 12x64 tryserver opt test mochitests-3/5', 'Rev3 Fedora 12x64 tryserver opt test mochitests-4/5', 'Rev3 Fedora 12x64 tryserver opt test mochitests-5/5', 'Rev3 Fedora 12x64 tryserver opt test mochitest-other', 'Rev3 Fedora 12x64 tryserver opt test reftest', 'Rev3 Fedora 12x64 tryserver opt test crashtest', 'Rev3 Fedora 12x64 tryserver opt test xpcshell', 'Rev3 Fedora 12x64 tryserver opt test jsreftest', 'Rev3 Fedora 12 tryserver opt test mochitests-1/5', 'Rev3 Fedora 12 tryserver opt test mochitests-2/5', 'Rev3 Fedora 12 tryserver opt test mochitests-3/5', 'Rev3 Fedora 12 tryserver opt test mochitests-4/5', 'Rev3 Fedora 12 tryserver opt test mochitests-5/5', 'Rev3 Fedora 12 tryserver opt test mochitest-other', 'Rev3 Fedora 12 tryserver opt test reftest', 'Rev3 Fedora 12 tryserver opt test crashtest', 'Rev3 Fedora 12 tryserver opt test xpcshell', 'Rev3 Fedora 12 tryserver opt test jsreftest'] RESULT_SELECT_TESTS = ['Linux tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build', 'Rev3 Fedora 12 tryserver opt test reftest', 'Rev3 Fedora 12 tryserver opt test crashtest', 'Rev3 Fedora 12 tryserver opt test mochitest-other']
# TALOS SUITES # test for 'all' and test for selection MESSAGE_ALL_TALOS = ['--t', 'all'] MESSAGE_SELECT_TALOS = ['--p', 'linux', '--t', 'scroll,dromaeo,tp4'] RESULT_ALL_TALOS = ['OS X 10.5.2 tryserver build', 'OS X 10.6.2 tryserver build', 'WINNT 5.2 tryserver build', 'Linux x86-64 tryserver build', 'Linux tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build','Rev3 WINNT 6.1 x64 tryserver talos nochrome', 'Rev3 WINNT 6.1 x64 tryserver talos dromaeo', 'Rev3 WINNT 6.1 x64 tryserver talos a11y', 'Rev3 WINNT 6.1 x64 tryserver talos svg', 'Rev3 WINNT 6.1 x64 tryserver talos chrome', 'Rev3 WINNT 6.1 x64 tryserver talos tp4', 'Rev3 WINNT 6.1 x64 tryserver talos dirty', 'Rev3 WINNT 6.1 x64 tryserver talos scroll', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos nochrome', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos cold', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos dromaeo', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos svg', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos chrome', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos tp4', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos dirty', 'Rev3 MacOSX Leopard 10.5.8 tryserver talos scroll', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos nochrome', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos cold', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos dromaeo', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos svg', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos chrome', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos tp4', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos dirty', 'Rev3 MacOSX Snow Leopard 10.6.2 tryserver talos scroll', 'Rev3 WINNT 5.1 tryserver talos nochrome', 'Rev3 WINNT 5.1 tryserver talos dromaeo', 'Rev3 WINNT 5.1 tryserver talos a11y', 'Rev3 WINNT 5.1 tryserver talos svg', 'Rev3 WINNT 5.1 tryserver talos chrome', 'Rev3 WINNT 5.1 tryserver talos tp4', 'Rev3 WINNT 5.1 tryserver talos dirty', 'Rev3 WINNT 5.1 tryserver talos scroll', 'Rev3 WINNT 6.1 tryserver talos nochrome', 'Rev3 WINNT 6.1 tryserver talos dromaeo', 'Rev3 WINNT 6.1 tryserver talos a11y', 'Rev3 WINNT 6.1 tryserver talos svg', 'Rev3 WINNT 6.1 tryserver talos chrome', 'Rev3 WINNT 6.1 tryserver talos tp4', 'Rev3 WINNT 6.1 tryserver talos dirty', 'Rev3 WINNT 6.1 tryserver talos scroll', 'Rev3 Fedora 12x64 tryserver talos nochrome', 'Rev3 Fedora 12x64 tryserver talos cold', 'Rev3 Fedora 12x64 tryserver talos dromaeo', 'Rev3 Fedora 12x64 tryserver talos a11y', 'Rev3 Fedora 12x64 tryserver talos svg', 'Rev3 Fedora 12x64 tryserver talos chrome', 'Rev3 Fedora 12x64 tryserver talos tp4', 'Rev3 Fedora 12x64 tryserver talos dirty', 'Rev3 Fedora 12x64 tryserver talos scroll', 'Rev3 Fedora 12 tryserver talos nochrome', 'Rev3 Fedora 12 tryserver talos cold', 'Rev3 Fedora 12 tryserver talos dromaeo', 'Rev3 Fedora 12 tryserver talos a11y', 'Rev3 Fedora 12 tryserver talos svg', 'Rev3 Fedora 12 tryserver talos chrome', 'Rev3 Fedora 12 tryserver talos tp4', 'Rev3 Fedora 12 tryserver talos dirty', 'Rev3 Fedora 12 tryserver talos scroll'] RESULT_SELECT_TALOS = ['Linux tryserver build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build', 'Rev3 Fedora 12 tryserver talos scroll', 'Rev3 Fedora 12 tryserver talos dromaeo', 'Rev3 Fedora 12 tryserver talos tp4']
# TESTS AND TALOS BOTH BUILD TYPES -- note we do not have debug win32 tests yet MESSAGE_TEST_AND_TALOS = ['--build', 'b', '--p', 'win32', '--u', 'reftest', '--t', 'nochrome,dirty'] RESULT_TEST_AND_TALOS = ['WINNT 5.2 tryserver build', 'WINNT 5.2 tryserver leak test build', 'Android R7 tryserver build', 'Maemo 4 tryserver build', 'Maemo 5 GTK tryserver build', 'Maemo 5 QT tryserver build', 'Rev3 WINNT 6.1 tryserver opt test reftest', 'Rev3 WINNT 5.1 tryserver talos nochrome', 'Rev3 WINNT 6.1 tryserver talos nochrome', 'Rev3 WINNT 5.1 tryserver talos dirty','Rev3 WINNT 6.1 tryserver talos dirty']
class TestTryParser(unittest.TestCase):
def setUp(self): self.builderNames = DESKTOP_BUILDERS + MOBILE_BUILDERS + TEST_BUILDERS + TALOS_BUILDERS
def test_DefaultSet(self): print "Testing the default set with blank input" self.customBuilders = TryParser(MESSAGE_DEFAULT1, self.builderNames) self.assertEqual(self.customBuilders, RESULT_DEFAULT)
print "Testing the default set with junk input" self.customBuilders = TryParser(MESSAGE_DEFAULT2, self.builderNames) self.assertEqual(self.customBuilders, RESULT_DEFAULT)
def test_BuildType(self): print "Testing build type selection: Debug only" self.customBuilders = TryParser(MESSAGE_BUILD_D, self.builderNames) self.assertEqual(self.customBuilders, RESULT_D) print "Testing build type selection: Opt only" self.customBuilders = TryParser(MESSAGE_BUILD_B, self.builderNames) self.assertEqual(self.customBuilders, RESULT_B) print "Testing build type selection: Both" self.customBuilders = TryParser(MESSAGE_BUILD_O, self.builderNames) self.assertEqual(self.customBuilders, RESULT_O)
def test_SpecificPlatform(self): print "Testing a specific platform: Mac Only" self.customBuilders = TryParser(MESSAGE_MAC_ONLY, self.builderNames) self.assertEqual(self.customBuilders, RESULT_MAC_ONLY)
def test_MobileOnly(self): print "Testing Mobile Only" self.customBuilders = TryParser(MESSAGE_MOBILE_ONLY, self.builderNames) self.assertEqual(self.customBuilders, RESULT_MOBILE_ONLY)
def test_AllTests(self): print "Testing all tests" self.customBuilders = TryParser(MESSAGE_ALL_TESTS, self.builderNames) for c in self.customBuilders: if c in RESULT_ALL_TESTS: print "Test builder in customBuilders" else: print "Missed a builder"
def test_SelectTests(self): print "Testing select tests" self.customBuilders = TryParser(MESSAGE_SELECT_TESTS, self.builderNames) self.assertEqual(self.customBuilders, RESULT_SELECT_TESTS)
def test_AllTalos(self): print "Testing all talos" self.customBuilders = TryParser(MESSAGE_ALL_TALOS, self.builderNames) for c in self.customBuilders: if c in RESULT_ALL_TALOS: print "Talos builder in customBuilders" else: print "Missed a builder"
def test_SelectTalos(self): print "Testing select talos" self.customBuilders = TryParser(MESSAGE_SELECT_TALOS, self.builderNames) self.assertEqual(self.customBuilders, RESULT_SELECT_TALOS)
def test_TestsTalosBothBuilds(self): print "Testing test, talos both build types" self.customBuilders = TryParser(MESSAGE_TEST_AND_TALOS, self.builderNames) self.assertEqual(self.customBuilders, RESULT_TEST_AND_TALOS)
if __name__ == '__main__': unittest.main() |