App::Y...::stop(3pm)
๐ App::Y...::stop(3pm) ๐
User Contributed Perl Documentation ยท App::Y...::stop(3pm) ยท yes bestie, that's the manual name, she's a little mysterious but she's valid ๐
๐ฆ NAME ๐ฆ
App::Yath::Command::stop โ Stop the persistent test runner ๐
๐ DESCRIPTION ๐
okay so, real talk? This command will stop a persistent instance, and output any log contents. That's it. That's the whole job. She stops the thing, she shows you the logs, she leaves. main character energy, no notes โจ
๐ธ USAGE ๐ธ
$ yath [YATH OPTIONS] stop [COMMAND OPTIONS]
โจ YATH OPTIONS โจ
the global vibes. these apply to yath itself, not just to stop.
๐ Developer
--dev-lib,--dev-lib=lib,-D,-D=lib,-Dlib,--no-dev-libโ adds paths to@INCbefore loading ANYTHING. This is what you reach for if you're developing yath or yath plugins, so the yath script finds your local code instead of the installed versions of that exact same code. You can hand it an argument (-Dfoo) for a custom path, or just do-Dwith no arg and it addslib,blib/libandblib/arch. Can be specified multiple times ๐
๐ธ Environment
--persist-dir ARG,--persist-dir=ARG,--no-persist-dirโ where to find persistence files ๐--persist-file ARG,--persist-file=ARG,--pfile ARG,--pfile=ARG,--no-persist-fileโ where to find the persistence file. The default is/{system-tempdir}/project-yath-persist.json. If no project is specified then it will fall back to the current directory. And if the current directory is not writable it will default to/tmp/yath-persist.json, which limits you to one persistent runner on your system ๐ซ--project ARG,--project=ARG,--project-name ARG,--project-name=ARG,--no-projectโ this lets you provide a label for your current project/codebase. Best used in a.yath.rcfile. This is necessary for a persistent runner ๐ท๏ธ
๐ Finder Options
--finder MyFinder,--finder +Test2::Harness::Finder::MyFinder,--no-finderโ specify what Finder subclass to use when searching for files / processing the file list. Use the+prefix to specify a fully qualified namespace, otherwise theTest2::Harness::Finder::XXXnamespace is assumed ๐ต๏ธ
๐ Help and Debugging
--show-opts,--no-show-optsโ exit after showing what yath thinks your options mean ๐--version,-V,--no-versionโ exit after showing a helpful usage message ๐
๐ง Plugins
--no-scan-plugins,--no-no-scan-pluginsโ normally yath scans for and loads allApp::Yath::Plugin::*modules so it can bring in whatever command-line options they provide. This flag disables that. Super useful if you have a naughty plugin that is loading other modules when it should not ๐--plugins PLUGIN,--plugins +App::Yath::Plugin::PLUGIN,--plugins PLUGIN=arg1,arg2,...,--plugin PLUGIN,--plugin +App::Yath::Plugin::PLUGIN,--plugin PLUGIN=arg1,arg2,...,-pPLUGIN,--no-pluginsโ load a yath plugin ๐งฉ Can be specified multiple times.
๐ COMMAND OPTIONS ๐
๐ Cover Options
--cover-aggregator ByTest,--cover-aggregator ByRun,--cover-aggregator +Custom::Aggregator,--cover-agg ByTest,--cover-agg ByRun,--cover-agg +Custom::Aggregator,--no-cover-aggregatorโ choose a custom aggregator subclass ๐งฎ--cover-class ARG,--cover-class=ARG,--no-cover-classโ choose aTest2::Plugin::Coversubclass ๐จ--cover-dirs ARG,--cover-dirs=ARG,--cover-dir ARG,--cover-dir=ARG,--no-cover-dirsโ NO DESCRIPTION - FIX ME ๐ญ (that's literally what the docs say, I'm not gonna invent a meaning for you). Can be specified multiple times.--cover-exclude-private,--no-cover-exclude-private,--cover-files,--no-cover-filesโ useTest2::Plugin::Coverto collect coverage data for what files are touched by what tests. UnlikeDevel::Coverthis has very little performance impact (About 4% difference) โก--cover-from path/to/log.jsonl,--cover-from http://example.com/coverage,--cover-from path/to/coverage.jsonl,--no-cover-fromโ this can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of the previous. Tests will not be run if the file/url is invalid ๐ซ--cover-from-type json,--cover-from-type jsonl,--cover-from-type log,--no-cover-from-typeโ file type for coverage source. Usually it can be detected, but when it cannot be you should specify."json"is old style single-blob coverage data,"jsonl"is the new by-test style,"log"is a logfile from a previous run ๐--cover-manager My::Coverage::Manager,--no-cover-managerโ coverage 'from' manager to use when coverage data does not provide one ๐ง๐ผ--cover-maybe-from path/to/log.jsonl,--cover-maybe-from http://example.com/coverage,--cover-maybe-from path/to/coverage.jsonl,--no-cover-maybe-fromโ this can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of the previous. Tests will coninue if even if the coverage file/url is invalid ๐ซถ--cover-maybe-from-type json,--cover-maybe-from-type jsonl,--cover-maybe-from-type log,--no-cover-maybe-from-typeโ same asfrom_typebut formaybe_from. Defaults tofrom_typeif that is specified, otherwise auto-detect ๐--cover-metrics,--no-cover-metrics,--cover-types ARG,--cover-types=ARG,--cover-type ARG,--cover-type=ARG,--no-cover-typesโ NO DESCRIPTION - FIX ME ๐ญ again, that's the literal doc, I'm being honest with you. Can be specified multiple times.--cover-write,--cover-write=coverage.jsonl,--cover-write=coverage.json,--no-cover-writeโ create a json or jsonl file of all coverage data seen during the run (This implies--cover-files) ๐
๐ Display Options
--color,--no-colorโ turn color on, default is true if STDOUT is a TTY ๐--hide-runner-output,--no-hide-runner-outputโ hide output from the runner, showing only test output. (See Alsotruncate_runner_output) ๐คซ--no-final-table,--no-no-final-tableโ when printing final results, don't use table-style display ๐--no-wrap,--no-no-wrapโ do not do fancy text-wrapping, let the terminal handle it ๐--progress,--no-progressโ toggle progress indicators. On by default if STDOUT is a TTY. You can use--no-progressto disable the 'events seen' counter and buffered event pre-display โณ--quiet,-q,--no-quietโ be very quiet ๐ค Can be specified multiple times.--renderers +My::Renderer,--renderers Renderer=arg1,arg2,...,--renderer +My::Renderer,--renderer Renderer=arg1,arg2,...,--no-renderersโ specify renderers, (Default:Formatter=Test2). Use+to give a fully qualified module name. Without+,Test2::Harness::Renderer::will be prepended to your argument. Can be specified multiple times. If the same key is listed multiple times the value lists will be appended together ๐งต--show-times,-T,--no-show-timesโ show the timing data for each job โฑ๏ธ--term-width 80,--term-width 200,--term-size 80,--term-size 200,--no-term-widthโ alternative to setting$TABLE_TERM_SIZE. Setting this will override the terminal width detection to the number of characters specified ๐--truncate-runner-output,--no-truncate-runner-outputโ only show runner output that was generated after the current command. This is only useful with a persistent runner โ๏ธ--verbose,-v,--no-verboseโ be more verbose ๐ฃ๏ธ Can be specified multiple times.
๐ Finder Options
--changed path/to/file,--no-changedโ specify one or more files as having been changed ๐ Can be specified multiple times.--changed-only,--no-changed-onlyโ only search for tests for changed files (Requires a coverage data source, also requires a list of changes either from the--changedoption, or a plugin that implementschanged_files()orchanged_diff()) ๐ฏ--changes-diff path/to/diff.diff,--no-changes-diffโ path to a diff file that should be used to find changed files for use with--changed-only. This must be in the same format asgit diff -W --minimal -U1000000๐งพ--changes-exclude-file path/to/file,--no-changes-exclude-fileโ specify one or more files to ignore when looking at changes ๐ฎ Can be specified multiple times.--changes-exclude-loads,--no-changes-exclude-loadsโ exclude coverage tests which only load changed files, but never call code from them. (default: off) ๐ฆ--changes-exclude-nonsub,--no-changes-exclude-nonsubโ exclude changes outside of subroutines (perl files only) (default: off) ๐--changes-exclude-opens,--no-changes-exclude-opensโ exclude coverage tests which only open() changed files, but never call code from them. (default: off) ๐ช--changes-exclude-pattern '(apple|pear|orange)',--no-changes-exclude-patternโ ignore files matching this pattern when looking for changes. Your pattern will be inserted unmodified into a$file =~ m/$pattern/check ๐ Can be specified multiple times.--changes-filter-file path/to/file,--no-changes-filter-fileโ specify one or more files to check for changes. Changes to other files will be ignored ๐ฌ Can be specified multiple times.--changes-filter-pattern '(apple|pear|orange)',--no-changes-filter-patternโ specify a pattern for change checking. When only running tests for changed files this will limit which files are checked for changes. Only files that match this pattern will be checked. Your pattern will be inserted unmodified into a$file =~ m/$pattern/check ๐ Can be specified multiple times.--changes-include-whitespace,--no-changes-include-whitespaceโ include changed lines that are whitespace only (default: off) ๐ฌ๏ธ--changes-plugin Git,--changes-plugin +App::Yath::Plugin::Git,--no-changes-pluginโ what plugin should be used to detect changed files ๐ง--default-at-search ARG,--default-at-search=ARG,--no-default-at-searchโ specify the default file/dir search when 'AUTHOR_TESTING' is set. Defaults to./xt. The default AT search is only used if no files were specified at the command line ๐ Can be specified multiple times.--default-search ARG,--default-search=ARG,--no-default-searchโ specify the default file/dir search. defaults to./t,./t2, andtest.pl. The default search is only used if no files were specified at the command line ๐ Can be specified multiple times.
--durations file.json,--durations http://example.com/durations.json,--no-durationsโ Point at a json file or a url that's got a hash where the keys are relative test filenames and the values are'SHORT','MEDIUM', or'LONG'. This overrides the durations that are listed in the file headers. Heads up though: if the durations file or url doesn't work, an exception gets thrown. No silent fails, bestie. ๐--durations-threshold ARG,--durations-threshold=ARG,--Dt ARG,--Dt=ARG,--no-durations-thresholdโ Only go fetch the duration data if you're running at least this many tests. Default is (-j value + 1). โจ--exclude-file t/nope.t,--no-exclude-fileโ Exclude a file from testing. ๐ซ- Can be specified multiple times
--exclude-list file.txt,--exclude-list http://example.com/exclusions.txt,--no-exclude-listโ Point at a file or url which has a new-line-separated list of test file names to leave out of testing. If a line starts with a#it gets commented out (that's for compatibility withTest2::Aggregatelist files, iykyk). ๐- Can be specified multiple times
--exclude-pattern t/nope.t,--no-exclude-patternโ Exclude a pattern from testing โ it gets matched usingm/$PATTERN/. ๐- Can be specified multiple times
--extension ARG,--extension=ARG,--ext ARG,--ext=ARG,--no-extensionโ Tell it which test filename extensions are valid. Default:tandt2. ๐ธ- Can be specified multiple times
--maybe-durations file.json,--maybe-durations http://example.com/durations.json,--no-maybe-durationsโ Point at a json file or url with a hash of relative test filenames as keys and'SHORT','MEDIUM', or'LONG'as values. This overrides the durations listed in the file headers. And same as above: an exception will be thrown if the durations file or url does not work. ๐ฆ--no-long,--no-no-longโ Do not run tests that have their duration flag set to'LONG'. periodt.--only-long,--no-only-longโ Only run tests that have their duration flag set to'LONG'. ๐--rerun,--rerun=path/to/log.jsonl,--rerun=plugin_specific_string,--no-rerunโ Re-run tests from a previous run, pulled from a log file (or the last log file). Plugins can intercept this โ likeYathUIDB, which will grab a run UUID and derive the tests to re-run from that. ๐ฅ--rerun-all,--rerun-all=path/to/log.jsonl,--rerun-all=plugin_specific_string,--no-rerun-allโ Re-run all the tests from a previous run, from a log file (or the last log file). Plugins can intercept this too, such asYathUIDB, which grabs a run UUID and derives the tests to re-run from that. โจ--rerun-failed,--rerun-failed=path/to/log.jsonl,--rerun-failed=plugin_specific_string,--no-rerun-failedโ Re-run the failed tests from a previous run, from a log file (or the last log file). Again, plugins likeYathUIDBcan intercept this โ they'll grab a run UUID and derive the tests to re-run from it. ๐ญ--rerun-missed,--rerun-missed=path/to/log.jsonl,--rerun-missed=plugin_specific_string,--no-rerun-missedโ Run the tests that got missed from a previously aborted/stopped run, from a log file (or the last log file). Plugins can intercept โ likeYathUIDB, which grabs a run UUID and derives the tests to re-run from that. ๐--rerun-modes failed,missed,...,--rerun-modes all,--rerun-modes failed,--rerun-modes missed,--rerun-modes passed,--rerun-modes retried,--rerun-mode failed,missed,...,--rerun-mode all,--rerun-mode failed,--rerun-mode missed,--rerun-mode passed,--rerun-mode retried,--no-rerun-modesโ Pick which test categories to run. ๐ฏ- Can be specified multiple times
--rerun-passed,--rerun-passed=path/to/log.jsonl,--rerun-passed=plugin_specific_string,--no-rerun-passedโ Re-run the passed tests from a previous run, from a log file (or the last log file). Plugins can intercept, such asYathUIDB, which grabs a run UUID and derives the tests to re-run from that. ๐--rerun-plugin Foo,--rerun-plugin +App::Yath::Plugin::Foo,--no-rerun-pluginโ Which plugin(s) should be used for rerun. It'll fall back to other plugins if the ones you listed decline the value โ this is just used to set an order of priority. ๐- Can be specified multiple times
--rerun-retried,--rerun-retried=path/to/log.jsonl,--rerun-retried=plugin_specific_string,--no-rerun-retriedโ Re-run the retried tests from a previous run, from a log file (or the last log file). Plugins can intercept this โ likeYathUIDB, grabbing a run UUID and deriving the tests to re-run from that. ๐ซถ--search ARG,--search=ARG,--no-searchโ A list of tests and test directories to use instead of the default search paths. Usually you can just list these as plain command line arguments without the--searchprefix. ๐- Can be specified multiple times
--show-changed-files,--no-show-changed-filesโ Print a list of the changed files, if any are found. ๐
๐ Formatter Options ๐
--formatter ARG,--formatter=ARG,--no-formatterโNO DESCRIPTION - FIX ME๐ญ (yes really, that's literally what it says, not me being lazy)--qvf,--no-qvfโ[Q]uiet, but[V]erboseon[F]ailure. Hide all output from tests when they pass โ except to say they passed. But if a test fails, then ALL the output from that test gets verbosely output. best of both worlds fr fr. ๐--show-job-end,--no-show-job-endโ Show output when a job ends. (Default: on)--show-job-info,--no-show-job-infoโ Show the job configuration when a job starts. (Default: off, unless-vv)--show-job-launch,--no-show-job-launchโ Show output for the start of a job. (Default: off unless-v)--show-run-info,--no-show-run-infoโ Show the run configuration when a run starts. (Default: off, unless-vv)
๐ธ Git Options ๐ธ
--git-change-base master,--git-change-base HEAD^,--git-change-base df22abe4,--no-git-change-baseโ Find the files changed by all the commits in the current branch from most recent, stopping when a commit is found that's also present in the history of the branch/commit you specified as the change base. ๐ง
๐ Help and Debugging ๐
--dummy,-d,--no-dummyโ Dummy run โ do not actually execute anything. ๐- Can also be set with the following environment variables:
T2_HARNESS_DUMMY
- Can also be set with the following environment variables:
--help,-h,--no-helpโ exit after showing help information.--interactive,-i,--no-interactiveโ Use interactive mode, 1 test at a time, stdin forwarded to it. ๐ฎ--keep-dirs,--keep_dir,-k,--no-keep-dirsโ Do not delete directories when done. Super useful if you wanna go inspect the directories used for various commands. ๐--procname-prefix ARG,--procname-prefix=ARG,--no-procname-prefixโ Add a prefix to all proc names (as seen byps). ๐ท๏ธ--summary,--summary=/path/to/summary.json,--no-summaryโ Write out a summary json file. If no path is provided then'summary.json'gets used. The.jsonextension is added automatically if you omit it. ๐
๐ Logging Options ๐
--bzip2,--bz2,--bzip2_log,-B,--no-bzip2โ Usebzip2compression when writing the log. This option implies-L. The.bz2prefix is added to the log file name for you. ๐๏ธ--gzip,--gz,--gzip_log,-G,--no-gzipโ Usegzipcompression when writing the log. This option implies-L. The.gzprefix is added to the log file name for you. ๐๏ธ--log,-L,--no-logโ Turn on logging. ๐--log-dir ARG,--log-dir=ARG,--no-log-dirโ Specify a log directory. Will fall back to the system temp dir.--log-file ARG,--log-file=ARG,-F ARG,-F=ARG,--no-log-fileโ Specify the name of the log file. This option implies-L. ๐--log-file-format ARG,--log-file-format=ARG,--lff ARG,--lff=ARG,--no-log-file-formatโ Specify the format for the automatically-generated log files. Overridden by--log-file, if given. This option implies-L. Default:$YATH_LOG_FILE_FORMAT, if that's set, or else"%!P%Y-%m-%d~%H:%M:%S~%!U~%!p.jsonl". This is a string where percent-escape sequences get replaced as perPOSIX::strftime. There are also these special escape sequences that get replaced:(%!P : Project name followed by a ~, if a project is defined, otherwise empty string)(%!U : the unique test run ID)(%!p : the process ID)(%!S : the number of seconds since local midnight UTC)- Can also be set with the following environment variables:
YATH_LOG_FILE_FORMAT,TEST2_HARNESS_LOG_FORMAT
๐ฆ Notification Options ๐ฆ
--notify-email foo@example.com,--no-notify-emailโ Email the test results to the specified email address(es). ๐ง- Can be specified multiple times
--notify-email-fail foo@example.com,--no-notify-email-failโ Email the failing results to the specified email address(es). ๐ญ- Can be specified multiple times
--notify-email-from foo@example.com,--no-notify-email-fromโ If any email gets sent, this is who it'll be from. โ๏ธ--notify-email-owner,--no-notify-email-ownerโ Email the owner of the broken test files upon failure. Add`# HARNESS-META-OWNER foo@example.com`to the top of a test file to give it an owner. ๐ค--notify-no-batch-email,--no-notify-no-batch-emailโ Usually owner failures are sent as a single batch at the end of testing. Toggle this to send the failures as they happen. โก--notify-no-batch-slack,--no-notify-no-batch-slackโ Usually owner failures are sent as a single batch at the end of testing. Toggle this to send the failures as they happen. โก--notify-slack '#foo',--notify-slack '@bar',--no-notify-slackโ Send results to a slack channel and/or user. ๐ฌ- Can be specified multiple times
--notify-slack-fail '#foo',--notify-slack-fail '@bar',--no-notify-slack-failโ Send the failing results to a slack channel and/or user. ๐ฌ- Can be specified multiple times
--notify-slack-owner,--no-notify-slack-ownerโ Send slack notifications to the slack channels/users listed in the test meta-data when tests fail. ๐ข--notify-slack-url https://hooks.slack.com/...,--no-notify-slack-urlโ Specify an API endpoint for slack webhook integrations. ๐--notify-text ARG,--notify-text=ARG,--message ARG,--message=ARG,--msg ARG,--msg=ARG,--no-notify-textโ Add a custom text snippet to your email/slack notifications. โ๏ธ--notify-text-module ARG,--notify-text-module=ARG,--message_module ARG,--message_module=ARG,--no-notify-text-moduleโ Use the specified module to generate messages for emails and/or slack. ๐งฉ
โญ Run Options โญ
--author-testing,-A,--no-author-testingโ flips theAUTHOR_TESTINGenvironment variable to true. bestie your author tests are getting RUN. ๐--dbi-profiling,--no-dbi-profilingโ pulls inTest2::Plugin::DBIProfileto gather database profiling data. we're profiling the db, no cap ๐--env-var VAR=VAL,-EVAR=VAL,-E VAR=VAL,--no-env-varโ sets environment variables that get set when each test runs.
Can be specified multiple times โจ
--event-uuids,--uuids,--no-event-uuidsโ usesTest2::Plugin::UUIDinside tests (default: on). literally every event gets its own little serial number ๐--fields name:details,--fields JSON_STRING,-f name:details,-f JSON_STRING,--no-fieldsโ adds custom data to the harness run.
Can be specified multiple times ๐
--input ARG,--input=ARG,--no-inputโ an input string used as standard input for ALL the tests. see also:--input-file๐--input-file ARG,--input-file=ARG,--no-input-fileโ uses the file you name as standard input to ALL the tests ๐--io-events,--no-io-eventsโ usesTest2::Plugin::IOEventsinside tests so that everyprintbecomes a test2 event (default: off). turning prints into events is lowkey iconic ๐ฆ--link 'https://travis.work/builds/42',--link 'https://jenkins.work/job/42',--link 'https://buildbot.work/builders/foo/builds/42',--no-linkโ give one or more links that people can follow to see more about this run.
Can be specified multiple times ๐
--load ARG,--load=ARG,--load-module ARG,--load-module=ARG,-m ARG,-m=ARG,--no-loadโ loads a module in each test (after fork). theimportmethod does not get called.
Can be specified multiple times ๐ง
--load-import Module,--load-import Module=import_arg1,arg2,...,--loadim Module,--loadim Module=import_arg1,arg2,...,-M Module,-M Module=import_arg1,arg2,...,--no-load-importโ loads a module in each test (after fork). here, import is called.
Can be specified multiple times. If the same key is listed multiple times the value lists will be appended together. ๐
--mem-usage,--no-mem-usageโ usesTest2::Plugin::MemUsageinside tests (default: on). watching the memory go brrr ๐--retry ARG,--retry=ARG,-r ARG,-r=ARG,--no-retryโ reruns any jobs that failed, a second time. NOTE:--retry=1means failing tests will be attempted twice! not me double-checking the math on that one ๐ญ--retry-isolated,--retry-iso,--no-retry-isolatedโ if true, then any job retries get done in isolation (as though-j1was set).--run-id,--id,--no-run-idโ sets a specific run-id. (Default: a UUID)--test-args ARG,--test-args=ARG,--no-test-argsโ arguments to pass in as@ARGVfor all the tests that run. these are easier to provide using the::argument separator.
Can be specified multiple times โญ
--stream,--no-streamโ uses the stream formatter (default is on) ๐--tap,--TAP,----no-stream,--no-tapโ the TAP format is lossy and clunky.Test2::Harnessnormally uses a newer streaming format to receive test results. there are old/legacy tests where this causes problems, and in that case setting--TAPor--no-streamcan help. ๐ซถ
๐ธ YathUI Options ๐ธ
--yathui-api-key ARG,--yathui-api-key=ARG,--no-yathui-api-keyโ yath-ui API key. this is not necessary if your yath-ui instance is set to single-user ๐--yathui-coverage,--no-yathui-coverageโ polls coverage data from yath-ui to figure out what tests should be run for the files that changed.--yathui-durations,--no-yathui-durationsโ polls duration data from yath-ui to help order tests efficiently โฑ๏ธ--yathui-grace,--no-yathui-graceโ normally, if yath cannot connect to yath-ui it throws an error. use this to make it fail gracefully. you get a warning, but things keep going. we love a soft landing ๐--yathui-long-duration 10,--no-yathui-long-durationโ minimum duration length (seconds) before a test goes from MEDIUM to LONG.--yathui-medium-duration 5,--no-yathui-medium-durationโ minimum duration length (seconds) before a test goes from SHORT to MEDIUM.--yathui-mode summary,--yathui-mode qvf,--yathui-mode qvfd,--yathui-mode complete,--no-yathui-modeโ sets the upload mode (default'qvfd') ๐--yathui-project ARG,--yathui-project=ARG,--no-yathui-projectโ the yath-ui project for your test results.--yathui-retry,--no-yathui-retryโ how many times to try an operation before giving up.
Can be specified multiple times ๐
--yathui-upload,--no-yathui-uploadโ uploads the log to yath-ui.--yathui-url http://my-yath-ui.com/...,--uri http://my-yath-ui.com/...,--no-yathui-urlโ yath-ui url ๐
๐ NO CATEGORY - FIX ME ๐
--check-reload-state,--no-check-reload-stateโ aborts the run if there are unfixed reload errors, and shows a confirmation dialogue for unfixed reload warnings. (yes bestie the section heading really does say fix me, we're all just living like this ๐)
๐ SOURCE ๐
the source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/. go star it, it's giving main character energy ๐
๐ซถ MAINTAINERS ๐ซถ
Chad Granum <exodist@cpan.org>
โจ AUTHORS โจ
Chad Granum <exodist@cpan.org>
๐ COPYRIGHT ๐
Copyright 2026 Chad Granum <exodist7@gmail.com>.
this program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://dev.perl.org/licenses/
and that's a wrap on this gorgeous little manpage, fr fr ๐ this wasperl v5.40.1, dated2026-05-10โ stan the version, stan the date, and go run your tests bestie ๐ธ๐โจ
๐ฆ where this page comes from
- ubuntu stonking: libtest2-harness-perl 1.000172-1 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms