Author: Antonio Cuni <anto.c...@gmail.com> Branch: stm Changeset: r51345:a81e51b21e06 Date: 2012-01-16 16:06 +0100 http://bitbucket.org/pypy/pypy/changeset/a81e51b21e06/
Log: (arigo, antocuni): fix test_getfield_all_sizes, and make sure we test both the cases of stm_getfield inside and outside a transaction diff --git a/pypy/translator/stm/src_stm/et.c b/pypy/translator/stm/src_stm/et.c --- a/pypy/translator/stm/src_stm/et.c +++ b/pypy/translator/stm/src_stm/et.c @@ -676,6 +676,10 @@ void* stm_perform_transaction(void*(*callback)(void*), void *arg) { void *result; +#ifdef RPY_STM_ASSERT + /* you need to call descriptor_init() before calling stm_perform_transaction */ + assert(thread_descriptor != NULL); +#endif STM_begin_transaction(); result = callback(arg); stm_commit_transaction(); diff --git a/pypy/translator/stm/test/targetdemo.py b/pypy/translator/stm/test/targetdemo.py --- a/pypy/translator/stm/test/targetdemo.py +++ b/pypy/translator/stm/test/targetdemo.py @@ -1,6 +1,6 @@ import time from pypy.module.thread import ll_thread -from pypy.translator.stm import rstm +#from pypy.translator.stm import rstm class Node: diff --git a/pypy/translator/stm/test/test_funcgen.py b/pypy/translator/stm/test/test_funcgen.py --- a/pypy/translator/stm/test/test_funcgen.py +++ b/pypy/translator/stm/test/test_funcgen.py @@ -2,8 +2,11 @@ from pypy.rlib.rarithmetic import r_longlong, r_singlefloat from pypy.translator.stm.test.test_transform import CompiledSTMTests #from pypy.rlib import rstm +from pypy.translator.stm._rffi_stm import (CALLBACK, perform_transaction, + descriptor_init, descriptor_done) from pypy.translator.c.test.test_standalone import StandaloneTests from pypy.rlib.debug import debug_print +from pypy.rpython.annlowlevel import llhelper class TestRStm(object): @@ -78,7 +81,7 @@ return a a_prebuilt = make_a_1() -def do_stm_getfield(argv): +def _play_with_getfield(dummy_arg): a = a_prebuilt assert a.x == -611 assert a.c1 == '/' @@ -89,7 +92,7 @@ assert a.f == rf1 assert float(a.sa) == float(rs1a) assert float(a.sb) == float(rs1b) - return 0 + return lltype.nullptr(rffi.VOIDP.TO) def do_stm_setfield(argv): a = a_prebuilt @@ -241,6 +244,19 @@ class TestFuncGen(CompiledSTMTests): def test_getfield_all_sizes(self): + def do_stm_getfield(argv): + _play_with_getfield(None) + return 0 + t, cbuilder = self.compile(do_stm_getfield) + cbuilder.cmdexec('') + + def test_getfield_all_sizes_inside_transaction(self): + def do_stm_getfield(argv): + callback = llhelper(CALLBACK, _play_with_getfield) + descriptor_init() + perform_transaction(callback, lltype.nullptr(rffi.VOIDP.TO)) + descriptor_done() + return 0 t, cbuilder = self.compile(do_stm_getfield) cbuilder.cmdexec('') _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit