App::Y...::kill(3pm)
๐ App::Y...::kill ๐
okay bestie, welcome to the manual page for App::Y...::kill(3pm) โ straight out of the User Contributed Perl Documentation, and it is exactly what it sounds like. it kills things. slay. ๐ฉธโจ
๐ NAME ๐
App::Yath::Command::kill โ the yath command that kills the runner plus any tests that are currently running or just chilling in the pending queue. bye boo ๐
๐ฆ DESCRIPTION ๐ฆ
This command kills the active yath runner, and also any running or pending tests. that's the whole entire job description, no cap. one word and everything goes night-night ๐๐ค
โจ USAGE โจ
$ yath [YATH OPTIONS] kill [COMMAND OPTIONS]
๐ธ YATH OPTIONS ๐ธ
๐ฉโ๐ป Developer ๐ฉโ๐ป
--dev-lib,--dev-lib=lib,-D,-D=lib,-Dlib,--no-dev-libโ adds paths to@INCbefore loading ANYTHING. this is the one you reach for when you're developing yath or yath plugins and you need the yath script to find your local code instead of the installed versions of that same code. you can pass an argument (-Dfoo) to give it a custom path, or just rawdog-Dwith no argument and it'll addlib,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 it falls back to the current directory. and if the current directory is not writable it defaults to/tmp/yath-persist.json, which unfortunately limits you to one persistent runner on your whole system ๐ญ--project ARG,--project=ARG,--project-name ARG,--project-name=ARG,--no-projectโ lets you hand over a label for your current project/codebase. best used in a.yath.rcfile. and honestly? it's necessary for a persistent runner, so don't skip it ๐
๐ Finder Options ๐
--finder MyFinder,--finder +Test2::Harness::Finder::MyFinder,--no-finderโ picks which Finder subclass gets used when searching for files / processing the file list. use the+prefix to give a fully qualified namespace, otherwise theTest2::Harness::Finder::XXXnamespace is assumed.
๐ Help and Debugging ๐
--show-opts,--no-show-optsโ exits after showing you what yath thinks your options mean.--version,-V,--no-versionโ exits after showing a helpful usage message.
๐งฉ Plugins ๐งฉ
--no-scan-plugins,--no-no-scan-pluginsโ normally yath scans for and loads everyApp::Yath::Plugin::*module so it can bring in whatever command-line options they provide. this flag disables that whole operation. super useful if you've got a naughty plugin that's loading other modules when it absolutely should not be ๐--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โ loads 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โ chooses a custom aggregator subclass.--cover-class ARG,--cover-class=ARG,--no-cover-classโ chooses aTest2::Plugin::Coversubclass.--cover-dirs ARG,--cover-dirs=ARG,--cover-dir ARG,--cover-dir=ARG,--no-cover-dirsโ NO DESCRIPTION - FIX ME Can be specified multiple times. (yes the docs really say that, i'm just the messenger bestie ๐)--cover-exclude-private,--no-cover-exclude-private,--cover-files,--no-cover-filesโ usesTest2::Plugin::Coverto collect coverage data for what files get 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 pointing at 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 the coverage source. usually it can be detected, but when it can't you should specify.jsonis old style single-blob coverage data,jsonlis the new by-test style,logis a logfile from a previous run.--cover-manager My::Coverage::Manager,--no-cover-managerโ the coverage 'from' manager to use when the coverage data doesn't 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โ same deal as above, it can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of those. but this one keeps going even if the coverage file/url is invalid. resilient queen โจ--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's specified, otherwise it auto-detects.--cover-metrics,--no-cover-metrics,--cover-types ARG,--cover-types=ARG,--cover-type ARG,--cover-type=ARG,--no-cover-typesโ NO DESCRIPTION - FIX ME Can be specified multiple times.--cover-write,--cover-write=coverage.jsonl,--cover-write=coverage.json,--no-cover-writeโ creates a json or jsonl file of all the coverage data seen during the run (this implies--cover-files).
๐จ Display Options ๐จ
--color,--no-colorโ turns color on. default is true ifSTDOUTis a TTY. ๐--hide-runner-output,--no-hide-runner-outputโ hides 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 the table-style display.--no-wrap,--no-no-wrapโ doesn't do the fancy text-wrapping, lets the terminal handle it.--progress,--no-progressโ toggles progress indicators. on by default ifSTDOUTis a TTY. you can use--no-progressto disable the 'events seen' counter and the 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โ specifies renderers (default:Formatter=Test2). use+to give a fully qualified module name. without the+,Test2::Harness::Renderer::gets prepended to your argument. Can be specified multiple times. if the same key is listed multiple times the value lists get appended together.--show-times,-T,--no-show-timesโ shows 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 overrides the terminal width detection to the number of characters you specified.--truncate-runner-output,--no-truncate-runner-outputโ only shows 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โ specifies one or more files as having been changed. Can be specified multiple times.--changed-only,--no-changed-onlyโ only searches for tests for changed files. (requires a coverage data source, and 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โ specifies one or more files to ignore when looking at changes. Can be specified multiple times.--changes-exclude-loads,--no-changes-exclude-loadsโ excludes coverage tests which only load changed files but never actually call code from them. (default: off)--changes-exclude-nonsub,--no-changes-exclude-nonsubโ excludes changes outside of subroutines (perl files only). (default: off)--changes-exclude-opens,--no-changes-exclude-opensโ excludes coverage tests which onlyopen()changed files but never call code from them. (default: off)--changes-exclude-pattern '(apple|pear|orange)',--no-changes-exclude-patternโ ignores files matching this pattern when looking for changes. your pattern gets inserted unmodified into a$file =~ m/$pattern/check. Can be specified multiple times.--changes-filter-file path/to/file,--no-changes-filter-fileโ specifies 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โ specifies a pattern for change checking. when only running tests for changed files, this limits which files get checked for changes. only files matching this pattern get checked. your pattern gets inserted unmodified into a$file =~ m/$pattern/check. Can be specified multiple times.--changes-include-whitespace,--no-changes-include-whitespaceโ includes 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โ specifies 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โ specifies the default file/dir search. defaults to'./t','./t2', and'test.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โ bestie, point this at a json file or a url that holds a hash where the keys are relative test filenames and the values are'SHORT','MEDIUM', or'LONG'. This will โจoverrideโจ the durations listed in the file headers. If the durations file or url doesn't work, an exception will be thrown. No silent vibes here. ๐ค--durations-threshold ARG,--durations-threshold=ARG,--Dt ARG,--Dt=ARG,--no-durations-thresholdโ only go fetch duration data if you're running at least this many tests. Default is(-j value + 1). fr fr, small run = don't even bother checking. ๐--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 with a new-line-separated list of test file names to exclude from testing. Start a line with a#and it's commented out (for compatibility with Test2::Aggregate list files, periodt). ๐ Can be specified multiple times.--exclude-pattern t/nope.t,--no-exclude-patternโ exclude a pattern from testing, 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 which has a hash of relative test filenames as keys, and'SHORT','MEDIUM', or'LONG'as values. This will override durations listed in the file headers. An exception will be thrown if the durations file or url does not work. ๐ (okay so yes, the wording is literally identical to--durationsup there โ I'm not making that up, that's what the page says, and we do not edit the sacred text ๐)--no-long,--no-no-longโ do NOT run tests that have their duration flag set to'LONG'. bye long tests ๐--only-long,--no-only-longโ ONLY run tests that have their duration flag set to'LONG'. long test stans rise ๐ซถ--rerun,--rerun=path/to/log.jsonl,--rerun=plugin_specific_string,--no-rerunโ re-run tests from a previous run, from a log file (or the last log file). Plugins can intercept this โ for exampleYathUIDB, 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, likeYathUIDBgrabbing a run UUID and deriving 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). Plugins can intercept this, e.g.YathUIDBsnagging a run UUID and deriving 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 missed tests from a previously aborted/stopped run, from a log file (or the last log file). Plugins can intercept this โ you know the drill,YathUIDBgrabs a run UUID and derives 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 this, such asYathUIDB, which will grab a run UUID and derive 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 will fallback to other plugins if the listed ones 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, likeYathUIDBgrabbing 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. Typically you can just list these as plain command line arguments without the--searchprefix, iykyk. ๐ Can be specified multiple times.--show-changed-files,--no-show-changed-filesโ print a list of changed files if any are found. ๐
โจ Formatter Options โจ
--formatter ARG,--formatter=ARG,--no-formatterโNO DESCRIPTION - FIX ME. not me reading the manpage and the manpage says fix me ๐ญ that's literally what it says bestie, I can't invent lore.--qvf,--no-qvfโ[Q]uiet, but [V]erbose on [F]ailure. Hide ALL the output from tests when they pass, except to say they passed. If a test fails, then ALL the output from that test gets verbosely dumped out. ๐คซโก๏ธ๐ข--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 files changed by all the commits in the current branch, starting from the most recent and 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. Pretend mode, main character energy only. ๐ญ Can also be set with the following environment variables:T2_HARNESS_DUMMY--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,'summary.json'will be used. The.jsonextension is added automatically if you omit it. ๐ฆ
๐ Logging Options ๐
--bzip2,--bz2,--bzip2_log,-B,--no-bzip2โ use bzip2 compression 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โ use gzip compression 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. It'll 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 automatically-generated log files. Overridden by--log-file, if given. This option implies-L. Default:\$YATH_LOG_FILE_FORMAT, if that is set, or else"%!P%Y-%m-%d~%H:%M:%S~%!U~%!p.jsonl". This is a string in which percent-escape sequences will be replaced as perPOSIX::strftime. The following special escape sequences are also replaced too: (%!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 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 is sent, this is who it will be from. โ๏ธ--notify-email-owner,--no-notify-email-ownerโ email the owner of broken test files upon failure. Add# HARNESS-META-OWNER foo@example.comto 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 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 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 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 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 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. Author tests, we see you, we love you ๐--dbi-profiling,--no-dbi-profilingโ pulls inTest2::Plugin::DBIProfileso you get database profiling data. Query tea, served hot ๐--env-var VAR=VAL,-EVAR=VAL,-E VAR=VAL,--no-env-varโ sets environment variables that get set every time a test runs.
Can be specified multiple times ๐
--event-uuids,--uuids,--no-event-uuidsโ usesTest2::Plugin::UUIDinside the tests (default: on). Unique IDs for every event, so slay โจ--fields name:details,--fields JSON_STRING,-f name:details,-f JSON_STRING,--no-fieldsโ adds custom data to the harness run. Sprinkle your own metadata on top, it's giving garnish ๐
Can be specified multiple times ๐
--input ARG,--input=ARG,--no-inputโ a string that gets used as standard input for ALL tests. See also:--input-file.--input-file ARG,--input-file=ARG,--no-input-fileโ uses that file as standard input for ALL tests ๐--io-events,--no-io-eventsโ usesTest2::Plugin::IOEventsinside the tests to turn all prints into test2 events (default: off).--link 'https://travis.work/builds/42',--link 'https://jenkins.work/job/42',--link 'https://buildbot.work/builders/foo/builds/42',--no-linkโ hands people one or more links they can follow to learn more about this run. Go ahead and drop that build URL, bestie ๐
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 every test (after fork). Heads up though: theimportmethod is not 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 every test (after fork). And this time 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 the tests (default: on). Memory check, no cap ๐ง--retry ARG,--retry=ARG,-r ARG,-r=ARG,--no-retryโ runs any jobs that failed a second time. NOTE:--retry=1means failing tests will be attempted twice! Like, two whole times. Read that again bestie ๐ญ--retry-isolated,--retry-iso,--no-retry-isolatedโ if true, then any job retries get done in isolation (as though-j1was set). One at a time, very demure ๐--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 tests that are run. These can be provided easier 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โ okay so real talk: 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, in which 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 changed files ๐--yathui-durations,--no-yathui-durationsโ polls duration data from Yath-UI to help order the tests efficiently โฑ๏ธ--yathui-grace,--no-yathui-graceโ if yath cannot connect to yath-ui it normally throws an error; use this to make it fail gracefully. You get a warning, but things keep going ๐ซถ--yathui-long-duration 10,--no-yathui-long-durationโ the minimum duration length (seconds) before a test goes from MEDIUM to LONG--yathui-medium-duration 5,--no-yathui-medium-durationโ the 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 the section name is literally that, we're keeping it, iconic behavior honestly ๐
๐ฆ SOURCE ๐ฆ
The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/. Go star it, bestie โญ
๐ 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/
okay that's literally the whole page, you made it to the end, I'm so proud of you ๐ฅน๐ this one's living in perl v5.40.1, dated 2026-05-10, filed under App::Y...::kill(3pm) in the User Contributed Perl Documentation era โ touch grass, read a manpage, slay ๐
โจ
๐ฆ 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