Skip to content

Latest commit

 

History

History
78 lines (59 loc) · 4.16 KB

File metadata and controls

78 lines (59 loc) · 4.16 KB

PinguBot Configuration Variables

This document provides an in-depth explanation of the configuration variables used in the config.yaml file. These variables control the behavior of PinguBot and can be customized to suit specific requirements.

General Configuration

  • APP_ARGS:Command-line arguments passed to the application under test. Leave empty if no arguments are required.
  • APP_ARGS_APPEND_TESTCASE:Boolean flag to append the testcase path to APP_ARGS. Default: true.
  • APP_LAUNCH_COMMAND:Custom command to launch the application. Overrides default behavior if specified.
  • APP_NAME:Name of the application under test.
  • APP_PATH:Path to the application binary.
  • APP_PATH_DEBUG: Path to the debug version of the application binary.

Fuzzing Configuration

  • FUZZER:Specifies the fuzzing engine to use (e.g., libFuzzer).
  • FUZZER_DIR:Directory containing the fuzzing engine binaries.
  • FUZZER_TIMEOUT:Maximum time (in seconds) allowed for a fuzzing session. Default: 5400.
  • FUZZ_TEST_TIMEOUT:Timeout (in seconds) for individual fuzz tests. Default: 5400.
  • MAX_FUZZ_THREADS:Maximum number of threads to use for fuzzing. Default: 4.
  • MAX_TESTCASES: Maximum number of test cases to process in a single fuzzing session. Default: 5.

Platform and Environment

  • PLATFORM:Specifies the platform on which the bot is running (e.g., Linux, Windows).
  • TRUSTED_HOST:Boolean flag indicating whether the bot is running on a trusted host. Default: true.
  • CACHE_STORE:Boolean flag to enable or disable caching of intermediate results. Default: true.
  • PROCESS_POLL_INTERVAL:Interval (in seconds) for polling processes during execution. Default: 0.5.
  • THREAD_DELAY: Delay (in seconds) between thread launches. Default: 0.

API and Communication

  • PINGUAPI_HOST:URL of the backend API server. Default: http://127.0.0.1:8086.
  • PINGUAPI_KEY: API key for authenticating with the backend. This key is autogenerated when a bot is created.

Build Management

  • RELEASE_BUILD_BUCKET_PATH:Path to the release build in the storage bucket. Supports regex patterns.
  • STABLE_BUILD_BUCKET_PATH:Path to the stable build in the storage bucket.
  • SYM_RELEASE_BUILD_BUCKET_PATH:Path to the symbolized release build in the storage bucket.
  • UNPACK_ALL_FUZZ_TARGETS_AND_FILES: Boolean flag to unpack all fuzz targets and files during setup. Default: true.

Task Execution

  • TEST_TIMEOUT:Timeout (in seconds) for individual test cases. Default: 10.
  • WARMUP_TIMEOUT:Timeout (in seconds) for warmup tasks. Default: 120.
  • FAIL_RETRIES:Number of retries for failed tasks. Default: 5.
  • FAIL_WAIT:Wait time (in seconds) before retrying a failed task. Default: 300.
  • CRASH_RETRIES:Number of retries for crash reproduction. Default: 10.
  • MINIMIZE_RESOURCES: Boolean flag to enable or disable resource minimization during testcase minimization. Default: true.

Debugging and Logging

  • LSAN:Boolean flag to enable or disable LeakSanitizer. Default: false.
  • ASSERTS_HAVE_SECURITY_IMPLICATION:Boolean flag indicating whether asserts have security implications. Default: false.
  • CHECKS_HAVE_SECURITY_IMPLICATION:Boolean flag indicating whether checks have security implications. Default: false.
  • ENABLE_DEBUG_CHECKS:Boolean flag to enable or disable debug checks. Default: false.
  • SYM_DEBUG_BUILD_BUCKET_PATH: Path to the symbolized debug build in the storage bucket.

Advanced Configuration

  • TIMEOUT_MULTIPLIER:Multiplier for adjusting timeouts dynamically. Default: 1.
  • USER_PROFILE_IN_MEMORY:Boolean flag to store user profiles in memory. Default: true.
  • TESTCASES_BEFORE_STALE_PROCESS_CLEANUP:Number of test cases to process before cleaning up stale processes. Default: 1.
  • WATCH_FOR_PROCESS_EXIT: Boolean flag to monitor process exits during execution. Default: false.

Notes

  • Always back up your config.yaml file before making changes.
  • Ensure that critical variables like PINGUAPI_KEY are kept secure and not exposed publicly.