Changes for version 1.79_09 - 2023-04-29

  • (Abe Timmerman, Sat, 29 Apr 2023 15:14:46 +0200) Autocommit for distribution Test::Smoke 1.79_09 (same)

Changes for version 1.79_08 - 2022-10-20

  • (Abe Timmerman, Thu, 20 Oct 2022 14:48:13 +0200) Autocommit for distribution Test::Smoke 1.79_08 (same)
  • (Abe Timmerman, Thu, 27 Apr 2023 10:14:41 +0200) Change the default poster module to HTTP::Tiny
  • The default for config is HTTP::Tiny, but the "sane default" was
  • LWP::UserAgent, this is now also HTTP::Tiny.
  • (Abe Timmerman, Sat, 29 Apr 2023 11:43:52 +0200) tsrepostjsn.pl: add option to re-post a specific file
  • We now have a new option '--jsonreport' that lets one post a specific
  • file to the reports server.
  • Also fixed a bug for the case where no '--configfile' was specified and
  • the 'configfile_error' attribute didn't exist.
  • (Abe Timmerman, Sat, 29 Apr 2023 14:22:38 +0200) BUGFIX: https://github.com/abeltje/Test-Smoke/issues/74
  • Older 'curl' versions (before 7.68.0) needed the '--globoff' switch to
  • make the IPv6 syntax for [::1] work. We now check the version of curl to
  • see if we need to add the switch.
  • See also commit: f4b90b293a2e163f49b55fa2996a6368115e08b9
  • (Abe Timmerman, Sat, 29 Apr 2023 15:10:33 +0200) Add 'curlargs' to exceptions
  • New app-options should be excluded from the pod-coverage test, they are
  • not documented in POD.

Changes for version 1.79_07 - 2022-09-05

  • (Abe Timmerman, Mon, 5 Sep 2022 11:36:00 +0200) Autocommit for distribution Test::Smoke 1.79_07 (test)
  • (abeltje, Thu, 20 Oct 2022 14:01:17 +0200) Remove '--globoff' for curl
  • Some of the cpantesters (and my Ubuntu Jammy) failed the test for IPv6,
  • so I try to see if this has something to do with curl version.
  • (Abe Timmerman, Thu, 20 Oct 2022 14:25:06 +0200) Replace CGI::Util with URI::Escape
  • CGI::Util doesn't support escape/unescape officially, and as we already
  • had a dependency on URI it is better to use the supported
  • uri_escape/uri_unescape from URI::Escape.
  • (abeltje, Tue, 30 Aug 2022 12:53:27 +0200) Introduce the new tsconfigsmoke.pl
  • A reimplementation of configsmoke.pl as a Test::Smoke::App with the
  • existing options extended for configuration. Now App-Options are the
  • same as Config-Options.
  • (abeltje, Tue, 30 Aug 2022 12:55:05 +0200) More work on tsconfigsmoke.pl
  • (Abe Timmerman, Thu, 18 Aug 2022 17:09:39 +0200) Add the Mailer-config
  • Mail config is now also part of ConfigSmoke.
  • Fix a problem with the Scheduler:
  • - the grep rejected all existing cron lines
  • Fix a problem with false but defined default values in prompt().
  • Update the mail options with stuff for ConfigSmoke.

Changes for version 1.79_06 - 2022-08-30

  • (Abe Timmerman, Tue, 30 Aug 2022 13:37:30 +0200) Autocommit for distribution Test::Smoke 1.79_06 (test)
  • (Abe Timmerman, Thu, 1 Sep 2022 08:43:49 +0200) FIX: typo
  • -Duseithreads (e before a)
  • (Bram, Tue, 30 Aug 2022 22:13:13 +0200) Fix `Test::Smoke::Util::set_local_patch`
  • The `set_local_patch` function got 'broken' when the 'patchlevel.h'
  • in the perl5 repo got detabified (committed on 17 Jan 2021).
  • It no longer worked because the code was using: `/\t,NULL/`
  • That worked fine when the tabs were used for indentation but it
  • got silently broken when the tabs were replaces with spaces.
  • (Bram, Tue, 30 Aug 2022 23:02:54 +0200) Update 'patchlevel.h' file used in the test
  • This was using an old patchlevel.h file, update it to a more
  • recent version.
  • Also add xt/perl/git_version.h, this is used by xt/perl/patchlevel.h
  • and is needed for the compiling tests. (Without tests in xt/ fail.)
  • (Bram, Tue, 30 Aug 2022 23:08:10 +0200) Patch the patchlevel.h copy
  • Other test still expect the old format of patchlevel.h which
  • contains a patchnum... Even the number is important for the
  • tests...
  • So re-add the patchnum and remove 'uncommitted-changes' (the tests
  • can't deal with it..)
  • Another option would be to clean up the other tests but that is
  • a bigger task...
  • (Abe Timmerman, Thu, 1 Sep 2022 09:10:29 +0200) carp() when setting local patch fails
  • This code was silently broken for about 20 months because
  • patchlevel.h was detabified.
  • To avoid the same problem in the future: carp() when adding
  • the local patch to patchlevel.h fails we should keep an eye on the
  • logfiles.
  • (Abe Timmerman, Thu, 1 Sep 2022 13:40:47 +0200) Merge branch 'bram-perl-bram/windows-git-test-fixes'
  • (Abe Timmerman, Fri, 2 Sep 2022 11:53:18 +0200) Add USE_MINGW_ANSI_STDIO as default for Configure_win32()
  • https://github.com/Perl/perl5/issues/20214
  • I guess this is a case of "Doctor, it hurts when I do this...". We'll
  • just switch it on (it won't hurt MSVC and benefits gcc) and provide and
  • escape with `-UUSE_MINGW_ANSI_STDIO`. We should aim to build the best
  • possible Perl on Windows that we can imo.
  • (Abe Timmerman, Sun, 4 Sep 2022 20:48:14 +0200) New helper programme: tsrepostjsn.pl
  • Sometimes the reportserver isn't there or won't accept a report, now,
  • one can repost that report with this tool.
  • It can be interactive and will look in the archive directory (adir) for
  • the jsn files one wants to resend.
  • (Abe Timmerman, Mon, 5 Sep 2022 11:05:47 +0200) Also install the new tsrepostjsn.pl script
  • I forgot to put it in the EXE_FILES key for WriteMakefile().

Changes for version 1.79_05 - 2022-08-30

  • (Abe Timmerman, Tue, 30 Aug 2022 11:43:29 +0200) Autocommit for distribution Test::Smoke 1.79_05 (test)
  • (Abe Timmerman, Tue, 30 Aug 2022 13:36:03 +0200) Remove debug code (Test::LongString)

Changes for version 1.79_04 - 2022-08-24

  • (Abe Timmerman, Wed, 24 Aug 2022 14:10:34 +0200) Autocommit for distribution Test::Smoke 1.79_04 (test)
  • (Abe Timmerman, Wed, 24 Aug 2022 14:25:39 +0200) Restore another patch that I removed
  • (Abe Timmerman, Tue, 30 Aug 2022 10:07:18 +0200) Drop support for dmake.exe (MSWin32)
  • dmake.exe is no longer supported where gmake.exe is, so we drop the
  • support for dmake.
  • (Abe Timmerman, Tue, 30 Aug 2022 10:18:05 +0200) FIX: Configure_win32() was broken!
  • With the introduction of gmake on MSWin32 Configure_win32() has been
  • broken quite badly (assignments went from `*=` in dmake to `:=` in
  • gmake; the regexen didn't look at that).
  • I've also introduced more Configure switches to the platform:
  • CHANGE:
  • -Duseithreads is now on by default,
  • -Uuseithreads to switch it explicitly off
  • FIX:
  • -UWIN64 now works as it should
  • ADD:
  • -Duse64bitint (-UWIN64)
  • -Duselongdouble (gcc)
  • -Dusequadmath (gcc)
  • -Dusesitecustomize
  • -Udefault_inc_excludes_dot
  • (Abe Timmerman, Tue, 30 Aug 2022 11:28:49 +0200) Put the compiler messages in the .out-file
  • https://github.com/abeltje/Test-Smoke/issues/54
  • Test::Smoke was relying on the logfile (created from STDOUT and STDERR
  • redirecting) for its compilermessages. I now moved them to the .out-file
  • - which should be more reliable - and adjusted the calls to `grepccmsg`
  • and `grepnonfatal`.

Changes for version 1.79_02 - 2022-08-18

  • (Abe Timmerman, Thu, 18 Aug 2022 20:47:54 +0200) Autocommit for distribution Test::Smoke 1.79_02 (test)
  • (Abe Timmerman, Wed, 24 Aug 2022 10:37:18 +0200) FIX: xtest Makefile target
  • 83dafe7e6effe5489 was too gnu-make specific and broke bsd-make
  • It looks that this is a portable solution, it's just a developer helper
  • (Bram, Thu, 18 Aug 2022 18:20:12 +0200) Remove test repository when rsync isn't found
  • In t/syncer_rsync.t a fixed test directory (t/tsgit) is used.
  • At the end of the test it normally removes this directory but when
  • some of the tests are skipped then it left this directory in place
  • which caused the next test run to have a failure (on `git commit`).
  • Alternative fixes:
  • - use a tmp dir like t/syncer_git.t does
  • - remove the directory at the start of the test if it exist
  • (Bram, Thu, 18 Aug 2022 18:19:54 +0200) Configure git user/emailaddress for the test repo
  • The test create their own git repo and then adds some files in it and
  • then it does a `git commit`.
  • On Windows the `git commit` failed because it was unable to determine a valid
  • username/email-address. This resulted in extra test failures.
  • -> After creating a repo set a username and emailaddress in the config of
  • that repo.
  • (Bram, Thu, 18 Aug 2022 18:18:30 +0200) Abort tests when chdir to repo dir failed
  • The test init their own git repo and then does a `chdir()` to that
  • directory.
  • If that `chdir()` would fail then abort the test since it would/could otherwise
  • be modifying the Test-Smoke repo.
  • (I haven't seen failures with `chdir()`, it's more a safe-guard to prevent
  • against altering the wrong repo)
  • (Using `die` instead of `skip` at the request of @abeltje)
  • (Bram, Thu, 18 Aug 2022 18:18:23 +0200) Check exit status of every git command
  • During testing (on Windows) several git commands failed but this
  • wasn't obvious from the test output.
  • -> Adapt the test to check the exit status of git after every command.
  • (Bram, Thu, 18 Aug 2022 22:25:47 +0200) Lowercase cpu type in smoke report
  • On my Windows laptop System::Info reports the cpu_type as 'AMD64'.
  • Looking at the smoke db: other platforms appear to report it as 'amd64'.
  • Lowercase it so that the Windows reports also show as 'amd64'.
  • (Bram, Thu, 18 Aug 2022 22:39:31 +0200) Add '.mailmap' to ignore list of MANIFEST check
  • The '.mailmap' file is not included in the MANIFEST, it's also
  • special cased in perl5.git/t/porting/manifest.t.
  • The manifest test of Test::Smoke should also ignore it.
  • All reports currently contain:
  • MANIFEST messages:
  • MANIFEST did not declare '.mailmap'
  • which is irrelevant noise.
  • (Bram, Fri, 19 Aug 2022 13:37:52 +0200) Filter out the default msg in `user_skiped_tests`
  • `bin/configsmoke.pl` adds a default message when creating the 'skip tests' file.
  • Filter out that message in the report to reduce some 'useless' info.
  • For reference: the 'skip tests' file is used by `...::Smoker::set_skip_tests`
  • which does some more filtering (skip comments, ...).
  • Exact Filtering that it does:
  • $raw =~ m/^\s*#/ and next;
  • $raw =~ s/(\S+).*/$1/s;
  • if ($raw !~ m/\.t$/ and $raw !~ m/test\.pl$/) {
  • next;
  • }
  • I opted not to do the same filtering and instead just filter the default
  • message. If there are comments in the file then they could be useful
  • to include in the report (i.e. if they explain why a test file is skipped)
  • (Abe Timmerman, Wed, 24 Aug 2022 12:34:58 +0200) Autocommit for distribution Test::Smoke 1.79_03 (test)
  • (Abe Timmerman, Wed, 24 Aug 2022 14:06:54 +0200) FIX: the test cluttered Test-Smoke/.git/config
  • I don't know what happened, but I guess I cherry-picked the commits in
  • the wrong order. Sorry everyone; please check your local git config!

Changes for version 1.79_01 - 2022-08-17

  • (Abe Timmerman, Wed, 17 Aug 2022 08:59:35 +0200) Autocommit for distribution Test::Smoke 1.79_01 (test)
  • (Bram, Mon, 15 Aug 2022 21:07:39 +0200) Include custom hostname in smoke report
  • In commit 5920e4cbcef17d7b00206d52dddd5b8ba33aafea
  • Author: abeltje <abeltje@test-smoke.org>
  • Date: Fri Apr 20 22:38:11 2018 +0200
  • Solve https://github.com/abeltje/Test-Smoke/pull/37
  • I don't like using ENVironment vars for legitimate settings in the
  • software, so I'd rather use the configfile for that.
  • Add a question in configsmoke.pl
  • The option was added to set a custom hostname in the configfile.
  • In that commit the custom hostname is used when sending the report to
  • the smokedb (that is: in `Test::Smoke::Reporter::smokedb_data`).
  • But the hostname is also used in the preamble of the report and that
  • code was left unchanged so the real hostname still leaked in the report.
  • Fix this and (also) use the custom hostname in the `preamble` function.
  • (+ add a test for it, test file is based on t/report-usernote.t)
  • (Note: commit 5920e4c was based on a PR and in the original commit
  • the preamble function was also updated. That part of the
  • change got lost when converting it to a config option.)
  • (Bram, Mon, 15 Aug 2022 21:24:06 +0200) Use `done_testing()` in t/report-usernote.t
  • The test file was added in commit 792da5b7176f3141f5c45e54e16a4fa1d0b34230
  • Author: Abe Timmerman <abeltje@diefenbaker.local>
  • Date: Mon Apr 15 00:27:00 2013 +0200
  • Implement variable position for the user_note:
  • - un_position == 'top' => at the start of the report
  • - un_position == <!top> => at the end of the report
  • My guess: `done_testing()` was commented support older perls (with an
  • oder versions of Test::More which lacked support for it).
  • Today: plenty of other files in the repo are using `done_testing()` so
  • there is no reason why t/report-usernote.t shouldn't be using it.
  • (Bram, Thu, 18 Aug 2022 16:00:55 +0200) Skip tests with git when `git init fails`
  • When `git init` failed then the test would continue which is undesirable.
  • When running `make test` in the Test-Smoke git repo I observed:
  • - `git init` failed (because of the '-b' option, unknown in my git version)
  • - there was a test failure since it checks the exit code
  • - it continues running git commands, including `git commit`
  • Result: changes were committed to the Test-Smoke git repo and *not* to the
  • test repo that is normally used inside the test.
  • Fix this by skipping the git tests when `git init` fails.
  • (Bram, Thu, 18 Aug 2022 16:07:57 +0200) Silence default branch name warning
  • On a more recent version of git there is a warning about the
  • default branch name. The warning can be silenced by
  • - using the '-b' option to set a (different) default branch name
  • - using the '-q' option
  • In commit 0f7ceb8c4aa1f2f64a14b86f2fcbef32c7981787 the '-b' option
  • was added to `git init` but that breaks compatibility with older git
  • versions. These do not know the '-b' option and thus fail.
  • To preserve backwards and future compatibility:
  • - use the '-q' option to silence the warning
  • - use `git -c init.defaultBranch=master init` to ensure the default branch
  • name is master for the test repo.
  • (Older git versions use 'master' by default, newer versions currently
  • use 'master' but that may change in the future. So git-upstream decides
  • to change default name then the '-c' should do the trick to keep it as
  • 'master')
  • (Abe Timmerman, Thu, 18 Aug 2022 17:21:50 +0200) Merge branch 'bram-perl-bram/git-init'
  • https://github.com/abeltje/Test-Smoke/pull/61
  • (Abe Timmerman, Thu, 18 Aug 2022 17:32:32 +0200) Merge branch 'bram/custom-hostname' of https://github.com/bram-perl/Test-Smoke into bram-perl-bram/custom-hostname
  • https://github.com/abeltje/Test-Smoke/pull/58
  • (Abe Timmerman, Thu, 18 Aug 2022 17:36:54 +0200) Merge branch 'bram-perl-bram/custom-hostname' into bugfixes/by-bram
  • https://github.com/abeltje/Test-Smoke/pull/58
  • (Abe Timmerman, Thu, 18 Aug 2022 17:38:30 +0200) Merge branch 'bram/usernote-done-testing' of https://github.com/bram-perl/Test-Smoke into bram-perl-bram/usernote-done-testing
  • (Abe Timmerman, Thu, 18 Aug 2022 17:39:06 +0200) Merge branch 'bram-perl-bram/usernote-done-testing' into bugfixes/by-bram
  • https://github.com/abeltje/Test-Smoke/pull/59
  • (Abe Timmerman, Thu, 18 Aug 2022 18:17:52 +0200) Make sure all filehandles are AUTOFLUSH during smoke
  • Inspired by: https://github.com/abeltje/Test-Smoke/pull/60
  • It appears that Windows likes it better if the filehandles are on
  • autoflush during the actual smoke.
  • (Abe Timmerman, Thu, 18 Aug 2022 18:21:19 +0200) Merge branch 'bugfixes/by-bram'
  • Merge work by Bram:
  • - fix on Tux's fix for the git-defaultBranch (#61)
  • - autoflush for filehandles used during the actual smoke (not #60)
  • - fix forgotten `done_testing()` (#59(
  • - fix leak of actual hostname in the smoke-report (#58)
  • (Bram, Thu, 18 Aug 2022 18:18:23 +0200) Check exit status of every git command
  • During testing (on Windows) several git commands failed but this
  • wasn't obvious from the test output.
  • -> Adapt the test to check the exit status of git after every command.
  • (Bram, Thu, 18 Aug 2022 19:00:23 +0200) Cache `$daemon->sockhost` in t/poster-post.t
  • On my Windows 10 system 't/poster-post.t' was stuck.
  • Debugging showed that this *apparently* happened when it tried to get
  • the value of `$daemon->sockhost` for the test with 'HTTP::Tiny'.
  • Earlier calls for `$daemon->sockhost` (for the curl test) did succeed
  • and did behave as expected...
  • Sample output of a run that was stuck:
  • # HTTP::Daemon (6.12): IPv6 (::1)
  • # Temporary daemon at: http://[::1]:57965/
  • ok 1 - An object of class 'Test::Smoke::Poster::LWP_UserAgent' isa 'Test::Smoke::Poster::LWP_UserAgent'
  • ok 2 - write_json
  • [2022-08-18 16:47:15Z] Posting to http://[::1]:57965/report via LWP::UserAgent.
  • [2022-08-18 16:47:15Z] Reading from (C:\Perl\Test-Smoke\t\testsuite.jsn)
  • [2022-08-18 16:47:15Z] Report data: {"sysinfo":"MSWin32"}
  • [2022-08-18 16:47:15Z] [CoreSmokeDB] {"id":42}
  • ok 3 - Got id (LWP::Useragent: http://[::1]:57965/report)
  • ok 4 - An object of class 'Test::Smoke::Poster::Curl' isa 'Test::Smoke::Poster::Curl'
  • ok 5 - write_json
  • [2022-08-18 16:47:15Z] Posting to "http://[::1]:57965/report" via curl.
  • [2022-08-18 16:47:15Z] Reading from (C:\Perl\Test-Smoke\t\testsuite.jsn)
  • [2022-08-18 16:47:15Z] Report data: {"sysinfo":"MSWin32"}
  • [2022-08-18 16:47:15Z] In pwd(C:/Perl/Test-Smoke) running:
  • [2022-08-18 16:47:15Z] qx[C:\Windows\system32\curl.EXE --globoff -A "Test::Smoke/1.79_01 (Test::Smoke::Poster::Curl)" -d json=%7B%22sysinfo%22%3A%22MSWin32%22%7D "http://[::1]:57965/report"]
  • % Total % Received % Xferd Average Speed Time Time Time Current
  • Dload Upload Total Spent Left Speed
  • 100 49 100 9 100 40 522 2322 --:--:-- --:--:-- --:--:-- 3062
  • [2022-08-18 16:47:15Z] [CoreSmokeDB] {"id":42}
  • ok 6 - Got id (curl: http://[::1]:57965/report)
  • And then it kept on waiting..
  • Caching the value of `$daemon->sockhost` appears to fix it..
  • (I've got no idea why tho)
  • With this patch applied and re-running the test it continues:
  • ok 7 - An object of class 'Test::Smoke::Poster::HTTP_Tiny' isa 'Test::Smoke::Poster::HTTP_Tiny'
  • ok 8 - write_json
  • [2022-08-18 16:56:15Z] Posting to http://[::1]:57990/report via HTTP::Tiny.
  • [2022-08-18 16:56:15Z] Reading from (C:\Perl\Test-Smoke\t\testsuite.jsn)
  • [2022-08-18 16:56:15Z] Report data: {"sysinfo":"MSWin32"}
  • [2022-08-18 16:56:15Z] [CoreSmokeDB] {"id":42}
  • ok 9 - Got id (HTTP::Tiny: http://[::1]:57990/report
  • ok 10 - no warnings
  • 1..10
  • (Abe Timmerman, Thu, 18 Aug 2022 19:20:38 +0200) Merge branch 'bram/windows-poster_post.t' of https://github.com/bram-perl/Test-Smoke into bram-perl-bram/windows-poster_post.t
  • (Abe Timmerman, Thu, 18 Aug 2022 19:21:05 +0200) Merge branch 'bram-perl-bram/windows-poster_post.t' into bugfixes/by-bram
  • https://github.com/abeltje/Test-Smoke/pull/63
  • (Abe Timmerman, Thu, 18 Aug 2022 20:24:53 +0200) Add a target to the makefile to run the xt/ tests
  • No convention but on IRC#smoke:
  • 17:41:14 Bram | Is there a make target to run the tests in xt/?
  • 19:26:26 abeltje | no make target for running tests in xt/; is there a convention for that?
  • 19:29:36 ilmari | dzil has an `xtest` command to run them
  • So I named it 'xtest' and used XTEST_FILES to select files to run:
  • make xtest TEST_VERBOSE=1 XTEST_FILES=xt/0*.t
  • but this also works:
  • make xtest
  • (Bram, Thu, 18 Aug 2022 18:18:30 +0200) Abort tests when chdir to repo dir failed
  • The test init their own git repo and then does a `chdir()` to that
  • directory.
  • If that `chdir()` would fail then abort the test since it would/could otherwise
  • be modifying the Test-Smoke repo.
  • (I haven't seen failures with `chdir()`, it's more a safe-guard to prevent
  • against altering the wrong repo)
  • (Using `die` instead of `skip` at the request of @abeltje)
  • (Bram, Thu, 18 Aug 2022 18:19:54 +0200) Configure git user/emailaddress for the test repo
  • The test create their own git repo and then adds some files in it and
  • then it does a `git commit`.
  • On Windows the `git commit` failed because it was unable to determine a valid
  • username/email-address. This resulted in extra test failures.
  • -> After creating a repo set a username and emailaddress in the config of
  • that repo.
  • (Bram, Thu, 18 Aug 2022 18:20:12 +0200) Remove test repository when rsync isn't found
  • In t/syncer_rsync.t a fixed test directory (t/tsgit) is used.
  • At the end of the test it normally removes this directory but when
  • some of the tests are skipped then it left this directory in place
  • which caused the next test run to have a failure (on `git commit`).
  • Alternative fixes:
  • - use a tmp dir like t/syncer_git.t does
  • - remove the directory at the start of the test if it exist
  • (Abe Timmerman, Thu, 18 Aug 2022 20:41:55 +0200) Merge branch 'feature/xtest-make-target'

Documentation

These are the Release Notes for 1.30
Check the buildconfigfile specified on the commandline
Create a configuration for tssmokeperl.pl
Patch the sourcetree
Check the status of a running smoke
Guess the status of the current smoke.
FAQ
Test::Smoke frequently asked questions

Modules

The Perl core test smoke suite
Object that represents an Application Option.
A collection of AppOption objects.
The tsarchive.pl application.
Baseclass for Test::Smoke::App::* applications.
App for configuring Test::Smoke.
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke.
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke.
Mixin for Test::Smoke::App::ConfigSmoke.
Mixin for Test::Smoke::App::ConfigSmoke.
Mixin for Test::Smoke::App::ConfigSmoke
Mixin for Test::Smoke::App::ConfigSmoke
A collection of application configs and config options.
The tsreport.pl application.
The tsrepostjsn.pl application.
Run a Test::Smoke::App applet.
The tsrunsmoke.pl application.
Implementation for tssendrpt.pl
The tssmokeperl.pl application.
Synchronise the perl source tree from a source.
Create < $ddir\win32\smoke.mk >
Archive the smoke files.
OO interface for handling build configurations
Implement a mirror like object
"Role" that adds logging methods to "traditional" objects.
Factory for objects to send the report.
baseclass for Mailers
Base class for objects (AUTOLOADed accessors)
OO interface to help patching the source-tree
OO interface to handle the Policy.sh stuff.
Factory for poster objects.
Base class for the posters to CoreSmokeDB.
Poster subclass using curl.
Poster subclass using HTTP::Tiny.
Poster subclass using LWP::UserAgent.
OO interface for handling the testresults (mktest.out)
OO interface to do one smoke cycle.
Manipulate the perl source-tree
Factory for syncer objects.
Take out some of the functions of the smoke suite.
Run a command and return its output.
Functions to help find Helpers (modules/bins)
A JSON:PP/JSON::XS Factory Class
Serialise (stringify) values, a bit like Data::Dumper.
Utility function to switch off the error-popup for the current process.

Provides

in lib/Test/Smoke/BuildCFG.pm
in lib/Test/Smoke/LogMixin.pm
in lib/Test/Smoke/Mailer/MIME_Lite.pm
in lib/Test/Smoke/Mailer/Mail_Sendmail.pm
in lib/Test/Smoke/Mailer/Mail_X.pm
in lib/Test/Smoke/Mailer/SendEmail.pm
in lib/Test/Smoke/Mailer/Sendmail.pm
in lib/Test/Smoke/Syncer/Base.pm
in lib/Test/Smoke/Syncer/Copy.pm
in lib/Test/Smoke/Syncer/FTP.pm
in lib/Test/Smoke/Syncer/Forest.pm
in lib/Test/Smoke/Syncer/Git.pm
in lib/Test/Smoke/Syncer/Hardlink.pm
in lib/Test/Smoke/Syncer/Rsync.pm
in lib/Test/Smoke/Syncer/Snapshot.pm