Author: Richard Plangger <[email protected]>
Branch: new-jit-log
Changeset: r85839:1ebc580e133e
Date: 2016-07-24 15:47 +0200
http://bitbucket.org/pypy/pypy/changeset/1ebc580e133e/

Log:    test_jitlog can be run on any cpu, restructed to make this possible

diff --git a/rpython/jit/backend/test/jitlog_test.py 
b/rpython/jit/backend/test/jitlog_test.py
new file mode 100644
--- /dev/null
+++ b/rpython/jit/backend/test/jitlog_test.py
@@ -0,0 +1,80 @@
+import re
+import os
+from rpython.rlib import debug
+from rpython.jit.tool.oparser import pure_parse
+from rpython.jit.metainterp import logger
+from rpython.jit.metainterp.typesystem import llhelper
+from rpython.rlib.rjitlog import rjitlog as jl
+from StringIO import StringIO
+from rpython.jit.metainterp.optimizeopt.util import equaloplists
+from rpython.jit.metainterp.history import AbstractDescr, JitCellToken, 
BasicFailDescr, BasicFinalDescr
+from rpython.jit.backend.model import AbstractCPU
+from rpython.rlib.jit import JitDriver
+from rpython.rlib.objectmodel import always_inline
+from rpython.jit.metainterp.test.support import LLJitMixin
+from rpython.rlib.rjitlog import rjitlog
+import tempfile
+
+class LoggerTest(LLJitMixin):
+
+    def test_explicit_enable(self, tmpdir):
+        file = tmpdir.join('jitlog')
+        fileno = os.open(file.strpath, os.O_WRONLY | os.O_CREAT)
+        enable_jitlog = lambda: rjitlog.enable_jitlog(fileno)
+        f = self.run_sample_loop(enable_jitlog)
+        self.meta_interp(f, [10, 0])
+
+        assert os.path.exists(file.strpath)
+        with file.open('rb') as f:
+            # check the file header
+            assert f.read(3) == jl.MARK_JITLOG_HEADER + 
jl.JITLOG_VERSION_16BIT_LE
+            assert len(f.read()) > 0
+
+    def test_env(self, monkeypatch, tmpdir):
+        file = tmpdir.join('jitlog')
+        monkeypatch.setenv("JITLOG", file.strpath)
+        f = self.run_sample_loop(None)
+        self.meta_interp(f, [10,0])
+        assert os.path.exists(file.strpath)
+        with file.open('rb') as fd:
+            # check the file header
+            assert fd.read(3) == jl.MARK_JITLOG_HEADER + 
jl.JITLOG_VERSION_16BIT_LE
+            assert len(fd.read()) > 0
+
+    def test_version(self, monkeypatch, tmpdir):
+        file = tmpdir.join('jitlog')
+        monkeypatch.setattr(jl, 'JITLOG_VERSION_16BIT_LE', '\xff\xfe')
+        monkeypatch.setenv("JITLOG", file.strpath)
+        f = self.run_sample_loop(None)
+        self.meta_interp(f, [10,0])
+        assert os.path.exists(file.strpath)
+        with file.open('rb') as fd:
+            # check the file header
+            assert fd.read(3) == jl.MARK_JITLOG_HEADER + '\xff\xfe'
+            assert len(fd.read()) > 0
+
+    def test_version(self, monkeypatch, tmpdir):
+        file = tmpdir.join('jitlog')
+        monkeypatch.setattr(jl, 'JITLOG_VERSION_16BIT_LE', '\xff\xfe')
+        monkeypatch.setenv("JITLOG", file.strpath)
+        f = self.run_sample_loop(None)
+        self.meta_interp(f, [10,0])
+        assert os.path.exists(file.strpath)
+        with file.open('rb') as fd:
+            # check the file header
+            assert fd.read(3) == jl.MARK_JITLOG_HEADER + '\xff\xfe'
+            assert len(fd.read()) > 0
+
+    def run_sample_loop(self, func, myjitdriver = None):
+        if not myjitdriver:
+            myjitdriver = JitDriver(greens = [], reds = 'auto')
+        def f(y, x):
+            res = 0
+            if func:
+                func()
+            while y > 0:
+                myjitdriver.jit_merge_point()
+                res += x
+                y -= 1
+            return res
+        return f
diff --git a/rpython/jit/backend/x86/test/test_jitlog.py 
b/rpython/jit/backend/x86/test/test_jitlog.py
--- a/rpython/jit/backend/x86/test/test_jitlog.py
+++ b/rpython/jit/backend/x86/test/test_jitlog.py
@@ -1,83 +1,8 @@
-import re
-import os
-from rpython.rlib import debug
-from rpython.jit.tool.oparser import pure_parse
-from rpython.jit.metainterp import logger
-from rpython.jit.metainterp.typesystem import llhelper
-from rpython.rlib.jitlog import JITLOG_VERSION_16BIT_LE
-from rpython.rlib.rjitlog import rjitlog as jl
-from StringIO import StringIO
-from rpython.jit.metainterp.optimizeopt.util import equaloplists
-from rpython.jit.metainterp.history import AbstractDescr, JitCellToken, 
BasicFailDescr, BasicFinalDescr
-from rpython.jit.backend.model import AbstractCPU
-from rpython.rlib.jit import JitDriver
-from rpython.rlib.objectmodel import always_inline
-from rpython.jit.metainterp.test.support import LLJitMixin
+
 from rpython.jit.backend.x86.test.test_basic import Jit386Mixin
-from rpython.rlib.rvmprof import rvmprof
-import tempfile
+from rpython.jit.backend.test.jitlog_test import LoggerTest
 
-class TestLogger(Jit386Mixin):
-
-    def test_explicit_enable(self, tmpdir):
-        vmprof = rvmprof.VMProf()
-        file = tmpdir.join('jitlog')
-        fileno = os.open(file.strpath, os.O_WRONLY | os.O_CREAT)
-        enable_jitlog = lambda: vmprof.enable_jitlog(fileno)
-        f = self.run_sample_loop(enable_jitlog)
-        self.meta_interp(f, [10, 0])
-
-        assert os.path.exists(file.strpath)
-        with file.open('rb') as f:
-            # check the file header
-            assert f.read(3) == jl.MARK_JITLOG_HEADER + JITLOG_VERSION_16BIT_LE
-            assert len(f.read()) > 0
-
-    def test_env(self, monkeypatch, tmpdir):
-        file = tmpdir.join('jitlog')
-        monkeypatch.setenv("JITLOG", file.strpath)
-        f = self.run_sample_loop(None)
-        self.meta_interp(f, [10,0])
-        assert os.path.exists(file.strpath)
-        with file.open('rb') as fd:
-            # check the file header
-            assert fd.read(3) == jl.MARK_JITLOG_HEADER + 
JITLOG_VERSION_16BIT_LE
-            assert len(fd.read()) > 0
-
-    def test_version(self, monkeypatch, tmpdir):
-        file = tmpdir.join('jitlog')
-        monkeypatch.setattr(jl, 'JITLOG_VERSION_16BIT_LE', '\xff\xfe')
-        monkeypatch.setenv("JITLOG", file.strpath)
-        f = self.run_sample_loop(None)
-        self.meta_interp(f, [10,0])
-        assert os.path.exists(file.strpath)
-        with file.open('rb') as fd:
-            # check the file header
-            assert fd.read(3) == jl.MARK_JITLOG_HEADER + '\xff\xfe'
-            assert len(fd.read()) > 0
-
-    def test_version(self, monkeypatch, tmpdir):
-        file = tmpdir.join('jitlog')
-        monkeypatch.setattr(jl, 'JITLOG_VERSION_16BIT_LE', '\xff\xfe')
-        monkeypatch.setenv("JITLOG", file.strpath)
-        f = self.run_sample_loop(None)
-        self.meta_interp(f, [10,0])
-        assert os.path.exists(file.strpath)
-        with file.open('rb') as fd:
-            # check the file header
-            assert fd.read(3) == jl.MARK_JITLOG_HEADER + '\xff\xfe'
-            assert len(fd.read()) > 0
-
-    def run_sample_loop(self, func, myjitdriver = None):
-        if not myjitdriver:
-            myjitdriver = JitDriver(greens = [], reds = 'auto')
-        def f(y, x):
-            res = 0
-            if func:
-                func()
-            while y > 0:
-                myjitdriver.jit_merge_point()
-                res += x
-                y -= 1
-            return res
-        return f
+class TestJitlog(Jit386Mixin, LoggerTest):
+    # for the individual tests see
+    # ====> ../../../test/jitlog_test.py
+    pass
diff --git a/rpython/jit/backend/zarch/assembler.py 
b/rpython/jit/backend/zarch/assembler.py
--- a/rpython/jit/backend/zarch/assembler.py
+++ b/rpython/jit/backend/zarch/assembler.py
@@ -32,6 +32,7 @@
 from rpython.rtyper.lltypesystem import lltype, rffi, llmemory
 from rpython.rtyper.annlowlevel import llhelper, cast_instance_to_gcref
 from rpython.rlib.jit import AsmInfo
+from rpython.rlib.rjitlog import rjitlog as jl
 
 class JitFrameTooDeep(Exception):
     pass
diff --git a/rpython/jit/backend/zarch/test/test_jitlog.py 
b/rpython/jit/backend/zarch/test/test_jitlog.py
new file mode 100644
--- /dev/null
+++ b/rpython/jit/backend/zarch/test/test_jitlog.py
@@ -0,0 +1,8 @@
+
+from rpython.jit.backend.zarch.test.support import JitZARCHMixin
+from rpython.jit.backend.test.jitlog_test import LoggerTest
+
+class TestJitlog(JitZARCHMixin, LoggerTest):
+    # for the individual tests see
+    # ====> ../../../test/jitlog_test.py
+    pass
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to