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

--d-version=VALUE
    Define the specified `version` identifier when building - can be used multiple times. Use sparingly, with great power comes great responsibility! For commonly used or combined versions and versions that dependees should be able to use, create configurations in your package.

--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.

  COMMON OPTIONS
See dub(1)

EXIT STATUS
Forwards the exit code from dustmite(1)

FILES
dub.sdl, dub.json

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

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

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