# GENERATED BY: test/outdated/outdated_test.dart

## Section 0
$ pub outdated random_argument
[STDERR] Command "outdated" does not take any arguments.
[STDERR] 
[STDERR] Usage: pub outdated [options]
[STDERR] -h, --help                         Print this usage information.
[STDERR]     --[no-]dependency-overrides    Show resolutions with `dependency_overrides`.
[STDERR]                                    (defaults to on)
[STDERR]     --[no-]dev-dependencies        Take dev dependencies into account.
[STDERR]                                    (defaults to on)
[STDERR]     --json                         Output the results using a json format.
[STDERR]     --mode=<PROPERTY>              Highlight versions with PROPERTY.
[STDERR]                                    Only packages currently missing that PROPERTY
[STDERR]                                    will be included unless --show-all.
[STDERR]                                    [outdated (default), null-safety]
[STDERR]     --[no-]prereleases             Include prereleases in latest version.
[STDERR]                                    (defaults to on in --mode=null-safety).
[STDERR]     --[no-]show-all                Include dependencies that are already
[STDERR]                                    fullfilling --mode.
[STDERR]     --[no-]transitive              Show transitive dependencies.
[STDERR]                                    (defaults to off in --mode=null-safety).
[STDERR] -C, --directory=<dir>              Run this in the directory<dir>.
[STDERR] 
[STDERR] Run "pub help" to see global options.
[STDERR] See https://dart.dev/tools/pub/cmd/pub-outdated for detailed documentation.
[EXIT CODE] 64

-------------------------------- END OF OUTPUT ---------------------------------

## Section 1
$ pub outdated --bad_flag
[STDERR] Could not find an option named "bad_flag".
[STDERR] 
[STDERR] Usage: pub outdated [options]
[STDERR] -h, --help                         Print this usage information.
[STDERR]     --[no-]dependency-overrides    Show resolutions with `dependency_overrides`.
[STDERR]                                    (defaults to on)
[STDERR]     --[no-]dev-dependencies        Take dev dependencies into account.
[STDERR]                                    (defaults to on)
[STDERR]     --json                         Output the results using a json format.
[STDERR]     --mode=<PROPERTY>              Highlight versions with PROPERTY.
[STDERR]                                    Only packages currently missing that PROPERTY
[STDERR]                                    will be included unless --show-all.
[STDERR]                                    [outdated (default), null-safety]
[STDERR]     --[no-]prereleases             Include prereleases in latest version.
[STDERR]                                    (defaults to on in --mode=null-safety).
[STDERR]     --[no-]show-all                Include dependencies that are already
[STDERR]                                    fullfilling --mode.
[STDERR]     --[no-]transitive              Show transitive dependencies.
[STDERR]                                    (defaults to off in --mode=null-safety).
[STDERR] -C, --directory=<dir>              Run this in the directory<dir>.
[STDERR] 
[STDERR] Run "pub help" to see global options.
[STDERR] See https://dart.dev/tools/pub/cmd/pub-outdated for detailed documentation.
[EXIT CODE] 64

