Skip to content

Conversation

zewei-wang
Copy link
Collaborator

Summary

Introduce a comprehensive Python SDK for OSS-Fuzz with:

  • Robust result management integrated into build/run pipelines
  • A full-featured facade API
  • Extensive documentation, samples, and unit tests

Changes Overview

  • Result Management
    • Added ossfuzz_py/result/result_manager.py for unified result capture, storage, and retrieval
    • Integrated into ossfuzz_py/build/builder.py and ossfuzz_py/execution/fuzz_runner.py
  • Full Facade SDK
    • Expanded ossfuzz_py/core/ossfuzz_sdk.py to a comprehensive, production-ready API
  • Documentation & Samples
    • New API docs: ossfuzz_py/README.md
    • Samples:
      • Basic: samples/basic/01_quick_start.py02_configuration.py03_simple_benchmark.py
      • Intermediate: samples/intermediate/04_pipeline_automation.py
      • Advanced: samples/advanced/01_batch_processing.py
      • Utilities: samples/utilities/health_checker.py
    • Sample data/configs:
      • samples/data/sample_benchmarks.json
      • samples/data/sample_configs/development.json
    • Samples guide: ossfuzz_py/samples/README.md

Testing

  • Unit tests added/updated for SDK facade, result management, and pipeline wiring
    • Added extensive unit tests: ossfuzz_py/unittests/test_ossfuzz_sdk_comprehensive.py
    • Added: ossfuzz_py/unittests/test_result_manager.py
  • Samples runnable for quick validation of key flows

- Add comprehensive data models for build, crash, corpus, and coverage history
- Implement HistoricalSummary model for aggregated statistics
- Add specialized error classes for SDK configuration and validation
- Include proper type hints and Pydantic validation
- Extend storage adapters with history-specific functionality
- Add support for time-series data storage and retrieval
- Implement environment variable utilities for configuration
- Improve error handling and logging in storage operations
- Add abstract HistoryManager base class with common functionality
- Implement BuildHistoryManager for build statistics and trends
- Add CoverageHistoryManager for coverage data analysis
- Include data validation and storage abstraction
- Add comprehensive logging and error handling
- Implement CorpusHistoryManager for corpus growth analysis
- Add CrashHistoryManager for crash tracking and statistics
- Include duplicate detection and data validation
- Complete the historical data management infrastructure
- Add OSSFuzzSDK class as main entry point for historical data
- Implement project report generation and analysis features
- Add fuzzing efficiency analysis and health scoring
- Include environment configuration and error handling
- Provide unified interface for all history managers
- Export OSSFuzzSDK and history managers in package __init__
- Add data models and error classes to public API
- Maintain backward compatibility with existing exports
- Complete integration of historical data functionality
- Add test suite for OSSFuzzSDK main functionality
- Include tests for all history managers (build, crash, corpus, coverage)
- Test configuration, error handling, and edge cases
- Ensure proper integration with storage and data validation
- Add mocking for external dependencies
…atures

- Update cloud builder pipeline tests for new SDK integration
- Modify local builder pipeline tests to work with enhanced functionality
- Ensure backward compatibility and proper error handling
- Fix any test conflicts with new historical data features
@zewei-wang
Copy link
Collaborator Author

/gcbrun exp -n zewei -m vertex_ai_gemini-2-5-flash-chat -ag -b quick-test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant