Author: Amaury Forgeot d'Arc <[email protected]>
Branch: py3k
Changeset: r60635:5f3eacb6f86c
Date: 2013-01-28 22:46 +0100
http://bitbucket.org/pypy/pypy/changeset/5f3eacb6f86c/
Log: hg merge default
diff --git a/rpython/annotator/annrpython.py b/rpython/annotator/annrpython.py
--- a/rpython/annotator/annrpython.py
+++ b/rpython/annotator/annrpython.py
@@ -113,6 +113,9 @@
if policy is None:
from rpython.annotator.policy import AnnotatorPolicy
policy = AnnotatorPolicy()
+ # XXX hack
+ annmodel.TLS.check_str_without_nul = (
+ self.translator.config.translation.check_str_without_nul)
graph, inputcells = self.get_call_parameters(function, args_s, policy)
self.build_graph_types(graph, inputcells, complete_now=False)
self.complete_helpers(policy)
diff --git a/rpython/rlib/test/test_jit.py b/rpython/rlib/test/test_jit.py
--- a/rpython/rlib/test/test_jit.py
+++ b/rpython/rlib/test/test_jit.py
@@ -35,8 +35,8 @@
assert driver.reds == ['a', 'b']
assert driver.numreds == 2
[email protected](reason="@inline off: see skipped failures in
test_warmspot.")
def test_jitdriver_inline():
+ py.test.skip("@inline off: see skipped failures in test_warmspot.")
driver = JitDriver(greens=[], reds='auto')
calls = []
def foo(a, b):
@@ -55,8 +55,8 @@
('bar', 40, 2),
]
[email protected](reason="@inline off: see skipped failures in
test_warmspot.")
def test_jitdriver_clone():
+ py.test.skip("@inline off: see skipped failures in test_warmspot.")
def bar(): pass
def foo(): pass
driver = JitDriver(greens=[], reds=[])
diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py
--- a/rpython/rlib/test/test_rposix.py
+++ b/rpython/rlib/test/test_rposix.py
@@ -141,3 +141,10 @@
assert rposix.is_valid_fd(fd) == 1
fid.close()
assert rposix.is_valid_fd(fd) == 0
+
+ def test_putenv(self):
+ def f():
+ rposix.putenv(self.path, self.path)
+ rposix.unsetenv(self.path)
+
+ interpret(f, []) # does not crash
diff --git a/rpython/rlib/test/test_signature.py
b/rpython/rlib/test/test_signature.py
--- a/rpython/rlib/test/test_signature.py
+++ b/rpython/rlib/test/test_signature.py
@@ -9,6 +9,7 @@
def annotate_at(f, policy=None):
t = TranslationContext()
+ t.config.translation.check_str_without_nul = True
a = t.buildannotator(policy=policy)
a.annotate_helper(f, [model.s_ImpossibleValue]*f.func_code.co_argcount,
policy=policy)
return a
@@ -112,6 +113,12 @@
return len(u)
assert getsig(f) == [model.SomeUnicodeString(), model.SomeInteger()]
+def test_str0():
+ @signature(types.unicode0(), returns=types.str0())
+ def f(u):
+ return 'str'
+ assert getsig(f) == [model.SomeUnicodeString(no_nul=True),
+ model.SomeString(no_nul=True)]
def test_ptr():
policy = LowLevelAnnotatorPolicy()
diff --git a/rpython/rtyper/rstr.py b/rpython/rtyper/rstr.py
--- a/rpython/rtyper/rstr.py
+++ b/rpython/rtyper/rstr.py
@@ -88,7 +88,6 @@
startingpos, endingpos):
raise UnicodeEncodeError(encoding, u, startingpos, endingpos, msg)
-
class __extend__(annmodel.SomeString):
def rtyper_makerepr(self, rtyper):
return rtyper.type_system.rstr.string_repr
diff --git a/rpython/rtyper/test/test_runicode.py
b/rpython/rtyper/test/test_runicode.py
--- a/rpython/rtyper/test/test_runicode.py
+++ b/rpython/rtyper/test/test_runicode.py
@@ -106,6 +106,12 @@
assert self.ll_to_string(self.interpret(f, [38])) == f(38)
+ def g(n):
+ x = u'\ud800' + unichr(n)
+ return x.encode('utf-8')
+
+ self.interpret_raises(UnicodeEncodeError, g, [38])
+
def test_utf_8_encoding_annotation(self):
from rpython.rlib.runicode import unicode_encode_utf_8
def errorhandler(errors, encoding, msg, u,
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit