Author: Amaury Forgeot d'Arc <amaur...@gmail.com> 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 -@py.test.mark.xfail(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), ] -@py.test.mark.xfail(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 pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit