techprotrade's picture
Deploy ATOM FastAPI command center runtime (part 8)
aef804e verified
Raw
History Blame Contribute Delete
1.95 kB
"""
Fuzzing Campaign Management Package
This package provides centralized campaign lifecycle management for all
API fuzzing tests, including campaign orchestration, crash deduplication,
and automated bug filing.
Components:
- FuzzingOrchestrator: Campaign lifecycle management (start, stop, monitor)
- CrashDeduplicator: Crash deduplication using error signature hashing
Campaign Lifecycle:
1. Start campaign with start_campaign(target_endpoint, test_file)
2. Monitor progress with monitor_campaign(campaign_id)
3. Stop campaign with stop_campaign(campaign_id)
4. Deduplicate crashes with CrashDeduplicator.deduplicate_crashes(crash_dir)
5. File bugs with file_bugs_for_crashes(target_endpoint, crashes_by_signature)
Example:
from tests.fuzzing.campaigns import FuzzingOrchestrator, CrashDeduplicator
orchestrator = FuzzingOrchestrator(github_token="...", github_repository="owner/repo")
result = orchestrator.start_campaign("/api/v1/agents", "tests/fuzzing/test_auth_api.py")
# Wait for campaign to complete
import time
time.sleep(3600)
stats = orchestrator.monitor_campaign(result["campaign_id"])
orchestrator.stop_campaign(result["campaign_id"])
# Deduplicate and file bugs
deduplicator = CrashDeduplicator()
crashes_by_signature = deduplicator.deduplicate_crashes(stats["crash_dir"])
bugs = orchestrator.file_bugs_for_crashes("/api/v1/agents", crashes_by_signature)
"""
from tests.fuzzing.campaigns.fuzzing_orchestrator import (
FuzzingOrchestrator,
start_campaign,
stop_campaign,
monitor_campaign,
file_bugs_for_crashes
)
from tests.fuzzing.campaigns.crash_deduplicator import (
CrashDeduplicator,
deduplicate_crashes
)
__all__ = [
# FuzzingOrchestrator
"FuzzingOrchestrator",
"start_campaign",
"stop_campaign",
"monitor_campaign",
"file_bugs_for_crashes",
# CrashDeduplicator
"CrashDeduplicator",
"deduplicate_crashes",
]