Skip to content

Load-sensitive tests #247

@sarahec

Description

@sarahec

Three tests failed on a heavily-loaded machine and often work under lighter loads:

  1. test_bucket_waiting
  2. test_limiter_async_factory_get
  3. test_mp_bucket_failures

UPDATE: The list became so long, based on many runs on different systems, that I opted to block files instead. The list before:

  disabledTests = [
    # hangs intermittently
    # https://github.com/vutran1710/PyrateLimiter/issues/245
    "test_limiter_01"
    # pass when run standalone, fail at higher loads
    # https://github.com/vutran1710/PyrateLimiter/issues/247
    "test_bucket_waiting"
    "test_limiter_async_factory_get"
    "test_limiter_delay"
    "test_mp_bucket"
    "test_mp_bucket_async"
    "test_mp_bucket_failures"
    "test_sqlite_filelock_bucket"
    # Slow: > 1.5 seconds/test run standalone on a fast machine
    # (Apple M3 Max with highest performance settings and 36GB RAM)
    "test_bucket_01"
    "test_bucket_02"
    "test_bucket_full"
    "test_bucket_leak"
    "test_factory_leak"
    "test_bucket_performance"
  ];

The new list:

  disabledTestPaths = [
    # Slow: > 1.5 seconds/test run standalone on a fast machine
    # (Apple M3 Max with highest performance settings and 36GB RAM)
    # and/or hang under load
    # https://github.com/vutran1710/PyrateLimiter/issues/245
    # https://github.com/vutran1710/PyrateLimiter/issues/247
    "tests/test_bucket_all.py"
    "tests/test_bucket_factory.py"
    "tests/test_limiter.py"
    "tests/test_multiprocessing.py"
  ];

Many of the slow tests are slow with a particular fixture value (sqlite routinely slows things down to > 20s/test).

I wonder if it would be useful to mark a subset of tests as smoke tests (via @pytest.mark)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions