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