Skip to main content

Accessing Symflower's settings in CLI

Type symflower --help for a full list of configuration options.

Symflower's configuration options in CLI

Available commands

  • fix: Fix errors in source code files.
  • help: Show help message. (alias: h)
  • language-server: Starts the LSP based language server. (alias: ls)
  • lint: Lint files.
  • run: Execute a program symbolically.
  • symbols: List symbols of files.
  • test: Executes tests symbolically.
  • test-runner: Executes tests.
  • trace: Analyze a trace file.
  • unit-test-skeletons: Generate test templates. (alias: uts)
  • unit-tests: Generate test suites (BETA). (default command) (alias: ut)
  • update: Download and install the latest version of Symflower.
  • version: Print the version of Symflower. (alias: v)

The following command line arguments (or environment variables) can be used to change the default behavior of Symflower.

General options

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.
  • --share-path= (SYMFLOWER_SHARE_PATH): Optional path to the share directory of the Symflower binary to store assets, caches and configurations.
  • --log-path= (SYMFLOWER_LOG_PATH): The file path to write logs to instead of printing them.

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, the symflower unit-tests generate test suites (BETA).

  • --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)

General options

  • --output=: Print all results in the given encoding. (go|json|none) (default: none)
  • --version: Print the version of this program.
  • --version-revision: Print the revision of this program.

Workspace options

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

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.