Skip to content

Commit a151e2b

Browse files
committed
test memory management solution for ci jobs
1 parent 76628ca commit a151e2b

File tree

2 files changed

+4
-22
lines changed

2 files changed

+4
-22
lines changed

conftest.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -205,14 +205,6 @@ def pytest_addoption(parser):
205205
type=float,
206206
help="Minimum available memory in GB before running tests",
207207
)
208-
parser.addoption(
209-
"--max-memory-percent",
210-
action="store",
211-
default=None,
212-
type=float,
213-
help="Maximum memory usage percentage before pausing tests",
214-
)
215-
216208

217209
def pytest_runtest_setup(item):
218210
"""
@@ -229,8 +221,6 @@ def pytest_runtest_setup(item):
229221
# Override with CLI options if provided
230222
if config.getoption("min_available_memory_gb") is not None:
231223
memory_reqs["min_available_gb"] = config.getoption("min_available_memory_gb")
232-
if config.getoption("max_memory_percent") is not None:
233-
memory_reqs["max_memory_percent"] = config.getoption("max_memory_percent")
234224

235225
# Wait for memory to be available
236226
memory_available = wait_for_memory(**memory_reqs)

python/cairo-addons/src/cairo_addons/testing/memory_manager.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,14 @@ def get_memory_info():
3535

3636
def wait_for_memory(
3737
min_available_gb: float = 2.0,
38-
max_memory_percent: float = 90.0,
3938
check_interval: float = 1.0,
40-
max_wait_time: float = 300.0, # 5 minutes max wait
39+
max_wait_time: float = 120.0, # 2 minutes max wait
4140
) -> bool:
4241
"""
4342
Wait until sufficient memory is available.
4443
4544
Args:
4645
min_available_gb: Minimum available memory in GB
47-
max_memory_percent: Maximum memory usage percentage
4846
check_interval: How often to check memory (seconds)
4947
max_wait_time: Maximum time to wait (seconds)
5048
@@ -63,10 +61,7 @@ def wait_for_memory(
6361
return True # Can't check, assume it's fine
6462

6563
# Check if memory conditions are met
66-
memory_ok = (
67-
memory_info["available"] >= min_available_gb
68-
and memory_info["percent_used"] <= max_memory_percent
69-
)
64+
memory_ok = memory_info["available"] >= min_available_gb
7065

7166
if memory_ok:
7267
if not first_check:
@@ -80,7 +75,6 @@ def wait_for_memory(
8075
logger.warning(
8176
f"Waiting for memory: need {min_available_gb}GB free "
8277
f"(have {memory_info['available']:.1f}GB), "
83-
f"max {max_memory_percent}% used "
8478
f"(current {memory_info['percent_used']:.1f}%)"
8579
)
8680
first_check = False
@@ -114,15 +108,13 @@ def get_memory_requirements_for_ci():
114108
# More conservative settings for CI
115109
return {
116110
"min_available_gb": 2.0, # Need at least 2GB free
117-
"max_memory_percent": 97.0, # Don't use more than 97% of memory
118111
"check_interval": 1.0, # Check Every Second
119-
"max_wait_time": 120.0, # Wait longer in CI (2 minutes)
112+
"max_wait_time": 60.0,
120113
}
121114
else:
122115
# More relaxed settings for local development
123116
return {
124117
"min_available_gb": 1.0, # Need at least 1GB free
125-
"max_memory_percent": 95.0, # Don't use more than 95% of memory
126118
"check_interval": 1.0, # Check every second
127-
"max_wait_time": 120.0, # Wait up to 2 minutes locally
119+
"max_wait_time": 60.0,
128120
}

0 commit comments

Comments
 (0)