Skip to content

No benchmark tests #120

Description

@sumanjeet0012

There are no benchmark tests for core operations like string parsing, bytes parsing, string formatting, or protocol iteration.

Proposed Solution

Add tests/test_benchmarks.py:

import pytest
from multiaddr import Multiaddr

BENCH_ADDR = "/ip4/1.2.3.4/tcp/80/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fkaDs"

@pytest.mark.benchmark
def test_bench_from_string(benchmark):
    benchmark(Multiaddr, BENCH_ADDR)

@pytest.mark.benchmark
def test_bench_to_string(benchmark):
    ma = Multiaddr(BENCH_ADDR)
    benchmark(str, ma)

@pytest.mark.benchmark
def test_bench_to_bytes(benchmark):
    ma = Multiaddr(BENCH_ADDR)
    benchmark(ma.to_bytes)

@pytest.mark.benchmark
def test_bench_protocols(benchmark):
    ma = Multiaddr(BENCH_ADDR)
    benchmark(lambda: list(ma.protocols()))

@pytest.mark.benchmark
def test_bench_encapsulate(benchmark):
    ma1 = Multiaddr("/ip4/1.2.3.4")
    ma2 = Multiaddr("/tcp/80")
    benchmark(ma1.encapsulate, ma2)

@pytest.mark.benchmark
def test_bench_decapsulate(benchmark):
    ma = Multiaddr("/ip4/1.2.3.4/tcp/80")
    benchmark(ma.decapsulate, "/tcp/80")

Related

  • Dev dependency to add: pytest-benchmark

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions