[pypy-svn] r54794 - pypy/build/bot

exarkun at codespeak.net exarkun at codespeak.net
Fri May 16 18:11:06 CEST 2008


Author: exarkun
Date: Fri May 16 18:11:03 2008
New Revision: 54794

Modified:
   pypy/build/bot/pypybuilders.py
Log:
platform specific build factories

Modified: pypy/build/bot/pypybuilders.py
==============================================================================
--- pypy/build/bot/pypybuilders.py	(original)
+++ pypy/build/bot/pypybuilders.py	Fri May 16 18:11:03 2008
@@ -6,7 +6,7 @@
 from buildbot.steps.transfer import FileUpload, FileDownload
 from buildbot.steps.python_twisted import Trial
 
-from bot.netstring import netstringparser
+from netstring import netstringparser
 from twisted.spread.banana import decode, encode
 from twisted.spread.jelly import unjelly, jelly
 
@@ -48,11 +48,6 @@
     TEST_PACKAGE = object()
     TEST_ARGUMENTS = object()
 
-    command = [
-        "find", TEST_PACKAGE, "-name", "test", "-type", "d", "-exec",
-        PYTHON_EXECUTABLE,
-        "py/bin/py.test", "--session=MySession", TEST_ARGUMENTS, "{}", ";"]
-
     haltOnFailure = False
 
     def __init__(self, testPackage, testArguments, workdir="build/pypy-src",
@@ -70,40 +65,24 @@
         stdout = ''.join(log.getChunks(channels=[LOG_CHANNEL_STDOUT],
                                        onlyText=True))
         create_summary(stdout, self.addCompleteLog)
-        return
 
 
 
-        
-        resultLists = {
-            'passed': [],
-            'failed': [],
-            'skipped': [],
-            }
-        weird = []
-        results = netstringparser(stdout)
-        while True:
-            try:
-                testName = results.next()
-                outcome = results.next()
-                if outcome == 'failed':
-                    message = results.next()
-                else:
-                    message = None
-            except StopIteration:
-                break
-            else:
-                if outcome in resultLists:
-                    resultLists[outcome].append(testName)
-                else:
-                    weird.append(testName)
-        resultLists['weird'] = weird
-
-        for testGroup, testNames in resultLists.iteritems():
-            if testNames:
-                self.addCompleteLog(
-                    '%d %s' % (len(testNames), testGroup),
-                    '\n'.join(testNames))
+class POSIXPyTest(PyTest):
+    command = [
+        "find", PyTest.TEST_PACKAGE, "-name", "test", "-type", "d", "-exec",
+        PyTest.PYTHON_EXECUTABLE,
+        "py/bin/py.test", "--session=MySession", PyTest.TEST_ARGUMENTS, "{}",
+        ";"]
+
+
+
+class WindowsPyTest(PyTest):
+    command = [
+        "per-directory-py-test.py",
+        PyTest.PYTHON_EXECUTABLE, PyTest.TEST_PACKAGE,
+        PyTest.TEST_ARGUMENTS]
+
 
 
 class PySwitch(ShellCommand):
@@ -120,6 +99,8 @@
 
 
 class PyPyBuildFactory(BuildFactory):
+    PyTestStep = None
+
     def __init__(self, pytestArguments, translationArguments,
                  targetArguments, *a, **kw):
         BuildFactory.__init__(self, *a, **kw)
@@ -133,7 +114,7 @@
         self.addStep(PySwitch)
         self.addStep(
             FileDownload,
-            mastersrc="netstring-conftest.py",
+            mastersrc="netstring_conftest.py",
             slavedest="conftest.py",
             workdir="build/pypy-src")
 
@@ -144,19 +125,25 @@
             workdir="build/pypy-src")
 
         self.addStep(
+            FileDownload,
+            mastersrc="per-directory-py-test.py",
+            slavedest="per-directory-py-test.py",
+            workdir="build/pypy-src")
+
+        self.addStep(
             Translate,
             translationArgs=translationArguments,
             targetArgs=targetArguments)
 
         if pytestArguments is not None:
             self.addStep(
-                PyTest,
+                self.PyTestStep,
                 testPackage="pypy",
                 testArguments=pytestArguments,
                 timeout=60 * 60)
 
             self.addStep(
-                PyTest,
+                self.PyTestStep,
                 python="pypy/translator/goal/pypy-c",
                 testPackage="pypy",
                 # Exclude --boxed if it was specified, because -A shouldn't
@@ -164,9 +151,9 @@
                 testArguments=["-A"] + list(arg for arg in pytestArguments if arg != "--boxed"),
                 timeout=60 * 60)
 
-        # self.addStep(FileUpload,
-        #              slavesrc="pypy-src/pypy/translator/goal/pypy-c",
-        #              masterdest="pypy-c")
+        self.addStep(FileUpload,
+                     slavesrc="pypy-src/pypy/translator/goal/pypy-c",
+                     masterdest="pypy-c")
 
         self.addStep(
             SVN,
@@ -183,3 +170,13 @@
             trial="../../../../Twisted-src/bin/trial",
             tests=["twisted"],
             env={"PATH": "."})
+
+
+
+class POSIXPyPyBuildFactory(PyPyBuildFactory):
+    PyTestStep = POSIXPyTest
+
+
+
+class WindowsPyPyBuildFactory(PyPyBuildFactory):
+    PyTestStep = WindowsPyTest



More information about the Pypy-commit mailing list