File: test_benchmarks.py

package info (click to toggle)
python-pycddl 0.6.4%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 144 kB
  • sloc: python: 221; makefile: 24
file content (24 lines) | stat: -rw-r--r-- 616 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""
Benchmarks for parsing.

Run with pytest:

    $ pytest benchmarks.py
"""

import pytest

from .utils import BSTR_1K, BSTR_1M, BSTR_100M, BSTR_SCHEMA


@pytest.mark.parametrize("document_length", [1000, 1_000_000])
def test_validate_bytestring(benchmark, document_length, tmp_path):
    """
    Measure how long it takes to validate a bytestring of a given size.

    The hope is that validation time is still fast for large byte strings.
    """
    document = {1000: BSTR_1K, 1_000_000: BSTR_1M, 100_000_000: BSTR_100M}[
        document_length
    ]
    benchmark(lambda: BSTR_SCHEMA.validate_cbor(document))