DUB-DUSTMITE(1)

NAME
dub-dustmite - Create reduced test cases for build errors

SYNOPSIS
dub dustmite <destination-path> OPTIONS... [-- <application arguments...>]

DESCRIPTION
This command uses the Dustmite utility to isolate the cause of build errors in a DUB project. It will create a copy of all involved packages and run dustmite on this copy, leaving a reduced test case. Determining the desired error condition is done by checking the compiler/linker status code, as well as their output (stdout and stderr combined). If --program-status or --program-regex is given and the generated binary is an executable, it will be executed and its output will also be incorporated into the final decision.

OPTIONS

--compiler-status=VALUE
    The expected status code of the compiler run

--compiler-regex=VALUE
    A regular expression used to match against the compiler output

--linker-status=VALUE
    The expected status code of the linker run

--linker-regex=VALUE
    A regular expression used to match against the linker output

--program-status=VALUE
    The expected status code of the built executable

--program-regex=VALUE
    A regular expression used to match against the program output

--test-package=VALUE
    Perform a test run - usually only used internally

--combined
    Builds multiple packages with one compiler run

--no-redirect
    Don't redirect stdout/stderr streams of the test command

--strategy=VALUE
    Set strategy (careful/lookback/pingpong/indepth/inbreadth)

-j
    Set number of look-ahead processes

--trace
    Save all attempted reductions to DIR.trace

-b, --build=VALUE
    Specifies the type of build to perform. Note that setting the DFLAGS environment variable will override the build type with custom flags. Possible names:
      debug, plain, release, release-debug, release-nobounds, unittest, profile, profile-gc, docs, ddox, cov, cov-ctfe, unittest-cov, unittest-cov-ctfe, syntax and custom types

-c, --config=VALUE
    Builds the specified configuration. Configurations can be defined in dub.json

--override-config=VALUE
    Uses the specified configuration for a certain dependency. Can be specified multiple times. Format: --override-config=<dependency>/<config>

--compiler=VALUE
    Specifies the compiler binary to use (can be a path). Arbitrary pre- and suffixes to the identifiers below are recognized (e.g. ldc2 or dmd-2.063) and matched to the proper compiler type:
      dmd, gdc, ldc, gdmd, ldmd

-a, --arch=VALUE
    Force a different architecture (e.g. x86 or x86_64)

-d, --debug=VALUE
    Define the specified debug version identifier when building - can be used multiple times

--nodeps
    Do not resolve missing dependencies before building

--build-mode=VALUE
    Specifies the way the compiler and linker are invoked. Valid values:
      separate (default), allAtOnce, singleFile

--single
    Treats the package name as a filename. The file must contain a package recipe comment.

--force-remove
    Deprecated option that does nothing.

--filter-versions
    [Experimental] Filter version identifiers and debug version identifiers to improve build cache efficiency.

EXIT STATUS
Forwards the exit code from dustmite(1)

FILES
dub.sdl, dub.json

AUTHOR
Copyright (c) 1999-2023 by The D Language Foundation

ONLINE DOCUMENTATION
http://code.dlang.org/docs/commandline (http://code.dlang.org/docs/commandline)

SEE ALSO
dub(1), dub-lint(1), dub-test(1), dustmite(1)