Author: Antonio Cuni <anto.c...@gmail.com> Branch: fix-vmprof-stacklet-switch-2 Changeset: r93198:a48521eb6944 Date: 2017-11-28 17:30 +0100 http://bitbucket.org/pypy/pypy/changeset/a48521eb6944/
Log: rename the fixture to app_fakevmprof and use it on all tests: this way, it automatically checks that {start,stop}_sampling has been called an even amount of times diff --git a/pypy/module/_continuation/test/test_stacklet.py b/pypy/module/_continuation/test/test_stacklet.py --- a/pypy/module/_continuation/test/test_stacklet.py +++ b/pypy/module/_continuation/test/test_stacklet.py @@ -4,7 +4,7 @@ from pypy.interpreter.gateway import interp2app from pypy.module._continuation.test.support import BaseAppTest - +@pytest.mark.usefixtures('app_fakevmprof') class AppTestStacklet(BaseAppTest): def setup_class(cls): BaseAppTest.setup_class.im_func(cls) @@ -41,6 +41,29 @@ # make sure that "self.stack" does not pass the self cls.w_stack = staticmethod(cls.w_stack.im_func) + + @pytest.fixture + def app_fakevmprof(self, fakevmprof): + """ + This is automaticaly re-initialized for every method: thanks to + fakevmprof's finalizer, it checks that we called {start,stop}_sampling + the in pairs + """ + w = self.space.wrap + i2a = interp2app + def is_sampling_enabled(space): + return space.wrap(fakevmprof.is_sampling_enabled) + self.w_is_sampling_enabled = w(i2a(is_sampling_enabled)) + # + def start_sampling(space): + fakevmprof.start_sampling() + self.w_start_sampling = w(i2a(start_sampling)) + # + def stop_sampling(space): + fakevmprof.stop_sampling() + self.w_stop_sampling = w(i2a(stop_sampling)) + + def test_new_empty(self): from _continuation import continulet # @@ -774,29 +797,6 @@ continulet.switch(c1, to=c2) raises(error, continulet.switch, c1, to=c2) - -@pytest.mark.usefixtures('init_method') -class AppTestVMProf(BaseAppTest): - - @pytest.fixture - def init_method(self, fakevmprof): - """ - This is automaticaly re-initialized for every method - """ - w = self.space.wrap - i2a = interp2app - def is_sampling_enabled(space): - return space.wrap(fakevmprof.is_sampling_enabled) - self.w_is_sampling_enabled = w(i2a(is_sampling_enabled)) - # - def start_sampling(space): - fakevmprof.start_sampling() - self.w_start_sampling = w(i2a(start_sampling)) - # - def stop_sampling(space): - fakevmprof.stop_sampling() - self.w_stop_sampling = w(i2a(stop_sampling)) - def test_sampling_inside_callback(self): from _continuation import continulet # @@ -804,10 +804,12 @@ assert self.is_sampling_enabled() return 42 # - self.start_sampling() - assert self.is_sampling_enabled() - c = continulet(my_callback) - res = c.switch() - assert res == 42 - assert self.is_sampling_enabled() - self.stop_sampling() + try: + self.start_sampling() + assert self.is_sampling_enabled() + c = continulet(my_callback) + res = c.switch() + assert res == 42 + assert self.is_sampling_enabled() + finally: + self.stop_sampling() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit