Skip to content

Commit 5738bac

Browse files
committed
do some fixes, and fix test
1 parent c1f341a commit 5738bac

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

scorep/instrumenter.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,19 @@ def _recreate_cm(self):
8888
return self
8989

9090
def __call__(self, func):
91-
get_instrumenter().unregister()
92-
try:
91+
with disable():
9392
self.func = func
9493

9594
@functools.wraps(func)
9695
def inner(*args, **kwds):
9796
with self._recreate_cm():
9897
return func(*args, **kwds)
99-
finally:
100-
get_instrumenter().register()
10198
return inner
10299

103100
def __enter__(self):
104101
self.tracer_registered = get_instrumenter().get_registered()
105102
if not self.tracer_registered:
106-
if self.region_name:
103+
if self.user_region_name:
107104
self.module_name = "user_instrumenter"
108105
frame = inspect.currentframe().f_back
109106
file_name = frame.f_globals.get('__file__', None)
@@ -130,16 +127,16 @@ def __enter__(self):
130127
else:
131128
full_file_name = "None"
132129

133-
scorep.instrumenter.get_instrumenter().region_begin(
130+
get_instrumenter().region_begin(
134131
self.module_name, self.region_name, full_file_name, line_number, self.code_obj)
135132

136133
get_instrumenter().register()
137134

138-
def __exit__(self, exc_type, exc_value, traceback):
135+
def __exit__(self, exc_type=None, exc_value=None, traceback=None):
139136
if not self.tracer_registered:
140137
get_instrumenter().unregister()
141138

142-
if self.region_name is not None:
139+
if self.user_region_name:
143140
get_instrumenter().region_end(
144141
self.module_name, self.region_name)
145142
elif callable(self.func):
@@ -171,7 +168,7 @@ def _recreate_cm(self):
171168
return self
172169

173170
def __call__(self, func):
174-
get_instrumenter().unregister()
171+
self.__enter__()
175172
try:
176173
self.func = func
177174

@@ -180,15 +177,15 @@ def inner(*args, **kwds):
180177
with self._recreate_cm():
181178
return func(*args, **kwds)
182179
finally:
183-
get_instrumenter().register()
180+
self.__exit__()
184181
return inner
185182

186183
def __enter__(self):
187184
self.tracer_registered = get_instrumenter().get_registered()
188185
if self.tracer_registered:
189186
get_instrumenter().unregister()
190187

191-
if self.region_name is not None:
188+
if self.user_region_name:
192189
self.module_name = "user_instrumenter"
193190
frame = inspect.currentframe().f_back
194191
file_name = frame.f_globals.get('__file__', None)
@@ -214,12 +211,12 @@ def __enter__(self):
214211
else:
215212
full_file_name = "None"
216213

217-
scorep.instrumenter.get_instrumenter().region_begin(
214+
get_instrumenter().region_begin(
218215
self.module_name, self.region_name, full_file_name, line_number, self.code_obj)
219216

220-
def __exit__(self, exc_type, exc_value, traceback):
217+
def __exit__(self, exc_type=None, exc_value=None, traceback=None):
221218
if self.tracer_registered:
222-
if self.region_name is not None:
219+
if self.user_region_name:
223220
get_instrumenter().region_end(
224221
self.module_name, self.region_name)
225222
elif callable(self.func):

test/test_scorep.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def test_user_instrumentation(scorep_env, instrumenter):
254254
)
255255

256256
assert std_err == ""
257-
assert std_out == "hello world\nbar\nhello world2\nbaz"
257+
assert std_out == "hello world\nbar\nhello world2\nbaz\n"
258258

259259
std_out, std_err = call(["otf2-print", trace_path])
260260

@@ -263,6 +263,10 @@ def test_user_instrumentation(scorep_env, instrumenter):
263263
assert re.search('LEAVE[ ]*[0-9 ]*[0-9 ]*Region: "__main__:foo"', std_out)
264264
assert re.search('ENTER[ ]*[0-9 ]*[0-9 ]*Region: "__main__:foo2"', std_out)
265265
assert re.search('LEAVE[ ]*[0-9 ]*[0-9 ]*Region: "__main__:foo2"', std_out)
266+
assert re.search('ENTER[ ]*[0-9 ]*[0-9 ]*Region: "instrumentation2:bar"', std_out)
267+
assert re.search('LEAVE[ ]*[0-9 ]*[0-9 ]*Region: "instrumentation2:bar"', std_out)
268+
assert re.search('ENTER[ ]*[0-9 ]*[0-9 ]*Region: "instrumentation2:baz"', std_out)
269+
assert re.search('LEAVE[ ]*[0-9 ]*[0-9 ]*Region: "instrumentation2:baz"', std_out)
266270

267271

268272
@foreach_instrumenter

0 commit comments

Comments
 (0)