Configuring Symflower CLI
This page describes how to configure Symflower 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.
- migrate: Run code migrations.
- 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 smart test templates. (alias:- uts)
- unit-tests: Generate test suites. (default command) (alias:- ut)
- update: Download and install the latest version of Symflower.
- version: Print the version of Symflower. (alias:- v)
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.