test extract
[Plumbing] Build a dataset for a test directory.
Who can use this feature?
CodeQL is available for the following repository types:
- Public repositories on GitHub.com, seeGitHub CodeQL Terms and Conditions
- Organization-owned repositories on GitHub Team withGitHub Code Security enabled
In this article
Note
This content describes the most recent release of the CodeQL CLI. For more information about this release, seehttps://github.com/github/codeql-cli-binaries/releases.
To see details of the options available for this command in an earlier release, run the command with the--help
option in your terminal.
Synopsis
codeql test extract [--source-root=<dir>] <options>... -- <testDirectory>
codeql test extract [--source-root=<dir>] <options>... -- <testDirectory>
Description
[Plumbing] Build a dataset for a test directory.
Build a database for a specified test directory, without actuallyrunning any test queries. Outputs the path to the raw QL dataset toexecute test queries against.
Options
Primary Options
<testDirectory>
[Mandatory] The path to the test directory.
--database=<dir>
Override the location of the database being created. By default it willbe a subdirectory whose name is derived from the name of the testdirectory itself with '.testproj' appended.
-s, --source-root=<dir>
[Advanced] The root source code directory, if different from the testdirectory.
--search-path=<dir>[:<dir>...]
A list of directories under which extractor packs may be found. Thedirectories can either be the extractor packs themselves or directoriesthat contain extractors as immediate subdirectories.
If the path contains multiple directory trees, their order definesprecedence between them: if the target language is matched in more thanone of the directory trees, the one given first wins.
The extractors bundled with the CodeQL toolchain itself will always befound, but if you need to use separately distributed extractors you needto give this option (or, better yet, set up--search-path
in aper-user configuration file).
(Note: On Windows the path separator is;
).
--cleanup
Remove the test database instead of creating it.
--[no-]show-extractor-output
[Advanced] Show the output from extractor scripts that create testdatabases. This can be useful while developing or editing test cases.Beware that it can cause duplicated or malformed output if you use thiswith multiple threads!
--[no-]check-undefined-labels
[Advanced] Report errors for undefined labels.
--[no-]check-unused-labels
[Advanced] Report errors for unused labels.
--[no-]check-repeated-labels
[Advanced] Report errors for repeated labels.
--[no-]check-redefined-labels
[Advanced] Report errors for redefined labels.
--[no-]check-use-before-definition
[Advanced] Report errors for labels used before they're defined.
--[no-]fail-on-trap-errors
[Advanced] Exit non-zero if an error occurs during trap import.
--[no-]include-location-in-star
[Advanced] Construct entity IDs that encode the location in the TRAPfile they came from. Can be useful for debugging of TRAP generators, buttakes up a lot of space in the dataset.
--[no-]linkage-aware-import
[Advanced] Controls whethercodeql dataset import is linkage-aware(default) or not. On projects where this part of database creationconsumes too much memory, disabling this option may help them progressat the expense of database completeness.
Available sincev2.15.3
.
--format=<fmt>
Select output format, eithertext
(default) orjson
.
Common options
-h, --help
Show this help text.
-J=<opt>
[Advanced] Give option to the JVM running the command.
(Beware that options containing spaces will not be handled correctly.)
-v, --verbose
Incrementally increase the number of progress messages printed.
-q, --quiet
Incrementally decrease the number of progress messages printed.
--verbosity=<level>
[Advanced] Explicitly set the verbosity level to one of errors,warnings, progress, progress+, progress++, progress+++. Overrides-v
and-q
.
--logdir=<dir>
[Advanced] Write detailed logs to one or more files in the givendirectory, with generated names that include timestamps and the name ofthe running subcommand.
(To write a log file with a name you have full control over, insteadgive--log-to-stderr
and redirect stderr as desired.)
--common-caches=<dir>
[Advanced] Controls the location of cached data on disk that willpersist between several runs of the CLI, such as downloaded QL packs andcompiled query plans. If not set explicitly, this defaults to adirectory named.codeql
in the user's home directory; it will becreated if it doesn't already exist.
Available sincev2.15.2
.