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.