pytest-codspeed 5.0.2__tar.gz → 5.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest_codspeed-5.0.2/src/pytest_codspeed.egg-info → pytest_codspeed-5.0.4}/PKG-INFO +3 -3
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/README.md +2 -2
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/pyproject.toml +2 -2
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/setup.py +1 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/__init__.py +2 -2
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/__init__.py +19 -44
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/dist/core.c +11566 -11193
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/includes/callgrind.h +37 -25
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/includes/core.h +5 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument_hooks_module.c +3 -10
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/plugin.py +59 -25
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/utils.py +2 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4/src/pytest_codspeed.egg-info}/PKG-INFO +3 -3
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/tests/test_pytest_plugin.py +8 -4
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/tests/test_pytest_plugin_cpu_instrumentation.py +2 -1
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/tests/test_pytest_plugin_walltime.py +2 -2
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/LICENSE +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/setup.cfg +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/config.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/__init__.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/analysis.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/includes/compat.h +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/includes/valgrind.h +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/includes/zig.h +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/instrument-hooks/scripts/release.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/walltime.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/py.typed +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed.egg-info/SOURCES.txt +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed.egg-info/dependency_links.txt +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed.egg-info/entry_points.txt +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed.egg-info/requires.txt +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed.egg-info/top_level.txt +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/tests/test_format_time.py +0 -0
- {pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-codspeed
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.4
|
|
4
4
|
Summary: Pytest plugin to create CodSpeed benchmarks
|
|
5
5
|
Author-email: Arthur Pastel <arthur@codspeed.io>
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -60,7 +60,7 @@ Requires-Dist: pytest-xdist~=3.6.1; extra == "compat"
|
|
|
60
60
|
|
|
61
61
|
[](https://github.com/CodSpeedHQ/pytest-codspeed/actions/workflows/ci.yml)
|
|
62
62
|
[](https://pypi.org/project/pytest-codspeed)
|
|
63
|
-

|
|
63
|
+

|
|
64
64
|
[](https://discord.com/invite/MxpaCfKSqF)
|
|
65
65
|
[](https://codspeed.io/CodSpeedHQ/pytest-codspeed)
|
|
66
66
|
|
|
@@ -168,7 +168,7 @@ jobs:
|
|
|
168
168
|
run: pip install -r requirements.txt
|
|
169
169
|
|
|
170
170
|
- name: Run benchmarks
|
|
171
|
-
uses: CodSpeedHQ/action@
|
|
171
|
+
uses: CodSpeedHQ/action@v5
|
|
172
172
|
with:
|
|
173
173
|
mode: simulation # or `walltime`
|
|
174
174
|
token: ${{ secrets.CODSPEED_TOKEN }}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
[](https://github.com/CodSpeedHQ/pytest-codspeed/actions/workflows/ci.yml)
|
|
5
5
|
[](https://pypi.org/project/pytest-codspeed)
|
|
6
|
-

|
|
6
|
+

|
|
7
7
|
[](https://discord.com/invite/MxpaCfKSqF)
|
|
8
8
|
[](https://codspeed.io/CodSpeedHQ/pytest-codspeed)
|
|
9
9
|
|
|
@@ -111,7 +111,7 @@ jobs:
|
|
|
111
111
|
run: pip install -r requirements.txt
|
|
112
112
|
|
|
113
113
|
- name: Run benchmarks
|
|
114
|
-
uses: CodSpeedHQ/action@
|
|
114
|
+
uses: CodSpeedHQ/action@v5
|
|
115
115
|
with:
|
|
116
116
|
mode: simulation # or `walltime`
|
|
117
117
|
token: ${{ secrets.CODSPEED_TOKEN }}
|
|
@@ -82,7 +82,7 @@ version = { attr = "pytest_codspeed.__version__" }
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
[tool.bumpver]
|
|
85
|
-
current_version = "5.0.
|
|
85
|
+
current_version = "5.0.4"
|
|
86
86
|
version_pattern = "MAJOR.MINOR.PATCH[-TAG[NUM]]"
|
|
87
87
|
commit_message = "Release v{new_version} 🚀"
|
|
88
88
|
tag_message = "Release v{new_version} 🚀"
|
|
@@ -136,7 +136,7 @@ force_grid_wrap = 0
|
|
|
136
136
|
float_to_top = true
|
|
137
137
|
|
|
138
138
|
[tool.pytest.ini_options]
|
|
139
|
-
addopts = "--ignore=tests/benchmarks --ignore=tests/
|
|
139
|
+
addopts = "--ignore=tests/benchmarks --ignore=tests/benchmarks/TheAlgorithms"
|
|
140
140
|
filterwarnings = ["ignore::DeprecationWarning:pytest_benchmark.utils.*:"]
|
|
141
141
|
pythonpath = ["tests/benchmarks/TheAlgorithms", "./scripts"]
|
|
142
142
|
|
|
@@ -41,6 +41,7 @@ native_extension = Extension(
|
|
|
41
41
|
# upstream silences; in particular distros like Nix/Debian/Fedora inject
|
|
42
42
|
# -Werror=format-security, which would otherwise fail the build.
|
|
43
43
|
extra_compile_args=[
|
|
44
|
+
"-std=c11",
|
|
44
45
|
"-Wno-format",
|
|
45
46
|
"-Wno-format-security",
|
|
46
47
|
"-Wno-unused-but-set-variable",
|
{pytest_codspeed-5.0.2 → pytest_codspeed-5.0.4}/src/pytest_codspeed/instruments/hooks/__init__.py
RENAMED
|
@@ -52,7 +52,7 @@ class InstrumentHooks:
|
|
|
52
52
|
|
|
53
53
|
# Ignore libpython and python executable frames in callgrind so they
|
|
54
54
|
# don't obfuscate the flamegraph.
|
|
55
|
-
|
|
55
|
+
self._callgrind_skip_python_runtime()
|
|
56
56
|
|
|
57
57
|
def __del__(self):
|
|
58
58
|
# Don't manually deinit - let the capsule destructor handle it
|
|
@@ -228,46 +228,21 @@ class InstrumentHooks:
|
|
|
228
228
|
|
|
229
229
|
self.write_environment()
|
|
230
230
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
# matches regardless of which path callgrind sees.
|
|
250
|
-
real = os.path.realpath(path)
|
|
251
|
-
if real != path:
|
|
252
|
-
dist_instrument_hooks.callgrind_add_obj_skip(real.encode())
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
def callgrind_skip_python_runtime() -> None:
|
|
256
|
-
"""Skip libpython and the python executable from callgrind measurement."""
|
|
257
|
-
ldlibrary = sysconfig.get_config_var("LDLIBRARY")
|
|
258
|
-
libdir = sysconfig.get_config_var("LIBDIR")
|
|
259
|
-
libpython = next(
|
|
260
|
-
(
|
|
261
|
-
p
|
|
262
|
-
for p in (
|
|
263
|
-
os.path.join(libdir, ldlibrary) if ldlibrary and libdir else None,
|
|
264
|
-
os.path.join(sys.prefix, "lib", ldlibrary) if ldlibrary else None,
|
|
265
|
-
)
|
|
266
|
-
if p and os.path.exists(p)
|
|
267
|
-
),
|
|
268
|
-
None,
|
|
269
|
-
)
|
|
270
|
-
if libpython:
|
|
271
|
-
callgrind_add_obj_skip(libpython)
|
|
272
|
-
|
|
273
|
-
callgrind_add_obj_skip(sys.executable)
|
|
231
|
+
def _callgrind_skip_python_runtime(self) -> None:
|
|
232
|
+
"""Skip libpython and the python executable from callgrind measurement."""
|
|
233
|
+
ldlibrary = sysconfig.get_config_var("LDLIBRARY")
|
|
234
|
+
libdir = sysconfig.get_config_var("LIBDIR")
|
|
235
|
+
libpython = next(
|
|
236
|
+
(
|
|
237
|
+
p
|
|
238
|
+
for p in (
|
|
239
|
+
os.path.join(libdir, ldlibrary) if ldlibrary and libdir else None,
|
|
240
|
+
os.path.join(sys.prefix, "lib", ldlibrary) if ldlibrary else None,
|
|
241
|
+
)
|
|
242
|
+
if p and os.path.exists(p)
|
|
243
|
+
),
|
|
244
|
+
None,
|
|
245
|
+
)
|
|
246
|
+
if libpython:
|
|
247
|
+
self._module.callgrind_add_obj_skip(libpython.encode())
|
|
248
|
+
self._module.callgrind_add_obj_skip(sys.executable.encode())
|