Skip to main content

Configuring Symflower CLI

This page describes how to configure Symflower CLI.

Available commands

Configuration options

Use the following command line arguments (or environment variables) to change the default behavior of Symflower:

General options

  • --output=: Print all results in the given encoding. (go|json|none) (default: none)
  • --version: Print the version of Symflower.
  • --version-revision: Print the revision of Symflower.
  • --license-key=: The license key for using Symflower's paid features.

Workspace options

  • --language=: Analyze with this language. By default all languages are used.
  • --workspace=: The root directory of the project to analyze. (default: .)

Log output options

  • --debug (SYMFLOWER_LOG_DEBUG): Set log output to debugging mode.
  • --quiet (SYMFLOWER_LOG_QUIET): Set log output to error mode.
  • --verbose (SYMFLOWER_LOG_VERBOSE): Set log output to verbose mode.

Directory path settings

  • --cache-path= (SYMFLOWER_CACHE_PATH): The path to the cache directory. If not set, a temporary "cache" directory is created.
  • --log-path= (SYMFLOWER_LOG_PATH): The file path to write logs to instead of printing them.
  • --share-path= (SYMFLOWER_SHARE_PATH): Optional path to the share directory of the Symflower binary to store assets, caches and configurations.

Performance options

  • --memory-limit= (SYMFLOWER_MEMORY_LIMIT): Stop analysis if memory usage exceeds the given number of MB. Zero means no limit. (default: 1024)

Help options

  • -h, --help: Show the help message.

unit-tests command options

By default, symflower unit-tests generates test suites.

  • --code-disable-fetch-dependencies (SYMFLOWER_CODE_DISABLE_FETCH_DEPENDENCIES): Disable downloading dependencies upon analyzing source code.
  • --tests-path=: Overwrites the path where test files are placed into.
  • --test-generation-solver-timeout= (SYMFLOWER_TEST_GENERATION_SOLVER_TIMEOUT): Overwrites the default timeout in seconds for how long each solver call can run during the generation of test inputs. (default: 10)
  • --test-generation-timeout= (SYMFLOWER_TEST_GENERATION_TIMEOUT): Overwrites the default timeout in seconds for the execution time for generating test inputs for one function. (default: 60)
  • --java-test-framework=[automatic|JUnit4|JUnit5] (SYMFLOWER_TEST_GENERATION_TEST_FRAMEWORK_JAVA): Test framework for generating Java unit tests. (default: automatic)
  • --test-style=[basic|table-driven-symflower] (SYMFLOWER_TEST_GENERATION_TEST_STYLE): Style of the generated unit tests. (default: table-driven-symflower)

unit-tests command arguments

These are the options that are not passed via flags, but via positional arguments.

  • filters: Limit the analysis to files and functions that match one of the filter patterns. Each filter is of the form <file-pattern>[::<function-regex>]. If no filters are defined, all files and functions are analyzed.