diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 08098887e..000000000 --- a/Dockerfile +++ /dev/null @@ -1,56 +0,0 @@ -FROM ubuntu:18.10 as base - -ENV DEBIAN_FRONTEND=noninteractive -RUN ["apt-get", "update"] -RUN ["apt-get", "install", "-y", "apt-utils"], -RUN ["apt-get", "upgrade", "-y"] - -# cpanm will need this later -RUN ["apt-get", "install", "-y", "build-essential"], - -# postgresql -RUN ["apt-get", "install", "-y", "postgresql", "postgresql-contrib", "postgresql-client"] - -# We want to update perl, install cpanminus, and get the dbd-pg dependancies installed. -RUN ["apt-get", "install", "-y", "perl", "cpanminus", "libdbd-pg-perl"] - -# Needed for building/installing modules later -RUN ["apt-get", "install", "-y", "rsync", "uuid-dev", "libcurl4-gnutls-dev", "libncurses5-dev", "libreadline-dev"], - -# Needed for postgres tools -RUN ["apt-get", "install", "-y", "locales-all"] - -# Sometimes cpanminus has an issue installing DBIx::Class due to order of -# modules. Install the system packages to get the requirements all in place, -# cpanm will upgrade it next. -RUN ["apt-get", "install", "-y", "libdbix-class-perl", "libdbix-class-uuidcolumns-perl", "libdbix-class-schema-config-perl", "libdbix-class-schema-loader-perl", "libdbix-class-timestamp-perl", "libdbix-class-tree-nestedset-perl", "libnet-ssleay-perl", "libipc-run-perl", "libipc-run3-perl", "libuuid-perl", "libdata-uuid-libuuid-perl", "libxml-parser-perl", "libxml-libxml-perl", "libterm-readline-perl-perl", "libterm-readline-gnu-perl"], - -RUN ln -s /usr/lib/postgresql/10/bin/* /usr/bin/ 2>/dev/null || true - -RUN ["cpanm", "LWP"] -RUN ["cpanm", "App::cpanminus"] -RUN ["cpanm", "File::ShareDir::Install"] -RUN ["cpanm", "-v", "Test2::Harness"] - -# Module tests run commands that cannot be run as root, but installation must be done as root... sigh -RUN ["cpanm", "-n", "-v", "DBIx::QuickDB"] - -RUN ["cpanm", "--installdeps", "-v", "Test2::Harness::UI"] - - -RUN groupadd -g 999 appuser && useradd -r -u 999 -g appuser appuser - -FROM base as demo - -ADD . /app - -# In case new deps were added -RUN ["cpanm", "--installdeps", "-v", "/app"] - -RUN ["chown", "-R", "999:999", "/app"] -USER appuser - -ENV T2_HARNESS_UI_ENV=dev -EXPOSE 8081 -WORKDIR /app -ENTRYPOINT ["perl", "-I", "/app/lib", "/app/demo/demo.pl"] diff --git a/LICENSE b/LICENSE index a55e02aaa..a78a706a2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -This software is copyright (c) 2023 by Chad Granum. +This software is copyright (c) 2024 by Chad Granum. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. @@ -12,7 +12,7 @@ b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- -This software is Copyright (c) 2023 by Chad Granum. +This software is Copyright (c) 2024 by Chad Granum. This is free software, licensed under: @@ -270,110 +270,143 @@ necessary. Here a sample; alter the names: That's all there is to it! ---- The Artistic License 1.0 --- +--- The Perl Artistic License 1.0 --- -This software is Copyright (c) 2023 by Chad Granum. +This software is Copyright (c) 2024 by Chad Granum. This is free software, licensed under: - The Artistic License 1.0 + The Perl Artistic License 1.0 -The Artistic License -Preamble -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. + + + The "Artistic License" + + Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. Definitions: - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. + + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. - b) use the modified Package only within your corporation or organization. + b) use the modified Package only within your corporation or organization. - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. - d) make other distribution arrangements with the Copyright Holder. + d) make other distribution arrangements with the Copyright Holder. -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. - b) accompany the distribution with the machine-readable source of the Package - with your modifications. + b) accompany the distribution with the machine-readable source of + the Package with your modifications. - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. - d) make other distribution arrangements with the Copyright Holder. + d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -The End + The End diff --git a/Makefile.PL b/Makefile.PL index a49ca5329..fecfe3955 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -22,11 +22,17 @@ if ($ENV{AUTOMATED_TESTING}) { if $is_njh; } +use File::ShareDir::Install; +$File::ShareDir::Install::INCLUDE_DOTFILES = 1; +$File::ShareDir::Install::INCLUDE_DOTDIRS = 1; +install_share dist => "share"; + my %WriteMakefileArgs = ( - "ABSTRACT" => "A new and improved test harness with better Test2 integration.", + "ABSTRACT" => "FIXME", "AUTHOR" => "Chad Granum ", "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => 0 + "ExtUtils::MakeMaker" => 0, + "File::ShareDir::Install" => "0.06" }, "DISTNAME" => "Test2-Harness", "EXE_FILES" => [ @@ -36,52 +42,98 @@ my %WriteMakefileArgs = ( "MIN_PERL_VERSION" => "5.010000", "NAME" => "Test2::Harness", "PREREQ_PM" => { + "Atomic::Pipe" => "0.021", + "Capture::Tiny" => 0, "Carp" => 0, - "Config" => 0, + "Clone" => 0, + "Cpanel::JSON::XS" => 0, + "Crypt::Eksblowfish::Bcrypt" => 0, "Cwd" => 0, + "DBI" => 0, + "DBIx::Class::Helper::ResultSet::RemoveColumns" => 0, + "DBIx::Class::InflateColumn::DateTime" => 0, + "DBIx::Class::InflateColumn::Serializer" => 0, + "DBIx::Class::InflateColumn::Serializer::JSON" => 0, + "DBIx::Class::Schema::Loader" => 0, + "DBIx::Class::Tree::AdjacencyList" => 0, + "DBIx::Class::UUIDColumns" => 0, + "DBIx::QuickDB" => "0.000020", "Data::Dumper" => 0, + "Data::GUID" => 0, "Data::UUID" => 0, + "DateTime" => 0, + "DateTime::Format::MySQL" => 0, + "DateTime::Format::Pg" => 0, + "Email::Sender::Simple" => 0, + "Email::Simple" => 0, + "Email::Simple::Creator" => 0, "Exporter" => 0, "Fcntl" => 0, "File::Find" => 0, "File::Path" => "2.11", + "File::ShareDir" => 0, "File::Spec" => 0, "File::Temp" => 0, "Filter::Util::Call" => 0, + "HTTP::Tiny" => 0, "IO::Compress::Bzip2" => 0, "IO::Compress::Gzip" => 0, "IO::Handle" => "1.27", + "IO::Select" => 0, "IO::Uncompress::Bunzip2" => 0, "IO::Uncompress::Gunzip" => 0, "IPC::Cmd" => 0, + "IPC::Open3" => 0, + "Import::Into" => 0, "Importer" => "0.025", + "JSON::MaybeXS" => 0, "JSON::PP" => 0, - "List::Util" => "1.44", - "Long::Jump" => "0.000001", + "Linux::Inotify2" => "2.3", + "List::Util" => "1.56", + "MIME::Base64" => 0, + "Net::Domain" => 0, "POSIX" => 0, + "Parallel::Runner" => "0.014", + "Plack::App::Directory" => 0, + "Plack::App::File" => 0, + "Plack::Builder" => 0, + "Plack::Handler::Starman" => 0, + "Plack::Middleware::DBIx::DisconnectAll" => 0, + "Plack::Runner" => 0, + "Router::Simple" => 0, "Scalar::Util" => 0, "Scope::Guard" => 0, + "Statistics::Basic" => 0, + "Storable" => 0, "Symbol" => 0, "Sys::Hostname" => 0, "Term::Table" => "0.015", - "Test2" => "1.302170", - "Test2::API" => "1.302170", - "Test2::Bundle::Extended" => "0.000127", - "Test2::Event" => "1.302170", - "Test2::Event::V2" => "1.302170", - "Test2::Formatter" => "1.302170", + "Test2" => "1.302198", + "Test2::API" => "1.302198", + "Test2::Event" => "1.302198", + "Test2::Event::V2" => "1.302198", + "Test2::Formatter" => "1.302198", "Test2::Plugin::MemUsage" => "0.002003", "Test2::Plugin::UUID" => "0.002001", - "Test2::Tools::AsyncSubtest" => "0.000127", - "Test2::Tools::Subtest" => "0.000127", - "Test2::Util" => "1.302170", - "Test2::Util::Term" => "0.000127", - "Test2::V0" => "0.000127", - "Test::Builder" => "1.302170", - "Test::Builder::Formatter" => "1.302170", - "Test::More" => "1.302170", + "Test2::Tools::AsyncSubtest" => "0.000159", + "Test2::Tools::Basic" => 0, + "Test2::Tools::Compare" => 0, + "Test2::Tools::QuickDB" => 0, + "Test2::Tools::Subtest" => "0.000159", + "Test2::Util" => "1.302198", + "Test2::Util::Facets2Legacy" => 0, + "Test2::Util::Table" => 0, + "Test2::Util::Term" => "0.000159", + "Test2::Util::Times" => 0, + "Test2::V0" => "0.000159", + "Test::Builder" => "1.302198", + "Test::Builder::Formatter" => "1.302198", + "Test::More" => "1.302198", "Text::ParseWords" => 0, + "Text::Xslate" => 0, + "Time::Elapsed" => "0.33", "Time::HiRes" => 0, + "XML::Generator" => 0, "YAML::Tiny" => 0, "base" => 0, "constant" => 0, @@ -89,62 +141,121 @@ my %WriteMakefileArgs = ( "parent" => 0 }, "TEST_REQUIRES" => { - "File::Copy" => 0 + "Child" => 0, + "Data::Dumper" => 0, + "File::Copy" => 0, + "File::Temp" => 0, + "HTTP::Tiny::UNIX" => 0, + "Test2::Plugin::NoWarnings" => 0, + "Test2::Tools::Explain" => 0, + "Test::More" => "1.302198", + "XML::Simple" => 0 }, - "VERSION" => "1.000152", + "VERSION" => "2.000000", "test" => { - "TESTS" => "t/*.t t/integration/*.t t/integration/signals/*.t t/unit/App/*.t t/unit/App/Yath/*.t t/unit/App/Yath/Command/*.t t/unit/App/Yath/Plugin/*.t t/unit/Test2/Harness/*.t t/unit/Test2/Harness/Runner/*.t t/unit/Test2/Harness/Runner/Resource/SharedJobSlots/*.t t/unit/Test2/Harness/Settings/*.t t/unit/Test2/Harness/Util/*.t t/unit/Test2/Harness/Util/File/*.t t/unit/Test2/Tools/*.t" + "TESTS" => "t/*.t t/JUnit/*.t t/UI/*.t t/acceptence/*.t t/integration/*.t t/integration/signals/*.t t/unit/App/*.t t/unit/App/Yath/*.t t/unit/App/Yath/Command/*.t t/unit/App/Yath/Options/*.t t/unit/App/Yath/Plugin/*.t t/unit/App/Yath/Renderer/*.t t/unit/App/Yath/Renderer/Default/*.t t/unit/App/Yath/Resource/*.t t/unit/App/Yath/Resource/SharedJobSlots/*.t t/unit/Getopt/*.t t/unit/Getopt/Yath/*.t t/unit/Getopt/Yath/Option/*.t t/unit/Getopt/Yath/Settings/*.t t/unit/Test2/*.t t/unit/Test2/Formatter/*.t t/unit/Test2/Harness/*.t t/unit/Test2/Harness/Auditor/*.t t/unit/Test2/Harness/Collector/*.t t/unit/Test2/Harness/Collector/Auditor/*.t t/unit/Test2/Harness/Collector/IOParser/*.t t/unit/Test2/Harness/IPC/*.t t/unit/Test2/Harness/IPC/Protocol/*.t t/unit/Test2/Harness/IPC/Protocol/AtomicPipe/*.t t/unit/Test2/Harness/Instance/*.t t/unit/Test2/Harness/Log/*.t t/unit/Test2/Harness/Log/CoverageAggregator/*.t t/unit/Test2/Harness/Preload/*.t t/unit/Test2/Harness/Reloader/*.t t/unit/Test2/Harness/Renderer/*.t t/unit/Test2/Harness/Resource/*.t t/unit/Test2/Harness/Run/*.t t/unit/Test2/Harness/Runner/*.t t/unit/Test2/Harness/Runner/Preload/*.t t/unit/Test2/Harness/Runner/Preloader/*.t t/unit/Test2/Harness/Runner/Preloading/*.t t/unit/Test2/Harness/Runner/Resource/*.t t/unit/Test2/Harness/Runner/Resource/SharedJobSlots/*.t t/unit/Test2/Harness/Scheduler/*.t t/unit/Test2/Harness/Settings/*.t t/unit/Test2/Harness/Util/*.t t/unit/Test2/Harness/Util/File/*.t t/unit/Test2/Tools/*.t" } ); my %FallbackPrereqs = ( + "Atomic::Pipe" => "0.021", + "Capture::Tiny" => 0, "Carp" => 0, - "Config" => 0, + "Child" => 0, + "Clone" => 0, + "Cpanel::JSON::XS" => 0, + "Crypt::Eksblowfish::Bcrypt" => 0, "Cwd" => 0, + "DBI" => 0, + "DBIx::Class::Helper::ResultSet::RemoveColumns" => 0, + "DBIx::Class::InflateColumn::DateTime" => 0, + "DBIx::Class::InflateColumn::Serializer" => 0, + "DBIx::Class::InflateColumn::Serializer::JSON" => 0, + "DBIx::Class::Schema::Loader" => 0, + "DBIx::Class::Tree::AdjacencyList" => 0, + "DBIx::Class::UUIDColumns" => 0, + "DBIx::QuickDB" => "0.000020", "Data::Dumper" => 0, + "Data::GUID" => 0, "Data::UUID" => 0, + "DateTime" => 0, + "DateTime::Format::MySQL" => 0, + "DateTime::Format::Pg" => 0, + "Email::Sender::Simple" => 0, + "Email::Simple" => 0, + "Email::Simple::Creator" => 0, "Exporter" => 0, "Fcntl" => 0, "File::Copy" => 0, "File::Find" => 0, "File::Path" => "2.11", + "File::ShareDir" => 0, "File::Spec" => 0, "File::Temp" => 0, "Filter::Util::Call" => 0, + "HTTP::Tiny" => 0, + "HTTP::Tiny::UNIX" => 0, "IO::Compress::Bzip2" => 0, "IO::Compress::Gzip" => 0, "IO::Handle" => "1.27", + "IO::Select" => 0, "IO::Uncompress::Bunzip2" => 0, "IO::Uncompress::Gunzip" => 0, "IPC::Cmd" => 0, + "IPC::Open3" => 0, + "Import::Into" => 0, "Importer" => "0.025", + "JSON::MaybeXS" => 0, "JSON::PP" => 0, - "List::Util" => "1.44", - "Long::Jump" => "0.000001", + "Linux::Inotify2" => "2.3", + "List::Util" => "1.56", + "MIME::Base64" => 0, + "Net::Domain" => 0, "POSIX" => 0, + "Parallel::Runner" => "0.014", + "Plack::App::Directory" => 0, + "Plack::App::File" => 0, + "Plack::Builder" => 0, + "Plack::Handler::Starman" => 0, + "Plack::Middleware::DBIx::DisconnectAll" => 0, + "Plack::Runner" => 0, + "Router::Simple" => 0, "Scalar::Util" => 0, "Scope::Guard" => 0, + "Statistics::Basic" => 0, + "Storable" => 0, "Symbol" => 0, "Sys::Hostname" => 0, "Term::Table" => "0.015", - "Test2" => "1.302170", - "Test2::API" => "1.302170", - "Test2::Bundle::Extended" => "0.000127", - "Test2::Event" => "1.302170", - "Test2::Event::V2" => "1.302170", - "Test2::Formatter" => "1.302170", + "Test2" => "1.302198", + "Test2::API" => "1.302198", + "Test2::Event" => "1.302198", + "Test2::Event::V2" => "1.302198", + "Test2::Formatter" => "1.302198", "Test2::Plugin::MemUsage" => "0.002003", + "Test2::Plugin::NoWarnings" => 0, "Test2::Plugin::UUID" => "0.002001", - "Test2::Tools::AsyncSubtest" => "0.000127", - "Test2::Tools::Subtest" => "0.000127", - "Test2::Util" => "1.302170", - "Test2::Util::Term" => "0.000127", - "Test2::V0" => "0.000127", - "Test::Builder" => "1.302170", - "Test::Builder::Formatter" => "1.302170", - "Test::More" => "1.302170", + "Test2::Tools::AsyncSubtest" => "0.000159", + "Test2::Tools::Basic" => 0, + "Test2::Tools::Compare" => 0, + "Test2::Tools::Explain" => 0, + "Test2::Tools::QuickDB" => 0, + "Test2::Tools::Subtest" => "0.000159", + "Test2::Util" => "1.302198", + "Test2::Util::Facets2Legacy" => 0, + "Test2::Util::Table" => 0, + "Test2::Util::Term" => "0.000159", + "Test2::Util::Times" => 0, + "Test2::V0" => "0.000159", + "Test::Builder" => "1.302198", + "Test::Builder::Formatter" => "1.302198", + "Test::More" => "1.302198", "Text::ParseWords" => 0, + "Text::Xslate" => 0, + "Time::Elapsed" => "0.33", "Time::HiRes" => 0, + "XML::Generator" => 0, + "XML::Simple" => 0, "YAML::Tiny" => 0, "base" => 0, "constant" => 0, @@ -162,3 +273,9 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); + +{ +package +MY; +use File::ShareDir::Install qw(postamble); +} diff --git a/README b/README index a94c5c761..4c1f45cad 100644 --- a/README +++ b/README @@ -1,534 +1,12 @@ NAME - App::Yath - Yet Another Test Harness (Test2-Harness) Command Line - Interface (CLI) + App::Yath - FIXME DESCRIPTION - This is the primary documentation for yath, App::Yath, Test2::Harness. +SYNOPSIS - The canonical source of up-to-date command options are the help output - when using $ yath help and $ yath help COMMAND. - - This document is mainly an overview of yath usage and common recipes. - - App::Yath is an alternative to App::Prove, and Test2::Harness is an - alternative to Test::Harness. It is not designed to replace - Test::Harness/prove. Test2::Harness is designed to take full advantage - of the rich data Test2 can provide. Test2::Harness is also able to use - non-core modules and provide more functionality than prove can achieve - with its restrictions. - -PLATFORM SUPPORT - - Test2::Harness/App::Yath is is focused on unix-like platforms. Most - development happens on linux, but bsd, macos, etc should work fine as - well. - - Patches are welcome for any/all platforms, but the primary author (Chad - 'Exodist' Granum) does not directly develop against non-unix platforms. - - WINDOWS - - Currently windows is not supported, and it is known that the package - will not install on windows. Patches are be welcome, and it would be - great if someone wanted to take on the windows-support role, but it is - not a primary goal for the project. - -OVERVIEW - - To use Test2::Harness, you use the yath command. Yath will find the - tests (or use the ones you specify) and run them. As it runs, it will - output diagnostic information such as failures. At the end, yath will - print a summary of the test run. - - yath can be thought of as a more powerful alternative to prove - (Test::Harness) - -RECIPES - - These are common recipes for using yath. - - RUN PROJECT TESTS - - $ yath - - Simply running yath with no arguments means "Run all tests for the - current project". Yath will look for tests in ./t, ./t2, and ./test.pl - and run any which are found. - - Normally this implies the test command but will instead imply the run - command if a persistent test runner is detected. - - PRELOAD MODULES - - Yath has the ability to preload modules. Yath normally forks to start - new tests, so preloading can reduce the time spent loading modules over - and over in each test. - - Note that some tests may depend on certain modules not being loaded. In - these cases you can add the # HARNESS-NO-PRELOAD directive to the top - of the test files that cannot use preload. - - SIMPLE PRELOAD - - Any module can be preloaded: - - $ yath -PMoose - - You can preload as many modules as you want: - - $ yath -PList::Util -PScalar::Util - - COMPLEX PRELOAD - - If your preload is a subclass of Test2::Harness::Runner::Preload then - more complex preload behavior is possible. See those docs for more - info. - - LOGGING - - RECORDING A LOG - - You can turn on logging with a flag. The filename of the log will be - printed at the end. - - $ yath -L - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl - - The event log can be quite large. It can be compressed with bzip2. - - $ yath -B - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 - - gzip compression is also supported. - - $ yath -G - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.gz - - -B and -G both imply -L. - - REPLAYING FROM A LOG - - You can replay a test run from a log file: - - $ yath test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 - - This will be significantly faster than the initial run as no tests are - actually being executed. All events are simply read from the log, and - processed by the harness. - - You can change display options and limit rendering/processing to - specific test jobs from the run: - - $ yath test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 -v [TEST UUID(S)] - - Note: This is done using the $ yath replay ... command. The replay - command is implied if the first argument is a log file. - - PER-TEST TIMING DATA - - The -T option will cause each test file to report how long it took to - run. - - $ yath -T - - ( PASSED ) job 1 t/yath_script.t - ( TIME ) job 1 Startup: 0.07692s | Events: 0.01170s | Cleanup: 0.00190s | Total: 0.09052s - - PERSISTENT RUNNER - - yath supports starting a yath session that waits for tests to run. This - is very useful when combined with preload. - - STARTING - - This starts the server. Many options available to the 'test' command - will work here but not all. See $ yath help start for more info. - - $ yath start - - RUNNING - - This will run tests using the persistent runner. By default, it will - search for tests just like the 'test' command. Many options available - to the test command will work for this as well. See $ yath help run for - more details. - - $ yath run - - STOPPING - - Stopping a persistent runner is easy. - - $ yath stop - - INFORMATIONAL - - The which command will tell you which persistent runner will be used. - Yath searches for the persistent runner in the current directory, then - searches in parent directories until it either hits the root directory, - or finds the persistent runner tracking file. - - $ yath which - - The watch command will tail the runner's log files. - - $ yath watch - - PRELOAD + PERSISTENT RUNNER - - You can use preloads with the yath start command. In this case, yath - will track all the modules pulled in during preload. If any of them - change, the server will reload itself to bring in the changes. Further, - modified modules will be blacklisted so that they are not preloaded on - subsequent reloads. This behavior is useful if you are actively working - on a module that is normally preloaded. - - MAKING YOUR PROJECT ALWAYS USE YATH - - $ yath init - - The above command will create test.pl. test.pl is automatically run by - most build utils, in which case only the exit value matters. The - generated test.pl will run yath and execute all tests in the ./t and/or - ./t2 directories. Tests in ./t will ALSO be run by prove but tests in - ./t2 will only be run by yath. - - PROJECT-SPECIFIC YATH CONFIG - - You can write a .yath.rc file. The file format is very simple. Create a - [COMMAND] section to start the configuration for a command and then - provide any options normally allowed by it. When yath is run inside - your project, it will use the config specified in the rc file, unless - overridden by command line options. - - Note: You can also add pre-command options by placing them at the top - of your config file BEFORE any [cmd] markers. - - Comments start with a semi-colon. - - Example .yath.rc: - - -pFoo ; Load the 'foo' plugin before dealing with commands. - - [test] - -B ;Always write a bzip2-compressed log - - [start] - -PMoose ;Always preload Moose with a persistent runner - - This file is normally committed into the project's repo. - - SPECIAL PATH PSEUDO-FUNCTIONS - - Sometimes you want to specify files relative to the .yath.rc so that - the config option works from any subdirectory of the project. Other - times you may wish to use a shell expansion. Sometimes you want both! - - rel(path/to/file) - - -I rel(path/to/extra_lib) - -I=rel(path/to/extra_lib) - - This will take the path to .yath.rc and prefix it to the path inside - rel(...). If for example you have /project/.yath.rc then the path - would become /project/path/to/extra_lib. - - glob(path/*/file) - - --default-search glob(subprojects/*/t) - --default-search=glob(subprojects/*/t) - - This will add a --default-search $_ for every item found in the glob. - This uses the perl builtin function glob() under the hood. - - relglob(path/*/file) - - --default-search relglob(subprojects/*/t) - --default-search=relglob(subprojects/*/t) - - Same as glob() except paths are relative to the .yath.rc file. - - PROJECT-SPECIFIC YATH CONFIG USER OVERRIDES - - You can add a .yath.user.rc file. Format is the same as the regular - .yath.rc file. This file will be read in addition to the regular config - file. Directives in this file will come AFTER the directives in the - primary config so it may be used to override config. - - This file should not normally be committed to the project repo. - - HARNESS DIRECTIVES INSIDE TESTS - - yath will recognise a number of directive comments placed near the top - of test files. These directives should be placed after the #! line but - before any real code. - - Real code is defined as any line that does not start with use, require, - BEGIN, package, or # - - good example 1 - - #!/usr/bin/perl - # HARNESS-NO-FORK - - ... - - good example 2 - - #!/usr/bin/perl - use strict; - use warnings; - - # HARNESS-NO-FORK - - ... - - bad example 1 - - #!/usr/bin/perl - - # blah - - # HARNESS-NO-FORK - - ... - - bad example 2 - - #!/usr/bin/perl - - print "hi\n"; - - # HARNESS-NO-FORK - - ... - - HARNESS-NO-PRELOAD - - #!/usr/bin/perl - # HARNESS-NO-PRELOAD - - Use this if your test will fail when modules are preloaded. This will - tell yath to start a new perl process to run the script instead of - forking with preloaded modules. - - Currently this implies HARNESS-NO-FORK, but that may not always be the - case. - - HARNESS-NO-FORK - - #!/usr/bin/perl - # HARNESS-NO-FORK - - Use this if your test file cannot run in a forked process, but instead - must be run directly with a new perl process. - - This implies HARNESS-NO-PRELOAD. - - HARNESS-NO-STREAM - - yath usually uses the Test2::Formatter::Stream formatter instead of - TAP. Some tests depend on using a TAP formatter. This option will make - yath use Test2::Formatter::TAP or Test::Builder::Formatter. - - HARNESS-NO-IO-EVENTS - - yath can be configured to use the Test2::Plugin::IOEvents plugin. This - plugin replaces STDERR and STDOUT in your test with tied handles that - fire off proper Test2::Event's when they are printed to. Most of the - time this is not an issue, but any fancy tests or modules which do - anything with STDERR or STDOUT other than print may have really messy - errors. - - Note: This plugin is disabled by default, so you only need this - directive if you enable it globally but need to turn it back off for - select tests. - - HARNESS-NO-TIMEOUT - - yath will usually kill a test if no events occur within a timeout - (default 60 seconds). You can add this directive to tests that are - expected to trip the timeout, but should be allowed to continue. - - NOTE: you usually are doing the wrong thing if you need to set this. - See: HARNESS-TIMEOUT-EVENT. - - HARNESS-TIMEOUT-EVENT 60 - - yath can be told to alter the default event timeout from 60 seconds to - another value. This is the recommended alternative to - HARNESS-NO-TIMEOUT - - HARNESS-TIMEOUT-POSTEXIT 15 - - yath can be told to alter the default POSTEXIT timeout from 15 seconds - to another value. - - Sometimes a test will fork producing output in the child while the - parent is allowed to exit. In these cases we cannot rely on the - original process exit to tell us when a test is complete. In cases - where we have an exit, and partial output (assertions with no final - plan, or a plan that has not been completed) we wait for a timeout - period to see if any additional events come into - - HARNESS-DURATION-LONG - - This lets you tell yath that the test file is long-running. This is - primarily used when concurrency is turned on in order to run longer - tests earlier, and concurrently with shorter ones. There is also a yath - option to skip all long tests. - - This duration is set automatically if HARNESS-NO-TIMEOUT is set. - - HARNESS-DURATION-MEDIUM - - This lets you tell yath that the test is medium. - - This is the default duration. - - HARNESS-DURATION-SHORT - - This lets you tell yath That the test is short. - - HARNESS-CATEGORY-ISOLATION - - This lets you tell yath that the test cannot be run concurrently with - other tests. Yath will hold off and run these tests one at a time after - all other tests. - - HARNESS-CATEGORY-IMMISCIBLE - - This lets you tell yath that the test cannot be run concurrently with - other tests of this class. This is helpful when you have multiple tests - which would otherwise have to be run sequentially at the end of the - run. - - Yath prioritizes running these tests above HARNESS-CATEGORY-LONG. - - HARNESS-CATEGORY-GENERAL - - This is the default category. - - HARNESS-CONFLICTS-XXX - - This lets you tell yath that no other test of type XXX can be run at - the same time as this one. You are able to set multiple conflict types - and yath will honor them. - - XXX can be replaced with any type of your choosing. - - NOTE: This directive does not alter the category of your test. You are - free to mark the test with LONG or MEDIUM in addition to this marker. - - HARNESS-JOB-SLOTS 2 - - HARNESS-JOB-SLOTS 1 10 - - Specify a range of job slots needed for the test to run. If set to a - single value then the test will only run if it can have the specified - number of slots. If given a range the test will require at least the - lower number of slots, and use up to the maximum number of slots. - - Example with multiple lines. - - #!/usr/bin/perl - # DASH and space are split the same way. - # HARNESS-CONFLICTS-DAEMON - # HARNESS-CONFLICTS MYSQL - - ... - - Or on a single line. - - #!/usr/bin/perl - # HARNESS-CONFLICTS DAEMON MYSQL - - ... - - HARNESS-RETRY-n - - This lets you specify a number (minimum n=1) of retries on test failure - for a specific test. HARNESS-RETRY-1 means a failing test will be run - twice and is equivalent to HARNESS-RETRY. - - HARNESS-NO-RETRY - - Use this to avoid this test being retried regardless of your retry - settings. - -MODULE DOCS - - This section documents the App::Yath module itself. - - SYNOPSIS - - In practice you should never need to write your own yath script, or - construct an App::Yath instance, or even access themain instance when - yath is running. However some aspects of doing so are documented here - for completeness. - - A minimum yath script looks like this: - - BEGIN { - package App::Yath:Script; - - require Time::HiRes; - require App::Yath; - require Test2::Harness::Settings; - - my $settings = Test2::Harness::Settings->new( - harness => { - orig_argv => [@ARGV], - orig_inc => [@INC], - script => __FILE__, - start => Time::HiRes::time(), - version => $App::Yath::VERSION, - }, - ); - - my $app = App::Yath->new( - argv => \@ARGV, - config => {}, - settings => $settings, - ); - - $app->generate_run_sub('App::Yath::Script::run'); - } - - exit(App::Yath::Script::run()); - - It is important that most logic live in a BEGIN block. This is so that - goto::file can be used post-fork to execute a test script. - - The actual yath script is significantly more complicated with the - following behaviors: - - pre-process essential arguments such as -D and no-scan-plugins - - re-exec with a different yath script if in developer mode and a local - copy is found - - Parse the yath-rc config files - - gather and store essential startup information - - METHODS - - App::Yath does not provide many methods to use externally. - - $app->generate_run_sub($symbol_name) - - This tells App::Yath to generate a subroutine at the specified symbol - name which can be run and be expected to return an exit value. - - $lib_path = $app->app_path() - - Get the include directory App::Yath was loaded from. +EXPORTS SOURCE @@ -545,7 +23,7 @@ AUTHORS COPYRIGHT - Copyright 2020 Chad Granum . + Copyright Chad Granum . This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/README.md b/README.md index bfb21dfaf..512743e35 100644 --- a/README.md +++ b/README.md @@ -1,519 +1,17 @@ # NAME -App::Yath - Yet Another Test Harness (Test2-Harness) Command Line Interface -(CLI) +App::Yath - FIXME # DESCRIPTION -This is the primary documentation for `yath`, [App::Yath](https://metacpan.org/pod/App%3A%3AYath), [Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness). +# SYNOPSIS -The canonical source of up-to-date command options are the help output when -using `$ yath help` and `$ yath help COMMAND`. - -This document is mainly an overview of `yath` usage and common recipes. - -[App::Yath](https://metacpan.org/pod/App%3A%3AYath) is an alternative to [App::Prove](https://metacpan.org/pod/App%3A%3AProve), and [Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness) is an alternative to [Test::Harness](https://metacpan.org/pod/Test%3A%3AHarness). It is not designed to -replace [Test::Harness](https://metacpan.org/pod/Test%3A%3AHarness)/prove. [Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness) is designed to take full -advantage of the rich data [Test2](https://metacpan.org/pod/Test2) can provide. [Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness) is also able to -use non-core modules and provide more functionality than prove can achieve with -its restrictions. - -# PLATFORM SUPPORT - -[Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness)/[App::Yath](https://metacpan.org/pod/App%3A%3AYath) is is focused on unix-like platforms. Most -development happens on linux, but bsd, macos, etc should work fine as well. - -Patches are welcome for any/all platforms, but the primary author (Chad -'Exodist' Granum) does not directly develop against non-unix platforms. - -## WINDOWS - -Currently windows is not supported, and it is known that the package will not -install on windows. Patches are be welcome, and it would be great if someone -wanted to take on the windows-support role, but it is not a primary goal for -the project. - -# OVERVIEW - -To use [Test2::Harness](https://metacpan.org/pod/Test2%3A%3AHarness), you use the `yath` command. Yath will find the tests -(or use the ones you specify) and run them. As it runs, it will output -diagnostic information such as failures. At the end, yath will print a summary -of the test run. - -`yath` can be thought of as a more powerful alternative to `prove` -([Test::Harness](https://metacpan.org/pod/Test%3A%3AHarness)) - -# RECIPES - -These are common recipes for using `yath`. - -## RUN PROJECT TESTS - - $ yath - -Simply running yath with no arguments means "Run all tests for the current -project". Yath will look for tests in `./t`, `./t2`, and `./test.pl` and -run any which are found. - -Normally this implies the `test` command but will instead imply the `run` -command if a persistent test runner is detected. - -## PRELOAD MODULES - -Yath has the ability to preload modules. Yath normally forks to start new -tests, so preloading can reduce the time spent loading modules over and over in -each test. - -Note that some tests may depend on certain modules not being loaded. In these -cases you can add the `# HARNESS-NO-PRELOAD` directive to the top of the test -files that cannot use preload. - -### SIMPLE PRELOAD - -Any module can be preloaded: - - $ yath -PMoose - -You can preload as many modules as you want: - - $ yath -PList::Util -PScalar::Util - -### COMPLEX PRELOAD - -If your preload is a subclass of [Test2::Harness::Runner::Preload](https://metacpan.org/pod/Test2%3A%3AHarness%3A%3ARunner%3A%3APreload) then more -complex preload behavior is possible. See those docs for more info. - -## LOGGING - -### RECORDING A LOG - -You can turn on logging with a flag. The filename of the log will be printed at -the end. - - $ yath -L - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl - -The event log can be quite large. It can be compressed with bzip2. - - $ yath -B - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 - -gzip compression is also supported. - - $ yath -G - ... - Wrote log file: test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.gz - -`-B` and `-G` both imply `-L`. - -### REPLAYING FROM A LOG - -You can replay a test run from a log file: - - $ yath test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 - -This will be significantly faster than the initial run as no tests are actually -being executed. All events are simply read from the log, and processed by the -harness. - -You can change display options and limit rendering/processing to specific test -jobs from the run: - - $ yath test-logs/2017-09-12~22:44:34~1505281474~25709.jsonl.bz2 -v [TEST UUID(S)] - -Note: This is done using the `$ yath replay ...` command. The `replay` -command is implied if the first argument is a log file. - -## PER-TEST TIMING DATA - -The `-T` option will cause each test file to report how long it took to run. - - $ yath -T - - ( PASSED ) job 1 t/yath_script.t - ( TIME ) job 1 Startup: 0.07692s | Events: 0.01170s | Cleanup: 0.00190s | Total: 0.09052s - -## PERSISTENT RUNNER - -yath supports starting a yath session that waits for tests to run. This is very -useful when combined with preload. - -### STARTING - -This starts the server. Many options available to the 'test' command will work -here but not all. See `$ yath help start` for more info. - - $ yath start - -### RUNNING - -This will run tests using the persistent runner. By default, it will search for -tests just like the 'test' command. Many options available to the `test` -command will work for this as well. See `$ yath help run` for more details. - - $ yath run - -### STOPPING - -Stopping a persistent runner is easy. - - $ yath stop - -### INFORMATIONAL - -The `which` command will tell you which persistent runner will be used. Yath -searches for the persistent runner in the current directory, then searches in -parent directories until it either hits the root directory, or finds the -persistent runner tracking file. - - $ yath which - -The `watch` command will tail the runner's log files. - - $ yath watch - -### PRELOAD + PERSISTENT RUNNER - -You can use preloads with the `yath start` command. In this case, yath will -track all the modules pulled in during preload. If any of them change, the -server will reload itself to bring in the changes. Further, modified modules -will be blacklisted so that they are not preloaded on subsequent reloads. This -behavior is useful if you are actively working on a module that is normally -preloaded. - -## MAKING YOUR PROJECT ALWAYS USE YATH - - $ yath init - -The above command will create `test.pl`. `test.pl` is automatically run by -most build utils, in which case only the exit value matters. The generated -`test.pl` will run `yath` and execute all tests in the `./t` and/or `./t2` -directories. Tests in `./t` will ALSO be run by prove but tests in `./t2` -will only be run by yath. - -## PROJECT-SPECIFIC YATH CONFIG - -You can write a `.yath.rc` file. The file format is very simple. Create a -`[COMMAND]` section to start the configuration for a command and then -provide any options normally allowed by it. When `yath` is run inside your -project, it will use the config specified in the rc file, unless overridden -by command line options. - -**Note:** You can also add pre-command options by placing them at the top of -your config file _BEFORE_ any `[cmd]` markers. - -Comments start with a semi-colon. - -Example .yath.rc: - - -pFoo ; Load the 'foo' plugin before dealing with commands. - - [test] - -B ;Always write a bzip2-compressed log - - [start] - -PMoose ;Always preload Moose with a persistent runner - -This file is normally committed into the project's repo. - -### SPECIAL PATH PSEUDO-FUNCTIONS - -Sometimes you want to specify files relative to the .yath.rc so that the config -option works from any subdirectory of the project. Other times you may wish to -use a shell expansion. Sometimes you want both! - -- rel(path/to/file) - - -I rel(path/to/extra_lib) - -I=rel(path/to/extra_lib) - - This will take the path to `.yath.rc` and prefix it to the path inside - `rel(...)`. If for example you have `/project/.yath.rc` then the path would - become `/project/path/to/extra_lib`. - -- glob(path/\*/file) - - --default-search glob(subprojects/*/t) - --default-search=glob(subprojects/*/t) - - This will add a `--default-search $_` for every item found in the glob. This - uses the perl builtin function `glob()` under the hood. - -- relglob(path/\*/file) - - --default-search relglob(subprojects/*/t) - --default-search=relglob(subprojects/*/t) - - Same as `glob()` except paths are relative to the `.yath.rc` file. - -## PROJECT-SPECIFIC YATH CONFIG USER OVERRIDES - -You can add a `.yath.user.rc` file. Format is the same as the regular -`.yath.rc` file. This file will be read in addition to the regular config -file. Directives in this file will come AFTER the directives in the primary -config so it may be used to override config. - -This file should not normally be committed to the project repo. - -## HARNESS DIRECTIVES INSIDE TESTS - -`yath` will recognise a number of directive comments placed near the top of -test files. These directives should be placed after the `#!` line but -before any real code. - -Real code is defined as any line that does not start with use, require, BEGIN, package, or # - -- good example 1 - - #!/usr/bin/perl - # HARNESS-NO-FORK - - ... - -- good example 2 - - #!/usr/bin/perl - use strict; - use warnings; - - # HARNESS-NO-FORK - - ... - -- bad example 1 - - #!/usr/bin/perl - - # blah - - # HARNESS-NO-FORK - - ... - -- bad example 2 - - #!/usr/bin/perl - - print "hi\n"; - - # HARNESS-NO-FORK - - ... - -### HARNESS-NO-PRELOAD - - #!/usr/bin/perl - # HARNESS-NO-PRELOAD - -Use this if your test will fail when modules are preloaded. This will tell yath -to start a new perl process to run the script instead of forking with preloaded -modules. - -Currently this implies HARNESS-NO-FORK, but that may not always be the case. - -### HARNESS-NO-FORK - - #!/usr/bin/perl - # HARNESS-NO-FORK - -Use this if your test file cannot run in a forked process, but instead must be -run directly with a new perl process. - -This implies HARNESS-NO-PRELOAD. - -### HARNESS-NO-STREAM - -`yath` usually uses the [Test2::Formatter::Stream](https://metacpan.org/pod/Test2%3A%3AFormatter%3A%3AStream) formatter instead of TAP. -Some tests depend on using a TAP formatter. This option will make `yath` use -[Test2::Formatter::TAP](https://metacpan.org/pod/Test2%3A%3AFormatter%3A%3ATAP) or [Test::Builder::Formatter](https://metacpan.org/pod/Test%3A%3ABuilder%3A%3AFormatter). - -### HARNESS-NO-IO-EVENTS - -`yath` can be configured to use the [Test2::Plugin::IOEvents](https://metacpan.org/pod/Test2%3A%3APlugin%3A%3AIOEvents) plugin. This -plugin replaces STDERR and STDOUT in your test with tied handles that fire off -proper [Test2::Event](https://metacpan.org/pod/Test2%3A%3AEvent)'s when they are printed to. Most of the time this is not -an issue, but any fancy tests or modules which do anything with STDERR or -STDOUT other than print may have really messy errors. - -**Note:** This plugin is disabled by default, so you only need this directive if -you enable it globally but need to turn it back off for select tests. - -### HARNESS-NO-TIMEOUT - -`yath` will usually kill a test if no events occur within a timeout (default -60 seconds). You can add this directive to tests that are expected to trip the -timeout, but should be allowed to continue. - -NOTE: you usually are doing the wrong thing if you need to set this. See: -`HARNESS-TIMEOUT-EVENT`. - -### HARNESS-TIMEOUT-EVENT 60 - -`yath` can be told to alter the default event timeout from 60 seconds to another -value. This is the recommended alternative to HARNESS-NO-TIMEOUT - -### HARNESS-TIMEOUT-POSTEXIT 15 - -`yath` can be told to alter the default POSTEXIT timeout from 15 seconds to another value. - -Sometimes a test will fork producing output in the child while the parent is -allowed to exit. In these cases we cannot rely on the original process exit to -tell us when a test is complete. In cases where we have an exit, and partial -output (assertions with no final plan, or a plan that has not been completed) -we wait for a timeout period to see if any additional events come into - -### HARNESS-DURATION-LONG - -This lets you tell `yath` that the test file is long-running. This is -primarily used when concurrency is turned on in order to run longer tests -earlier, and concurrently with shorter ones. There is also a `yath` option to -skip all long tests. - -This duration is set automatically if HARNESS-NO-TIMEOUT is set. - -### HARNESS-DURATION-MEDIUM - -This lets you tell `yath` that the test is medium. - -This is the default duration. - -### HARNESS-DURATION-SHORT - -This lets you tell `yath` That the test is short. - -### HARNESS-CATEGORY-ISOLATION - -This lets you tell `yath` that the test cannot be run concurrently with other -tests. Yath will hold off and run these tests one at a time after all other -tests. - -### HARNESS-CATEGORY-IMMISCIBLE - -This lets you tell `yath` that the test cannot be run concurrently with other -tests of this class. This is helpful when you have multiple tests which would -otherwise have to be run sequentially at the end of the run. - -Yath prioritizes running these tests above HARNESS-CATEGORY-LONG. - -### HARNESS-CATEGORY-GENERAL - -This is the default category. - -### HARNESS-CONFLICTS-XXX - -This lets you tell `yath` that no other test of type XXX can be run at the -same time as this one. You are able to set multiple conflict types and `yath` -will honor them. - -XXX can be replaced with any type of your choosing. - -NOTE: This directive does not alter the category of your test. You are free -to mark the test with LONG or MEDIUM in addition to this marker. - -### HARNESS-JOB-SLOTS 2 - -### HARNESS-JOB-SLOTS 1 10 - -Specify a range of job slots needed for the test to run. If set to a single -value then the test will only run if it can have the specified number of slots. -If given a range the test will require at least the lower number of slots, and -use up to the maximum number of slots. - -- Example with multiple lines. - - #!/usr/bin/perl - # DASH and space are split the same way. - # HARNESS-CONFLICTS-DAEMON - # HARNESS-CONFLICTS MYSQL - - ... - -- Or on a single line. - - #!/usr/bin/perl - # HARNESS-CONFLICTS DAEMON MYSQL - - ... - -### HARNESS-RETRY-n - -This lets you specify a number (minimum n=1) of retries on test failure -for a specific test. HARNESS-RETRY-1 means a failing test will be run twice -and is equivalent to HARNESS-RETRY. - -### HARNESS-NO-RETRY - -Use this to avoid this test being retried regardless of your retry settings. - -# MODULE DOCS - -This section documents the [App::Yath](https://metacpan.org/pod/App%3A%3AYath) module itself. - -## SYNOPSIS - -In practice you should never need to write your own yath script, or construct -an [App::Yath](https://metacpan.org/pod/App%3A%3AYath) instance, or even access themain instance when yath is running. -However some aspects of doing so are documented here for completeness. - -A minimum yath script looks like this: - - BEGIN { - package App::Yath:Script; - - require Time::HiRes; - require App::Yath; - require Test2::Harness::Settings; - - my $settings = Test2::Harness::Settings->new( - harness => { - orig_argv => [@ARGV], - orig_inc => [@INC], - script => __FILE__, - start => Time::HiRes::time(), - version => $App::Yath::VERSION, - }, - ); - - my $app = App::Yath->new( - argv => \@ARGV, - config => {}, - settings => $settings, - ); - - $app->generate_run_sub('App::Yath::Script::run'); - } - - exit(App::Yath::Script::run()); - -It is important that most logic live in a BEGIN block. This is so that -[goto::file](https://metacpan.org/pod/goto%3A%3Afile) can be used post-fork to execute a test script. - -The actual yath script is significantly more complicated with the following behaviors: - -- pre-process essential arguments such as -D and no-scan-plugins -- re-exec with a different yath script if in developer mode and a local copy is found -- Parse the yath-rc config files -- gather and store essential startup information - -## METHODS - -App::Yath does not provide many methods to use externally. - -- $app->generate\_run\_sub($symbol\_name) - - This tells App::Yath to generate a subroutine at the specified symbol name - which can be run and be expected to return an exit value. - -- $lib\_path = $app->app\_path() - - Get the include directory App::Yath was loaded from. +# EXPORTS # SOURCE The source code repository for Test2-Harness can be found at -`http://github.com/Test-More/Test2-Harness/`. +[http://github.com/Test-More/Test2-Harness/](http://github.com/Test-More/Test2-Harness/). # MAINTAINERS @@ -525,9 +23,9 @@ The source code repository for Test2-Harness can be found at # COPYRIGHT -Copyright 2020 Chad Granum . +Copyright Chad Granum . 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/` +See [http://dev.perl.org/licenses/](http://dev.perl.org/licenses/) diff --git a/author_tools/regen_schema.pl b/author_tools/regen_schema.pl index 7b8817ad7..6a0c3b9e5 100644 --- a/author_tools/regen_schema.pl +++ b/author_tools/regen_schema.pl @@ -3,8 +3,8 @@ use DBIx::QuickDB; -use Test2::Harness::UI::Util qw/qdb_driver dbd_driver/; -my $version = Test2::Harness::UI::Util->VERSION; +use App::Yath::Schema::Util qw/qdb_driver dbd_driver/; +my $version = App::Yath::Schema::Util->VERSION; my $schemadir = './share/schema/'; @@ -37,17 +37,17 @@ '-o' => 'debug=0', '-o' => 'generate_pod=0', '-o' => 'skip_load_external=1', - 'Test2::Harness::Schema', + 'App::Yath::Schema', $db->connect_string('harness_ui'), '', '' ) and die "Error"; - system("rm -rf lib/Test2/Harness/Schema/${schema}"); - mkdir "lib/Test2/Harness/Schema/${schema}"; - open(my $fh, '>', "lib/Test2/Harness/Schema/${schema}.pm") or die "Could not open file: $!"; + system("rm -rf lib/App/Yath/Schema/${schema}"); + mkdir "lib/App/Yath/Schema/${schema}"; + open(my $fh, '>', "lib/App/Yath/Schema/${schema}.pm") or die "Could not open file: $!"; print {$fh} <<" EOT"; -package Test2::Harness::Schema::${schema}; +package App::Yath::Schema::${schema}; use utf8; use strict; use warnings; @@ -57,11 +57,11 @@ package Test2::Harness::Schema::${schema}; # DO NOT MODIFY THIS FILE, GENERATED BY ${ \__FILE__ }\n -Carp::confess("Already loaded schema '\$Test2::Harness::Schema::LOADED'") if \$Test2::Harness::Schema::LOADED; +Carp::confess("Already loaded schema '\$App::Yath::Schema::LOADED'") if \$App::Yath::Schema::LOADED; -\$Test2::Harness::Schema::LOADED = "${schema}"; +\$App::Yath::Schema::LOADED = "${schema}"; -require Test2::Harness::Schema; +require App::Yath::Schema; 1; @@ -73,7 +73,7 @@ package Test2::Harness::Schema::${schema}; =head1 NAME -Test2::Harness::Schema::${schema} - Autogenerated schema file for ${schema}. +App::Yath::Schema::${schema} - Autogenerated schema file for ${schema}. =head1 SOURCE @@ -109,15 +109,15 @@ =head1 COPYRIGHT EOT close($fh); - opendir(my $dh, "tmp/$schema/Test2/Harness/Schema/Result/") or die "Could not open dir: $!"; + opendir(my $dh, "tmp/$schema/App/Yath/Schema/Result/") or die "Could not open dir: $!"; for my $file (sort readdir($dh)) { next unless $file =~ m/(.+)\.pm$/; my $pkg = $1; - my $dest = "lib/Test2/Harness/Schema/${schema}/$file"; + my $dest = "lib/App/Yath/Schema/${schema}/$file"; print "Found ${file}\n"; - my $from = "tmp/$schema/Test2/Harness/Schema/Result/$file"; + my $from = "tmp/$schema/App/Yath/Schema/Result/$file"; process_uuid($from); process_pkg($from, $schema); open(my $fh, '>>', $from) or die "Could not open '$from': $!"; @@ -131,7 +131,7 @@ =head1 COPYRIGHT =head1 NAME -Test2::Harness::Schema::${schema}::${pkg} - Autogenerated result class for ${pkg} in ${schema}. +App::Yath::Schema::${schema}::${pkg} - Autogenerated result class for ${pkg} in ${schema}. =head1 SOURCE @@ -168,10 +168,10 @@ =head1 COPYRIGHT close($fh); rename($from, $dest) or die "Could not move ${file}: $!"; - my $result = "lib/Test2/Harness/Schema/Result/$file"; + my $result = "lib/App/Yath/Schema/Result/$file"; open(my $oh, '>', $result) or die "Could not open result file: $!\n"; print $oh <<" EOT"; -package Test2::Harness::Schema::Result::$pkg; +package App::Yath::Schema::Result::$pkg; use utf8; use strict; use warnings; @@ -181,11 +181,11 @@ package Test2::Harness::Schema::Result::$pkg; # DO NOT MODIFY THIS FILE, GENERATED BY ${ \__FILE__ }\n use Carp qw/confess/; -confess "You must first load a Test2::Harness::Schema::NAME module" - unless \$Test2::Harness::Schema::LOADED; +confess "You must first load a App::Yath::Schema::NAME module" + unless \$App::Yath::Schema::LOADED; -require "Test2/Harness/Schema/\${Test2::Harness::Schema::LOADED}/${pkg}.pm"; -require "Test2/Harness/Schema/Overlay/${pkg}.pm"; +require "App/Yath/Schema/\${App::Yath::Schema::LOADED}/${pkg}.pm"; +require "App/Yath/Schema/Overlay/${pkg}.pm"; 1; @@ -197,7 +197,7 @@ package Test2::Harness::Schema::Result::$pkg; =head1 NAME -Test2::Harness::Schema::Result::$pkg - Autogenerated result class for $pkg. +App::Yath::Schema::Result::$pkg - Autogenerated result class for $pkg. =head1 SOURCE @@ -233,25 +233,25 @@ =head1 COPYRIGHT EOT close($oh); - my $override = "lib/Test2/Harness/Schema/Overlay/$file"; + my $override = "lib/App/Yath/Schema/Overlay/$file"; unless (-e $override) { print "Adding 'override' file '$override'\n"; open(my $oh, '>', $override) or die "Could not open override file: $!\n"; my $pkg = $file; $pkg =~ s/\.pm$//; print $oh <<" EOT"; -package Test2::Harness::Schema::Overlay::$pkg; +package App::Yath::Schema::Overlay::$pkg; our \$VERSION = '$version'; package - Test2::Harness::Schema::Result::$pkg; + App::Yath::Schema::Result::$pkg; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::Schema::NAME module" - unless \$Test2::Harness::Schema::LOADED; +confess "You must first load a App::Yath::Schema::NAME module" + unless \$App::Yath::Schema::LOADED; 1; @@ -263,7 +263,7 @@ package Test2::Harness::Schema::Overlay::$pkg; =head1 NAME -Test2::Harness::Schema::Result::$pkg - Overlay for $pkg result class. +App::Yath::Schema::Result::$pkg - Overlay for $pkg result class. =head1 DESCRIPTION @@ -354,7 +354,7 @@ sub process_uuid { } if ($line =~ m/use base 'DBIx::Class::Core';/) { - push @lines => "use base 'Test2::Harness::Schema::ResultBase';\n"; + push @lines => "use parent 'App::Yath::Schema::ResultBase';\n"; next; } @@ -396,7 +396,7 @@ sub process_uuid { my $specs = join "\n" => map { "__PACKAGE__->inflate_column('$_' => { inflate => \\&uuid_inflate, deflate => \\&uuid_deflate });" } @uuids; print $fh <<" EOT"; -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; $specs EOT } diff --git a/cpanfile b/cpanfile index 64aac86e0..d9d6a7893 100644 --- a/cpanfile +++ b/cpanfile @@ -1,80 +1,143 @@ -# This file is generated by Dist::Zilla::Plugin::CPANFile v6.024 +# This file is generated by Dist::Zilla::Plugin::CPANFile v6.031 # Do not edit this file directly. To change prereqs, edit the `dist.ini` file. +requires "Atomic::Pipe" => "0.021"; +requires "Capture::Tiny" => "0"; requires "Carp" => "0"; -requires "Config" => "0"; +requires "Clone" => "0"; +requires "Cpanel::JSON::XS" => "0"; +requires "Crypt::Eksblowfish::Bcrypt" => "0"; requires "Cwd" => "0"; +requires "DBI" => "0"; +requires "DBIx::Class::Helper::ResultSet::RemoveColumns" => "0"; +requires "DBIx::Class::InflateColumn::DateTime" => "0"; +requires "DBIx::Class::InflateColumn::Serializer" => "0"; +requires "DBIx::Class::InflateColumn::Serializer::JSON" => "0"; +requires "DBIx::Class::Schema::Loader" => "0"; +requires "DBIx::Class::Tree::AdjacencyList" => "0"; +requires "DBIx::Class::UUIDColumns" => "0"; +requires "DBIx::QuickDB" => "0.000020"; requires "Data::Dumper" => "0"; +requires "Data::GUID" => "0"; requires "Data::UUID" => "0"; +requires "DateTime" => "0"; +requires "DateTime::Format::MySQL" => "0"; +requires "DateTime::Format::Pg" => "0"; +requires "Email::Sender::Simple" => "0"; +requires "Email::Simple" => "0"; +requires "Email::Simple::Creator" => "0"; requires "Exporter" => "0"; requires "Fcntl" => "0"; requires "File::Find" => "0"; requires "File::Path" => "2.11"; +requires "File::ShareDir" => "0"; requires "File::Spec" => "0"; requires "File::Temp" => "0"; requires "Filter::Util::Call" => "0"; +requires "HTTP::Tiny" => "0"; requires "IO::Compress::Bzip2" => "0"; requires "IO::Compress::Gzip" => "0"; requires "IO::Handle" => "1.27"; +requires "IO::Select" => "0"; requires "IO::Uncompress::Bunzip2" => "0"; requires "IO::Uncompress::Gunzip" => "0"; requires "IPC::Cmd" => "0"; +requires "IPC::Open3" => "0"; +requires "Import::Into" => "0"; requires "Importer" => "0.025"; +requires "JSON::MaybeXS" => "0"; requires "JSON::PP" => "0"; -requires "List::Util" => "1.44"; -requires "Long::Jump" => "0.000001"; +requires "Linux::Inotify2" => "2.3"; +requires "List::Util" => "1.56"; +requires "MIME::Base64" => "0"; +requires "Net::Domain" => "0"; requires "POSIX" => "0"; +requires "Parallel::Runner" => "0.014"; +requires "Plack::App::Directory" => "0"; +requires "Plack::App::File" => "0"; +requires "Plack::Builder" => "0"; +requires "Plack::Handler::Starman" => "0"; +requires "Plack::Middleware::DBIx::DisconnectAll" => "0"; +requires "Plack::Runner" => "0"; +requires "Router::Simple" => "0"; requires "Scalar::Util" => "0"; requires "Scope::Guard" => "0"; +requires "Statistics::Basic" => "0"; +requires "Storable" => "0"; requires "Symbol" => "0"; requires "Sys::Hostname" => "0"; requires "Term::Table" => "0.015"; -requires "Test2" => "1.302170"; -requires "Test2::API" => "1.302170"; -requires "Test2::Bundle::Extended" => "0.000127"; -requires "Test2::Event" => "1.302170"; -requires "Test2::Event::V2" => "1.302170"; -requires "Test2::Formatter" => "1.302170"; +requires "Test2" => "1.302198"; +requires "Test2::API" => "1.302198"; +requires "Test2::Event" => "1.302198"; +requires "Test2::Event::V2" => "1.302198"; +requires "Test2::Formatter" => "1.302198"; requires "Test2::Plugin::MemUsage" => "0.002003"; requires "Test2::Plugin::UUID" => "0.002001"; -requires "Test2::Tools::AsyncSubtest" => "0.000127"; -requires "Test2::Tools::Subtest" => "0.000127"; -requires "Test2::Util" => "1.302170"; -requires "Test2::Util::Term" => "0.000127"; -requires "Test2::V0" => "0.000127"; -requires "Test::Builder" => "1.302170"; -requires "Test::Builder::Formatter" => "1.302170"; -requires "Test::More" => "1.302170"; +requires "Test2::Tools::AsyncSubtest" => "0.000159"; +requires "Test2::Tools::Basic" => "0"; +requires "Test2::Tools::Compare" => "0"; +requires "Test2::Tools::QuickDB" => "0"; +requires "Test2::Tools::Subtest" => "0.000159"; +requires "Test2::Util" => "1.302198"; +requires "Test2::Util::Facets2Legacy" => "0"; +requires "Test2::Util::Table" => "0"; +requires "Test2::Util::Term" => "0.000159"; +requires "Test2::Util::Times" => "0"; +requires "Test2::V0" => "0.000159"; +requires "Test::Builder" => "1.302198"; +requires "Test::Builder::Formatter" => "1.302198"; +requires "Test::More" => "1.302198"; requires "Text::ParseWords" => "0"; +requires "Text::Xslate" => "0"; +requires "Time::Elapsed" => "0.33"; requires "Time::HiRes" => "0"; +requires "XML::Generator" => "0"; requires "YAML::Tiny" => "0"; requires "base" => "0"; requires "constant" => "0"; requires "goto::file" => "0.005"; requires "parent" => "0"; requires "perl" => "5.010000"; +suggests "Class::XSAccessor" => "1.19"; suggests "Cpanel::JSON::XS" => "0"; +suggests "DBD::Pg" => "0"; +suggests "DBD::mysql" => "0"; +suggests "DBIx::Class::Storage::DBI::mysql::Retryable" => "0"; suggests "Email::Stuffer" => "0.016"; suggests "HTTP::Tiny" => "0.070"; suggests "HTTP::Tiny::Multipart" => "0.08"; suggests "IO::Pager" => "1.00"; -suggests "JSON::MaybeXS" => "0"; -suggests "Term::ANSIColor" => "4.03"; +suggests "Linux::Inotify2" => "0"; +suggests "System::Info" => "0.064"; +suggests "Term::ANSIColor" => "4.06"; suggests "Test2::Plugin::Cover" => "0.000025"; suggests "Test2::Plugin::DBIProfile" => "0.002002"; suggests "Test2::Plugin::IOEvents" => "0.001001"; suggests "Win32::Console::ANSI" => "0"; on 'test' => sub { + requires "Child" => "0"; + requires "Data::Dumper" => "0"; requires "File::Copy" => "0"; + requires "File::Temp" => "0"; + requires "HTTP::Tiny::UNIX" => "0"; + requires "Test2::Plugin::NoWarnings" => "0"; + requires "Test2::Tools::Explain" => "0"; + requires "Test::More" => "1.302198"; + requires "XML::Simple" => "0"; }; on 'configure' => sub { requires "ExtUtils::MakeMaker" => "0"; + requires "File::ShareDir::Install" => "0.06"; }; on 'develop' => sub { requires "Test2::Require::Module" => "0.000127"; + requires "Test::CheckManifest" => "0"; + requires "Test::Perl::Critic" => "0"; requires "Test::Pod" => "1.41"; + requires "Test::Pod::Coverage" => "0"; requires "Test::Spelling" => "0.12"; }; diff --git a/lib/App/Yath.pm b/lib/App/Yath.pm index 428451363..640da3abe 100644 --- a/lib/App/Yath.pm +++ b/lib/App/Yath.pm @@ -324,6 +324,7 @@ sub load_command { my $self = shift; my ($cmd) = @_; + $cmd =~ s/-/::/g; my $cmd_class = "App::Yath::Command::$cmd"; my $cmd_file = mod2file($cmd_class); @@ -658,7 +659,7 @@ Extended Version Info eval { require(mod2file($_)); 1 } ? [$_ => $_->VERSION // 'N/A'] : [$_ => 'N/A'] - } qw/Test2::API Test2::Suite Test::Builder Test2::Harness Test2::Harness::UI/, + } qw/Test2::API Test2::Suite Test::Builder Test2::Harness App::Yath::Server/, ), ( map { diff --git a/lib/App/Yath/Command/db/dumper.pm b/lib/App/Yath/Command/db/dumper.pm new file mode 100644 index 000000000..b9dbfd406 --- /dev/null +++ b/lib/App/Yath/Command/db/dumper.pm @@ -0,0 +1,74 @@ +package App::Yath::Command::db::dumper; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use App::Yath::Schema::Dumper; + +use App::Yath::Schema::Util qw/schema_config_from_settings/; + +sub summary { "Dump a Yath Database" } +sub description { "Dump a Yath Database" } +sub group { "db" } + +use parent 'App::Yath::Command'; +use Getopt::Yath; + +include_options( + 'App::Yath::Options::DB', +); + +option_group {group => 'dumper', category => "Dumper Options"} => sub { + option dir => ( + type => 'Scalar', + default => './dump', + description => 'Destination directory for dump files (default ./dump)', + ); + + option procs => ( + type => 'Scalar', + short => 'j', + alt => ['procs'], + description => 'Set the number of processes to use to dump the database', + notes => "If System::Info is installed, this will default to the cpu core count, otherwise the default is 1.", + long_examples => [' 5'], + short_examples => ['5'], + from_env_vars => [qw/DUMP_PROCS YATH_JOB_COUNT T2_HARNESS_JOB_COUNT HARNESS_JOB_COUNT/], + + default => sub { eval { require System::Info; System::Info->new->ncore } || 1 }, + + trigger => sub { + my $opt = shift; + my %params = @_; + + if ($params{action} eq 'set' || $params{action} eq 'initialize') { + my ($val) = @{$params{val}}; + return unless $val && $val =~ m/:/; + my ($jobs) = split /:/, $val; + @{$params{val}} = ($jobs); + } + }, + ); +}; + +sub run { + my $self = shift; + + my $settings = $self->settings; + my $config = schema_config_from_settings($settings); + + my $dumper = App::Yath::Schema::Dumper->new( + config => $config, + procs => $settings->dumper->procs, + dir => $settings->dumper->dir, + ); + + $dumper->dump(); +} + +1; + +__END__ + +=head1 POD IS AUTO-GENERATED diff --git a/lib/App/Yath/Command/db/importer.pm b/lib/App/Yath/Command/db/importer.pm new file mode 100644 index 000000000..7af9f2d19 --- /dev/null +++ b/lib/App/Yath/Command/db/importer.pm @@ -0,0 +1,38 @@ +package App::Yath::Command::db::importer; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +sub summary { "Start an importer process that will wait for uploaded logs to import" } +sub description { "Start an importer process that will wait for uploaded logs to import" } +sub group { "db" } + +use App::Yath::Schema::Loader; + +use App::Yath::Schema::Util qw/schema_config_from_settings/; + +use parent 'App::Yath::Command'; +use Getopt::Yath; + +include_options( + 'App::Yath::Options::DB', +); + +sub run { + my $self = shift; + + my $settings = $self->settings; + my $config = schema_config_from_settings($settings); + + $SIG{INT} = sub { exit 0 }; + $SIG{TERM} = sub { exit 0 }; + + App::Yath::Schema::Importer->new(config => $config)->run; +} + +1; + +__END__ + +=head1 POD IS AUTO-GENERATED diff --git a/lib/App/Yath/Command/db/loader.pm b/lib/App/Yath/Command/db/loader.pm new file mode 100644 index 000000000..230f9277b --- /dev/null +++ b/lib/App/Yath/Command/db/loader.pm @@ -0,0 +1,74 @@ +package App::Yath::Command::db::loader; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use App::Yath::Schema::Loader; + +use App::Yath::Schema::Util qw/schema_config_from_settings/; + +sub summary { "Load a dumped database" } +sub description { "Load a dumped database" } +sub group { "db" } + +use parent 'App::Yath::Command'; +use Getopt::Yath; + +include_options( + 'App::Yath::Options::DB', +); + +option_group {group => 'loader', category => "Loader Options"} => sub { + option dir => ( + type => 'Scalar', + default => './dump', + description => 'Directory of dump files to load (default ./dump)', + ); + + option procs => ( + type => 'Scalar', + short => 'j', + alt => ['procs'], + description => 'Set the number of processes to use to dump the database', + notes => "If System::Info is installed, this will default to the cpu core count, otherwise the default is 1.", + long_examples => [' 5'], + short_examples => ['5'], + from_env_vars => [qw/LOAD_PROCS YATH_JOB_COUNT T2_HARNESS_JOB_COUNT HARNESS_JOB_COUNT/], + + default => sub { eval { require System::Info; System::Info->new->ncore } || 1 }, + + trigger => sub { + my $opt = shift; + my %params = @_; + + if ($params{action} eq 'set' || $params{action} eq 'initialize') { + my ($val) = @{$params{val}}; + return unless $val && $val =~ m/:/; + my ($jobs) = split /:/, $val; + @{$params{val}} = ($jobs); + } + }, + ); +}; + +sub run { + my $self = shift; + + my $settings = $self->settings; + my $config = schema_config_from_settings($settings); + + my $loader = App::Yath::Schema::Loader->new( + config => $config, + procs => $settings->loader->procs, + dir => $settings->loader->dir, + ); + + $loader->load(); +} + +1; + +__END__ + +=head1 POD IS AUTO-GENERATED diff --git a/lib/App/Yath/Command/upload.pm b/lib/App/Yath/Command/db/publish.pm similarity index 68% rename from lib/App/Yath/Command/upload.pm rename to lib/App/Yath/Command/db/publish.pm index da80b4439..ece4eadae 100644 --- a/lib/App/Yath/Command/upload.pm +++ b/lib/App/Yath/Command/db/publish.pm @@ -1,4 +1,4 @@ -package App::Yath::Command::upload; +package App::Yath::Command::db::publish; use strict; use warnings; @@ -7,26 +7,27 @@ our $VERSION = '2.000000'; use IO::Uncompress::Bunzip2 qw($Bunzip2Error); use IO::Uncompress::Gunzip qw($GunzipError); -use Test2::Harness::UI::Util qw/ config_from_settings /; +use App::Yath::Schema::Util qw/schema_config_from_settings/; use Test2::Harness::Util::JSON qw/decode_json/; -use Test2::Harness::Renderer::UIDB; +use App::Yath::Schema::RunProcessor; use parent 'App::Yath::Command'; use Test2::Harness::Util::HashBase; use Getopt::Yath; +include_options( + 'App::Yath::Options::DB', + 'App::Yath::Options::Upload', +); -sub summary { "Use the YathUIDB plugin to upload a log file" } +sub summary { "Publish a log file directly to a yath database" } sub group { 'log' } sub cli_args { "[--] event_log.jsonl[.gz|.bz2]" } -sub description { - return <<" EOT"; - EOT -} +sub description { "Publish a log file directly to a yath database" } sub run { my $self = shift; @@ -40,8 +41,6 @@ sub run { die "'$file' is not a valid log file" unless -f $file; die "'$file' does not look like a log file" unless $file =~ m/\.jsonl(\.(gz|bz2))?$/; - die "The YathUIDB plugin is required" unless $settings->check_prefix('yathui-db'); - my $fh; if ($file =~ m/\.bz2$/) { $fh = IO::Uncompress::Bunzip2->new($file) or die "Could not open bz2 file: $Bunzip2Error"; @@ -53,22 +52,18 @@ sub run { open($fh, '<', $file) or die "Could not open log file: $!"; } - my $config = config_from_settings($settings); + my $config = schema_config_from_settings($settings); - my $ydb = $self->settings->prefix('yathui-db'); - my $yath = $settings->yathui; - my $user = $yath->user || $ENV{USER}; - - my $renderer = Test2::Harness::Renderer::UIDB->new( - config => $config, - settings => $settings, - user => $user, - ); + my $ydb = $settings->db; + my $yup = $settings->upload; + my $user = $yup->user || $ENV{USER}; my $is_term = -t STDOUT ? 1 : 0; print "\n" if $is_term; + my $cb = App::Yath::Schema::RunProcessor->process_lines($settings); + local $| = 1; while (my $line = <$fh>) { my $ln = $.; @@ -78,20 +73,12 @@ sub run { next if $line =~ m/^null$/ims; - my $ok = eval { - my $event = decode_json($line); - $renderer->_render_event($event); - 1; - }; - my $err = $@; - next if $ok; - - die "Error processing log on line $ln: $err"; + $cb->($line); } - print "Upload Complete\n"; + $cb->(); - $renderer->finish(); + print "Upload Complete\n"; return 0; } @@ -106,7 +93,7 @@ __END__ =head1 NAME -App::Yath::Command::upload - FIXME +App::Yath::Command::publish - FIXME =head1 DESCRIPTION diff --git a/lib/App/Yath/Command/db/sweeper.pm b/lib/App/Yath/Command/db/sweeper.pm new file mode 100644 index 000000000..b63bf9f3c --- /dev/null +++ b/lib/App/Yath/Command/db/sweeper.pm @@ -0,0 +1,116 @@ +package App::Yath::Command::db::sweeper; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use App::Yath::Schema::Loader; + +use App::Yath::Schema::Util qw/schema_config_from_settings/; + +sub summary { "Sweep a database" } +sub description { "Deletes old data from a database" } +sub group { "db" } + +use parent 'App::Yath::Command'; +use Getopt::Yath; + +include_options( + 'App::Yath::Options::DB', +); + +option_group {group => 'sweeper', category => "Sweeper Options"} => sub { + option coverage => ( + type => 'Bool', + default => 1, + description => 'Delete old coverage data (default: yes)', + ); + + option events => ( + type => 'Bool', + default => 1, + description => 'Delete old event data (default: yes)', + ); + + option job_fields => ( + type => 'Bool', + default => 1, + description => 'Delete old job field data (default: yes)', + ); + + option jobs => ( + type => 'Bool', + default => 1, + description => 'Delete old job data (default: yes)', + ); + + option resource => ( + type => 'Bool', + default => 1, + description => 'Delete old resource data (default: yes)', + ); + + option run_fields => ( + type => 'Bool', + default => 1, + description => 'Delete old run_field data (default: yes)', + ); + + option runs => ( + type => 'Bool', + default => 1, + description => 'Delete old run data (default: yes)', + ); + + option subtests => ( + type => 'Bool', + default => 1, + description => 'Delete old subtest data (default: yes)', + ); + + option interval => ( + type => 'Scalar', + default => "7 days", + description => "Interval (sql format) to delete (things older than this) defeult: '7 days'", + ); + + option job_concurrency => ( + type => 'Scalar', + default => 1, + from_env_vars => ['YATH_SWEEPER_JOB_CONCURRENCY'], + description => "How many jobs to process concurrently (This compounds with run concurrency)", + ); + + option run_concurrency => ( + type => 'Scalar', + default => 1, + from_env_vars => ['YATH_SWEEPER_RUN_CONCURRENCY'], + description => "How many runs to process concurrently (This compounds with job concurrency)", + ); + + option name => ( + type => 'Scalar', + default => sub { $ENV{USER} }, + from_env_vars => ['YATHUI_SWEEPER_NAME'], + description => "Give a name to the sweep", + ); +}; + +sub run { + my $self = shift; + + my $settings = $self->settings; + my $config = schema_config_from_settings($settings); + + my $sweeper = App::Yath::Schema::Sweeper->new( + interval => $settings->sweeper->interval, + ); + + $sweeper->sweep($settings->sweeper->all); +} + +1; + +__END__ + +=head1 POD IS AUTO-GENERATED diff --git a/lib/App/Yath/Command/run.pm b/lib/App/Yath/Command/run.pm index 94e97cf69..a44b31210 100644 --- a/lib/App/Yath/Command/run.pm +++ b/lib/App/Yath/Command/run.pm @@ -98,7 +98,7 @@ sub run { for my $sig (qw/INT TERM HUP/) { $SIG{$sig} = sub { $SIG{$sig} = 'DEFAULT'; - eval { $_->($sig) } for @sig_render; + eval { $_->signal($sig) } for @sig_render; print STDERR "\nCought SIG$sig, shutting down...\n"; $client->send_and_get(abort => $run_id); $guard->dismiss(); diff --git a/lib/App/Yath/Command/ui.pm b/lib/App/Yath/Command/server.pm similarity index 90% rename from lib/App/Yath/Command/ui.pm rename to lib/App/Yath/Command/server.pm index 5dabfaf04..1398c9f8a 100644 --- a/lib/App/Yath/Command/ui.pm +++ b/lib/App/Yath/Command/server.pm @@ -6,13 +6,13 @@ our $VERSION = '2.000000'; use Test2::Util qw/pkg_to_file/; -use Test2::Harness::UI::Util qw/share_dir share_file dbd_driver qdb_driver/; +use App::Yath::Server::Util qw/share_dir share_file dbd_driver qdb_driver/; -use Test2::Harness::UI::Config; -use Test2::Harness::UI::Importer; -use Test2::Harness::UI; +use App::Yath::Server::Config; +use App::Yath::Schema::Importer; +use App::Yath::Server; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Schema::UUID qw/gen_uuid/; use DBIx::QuickDB; use Plack::Builder; @@ -48,7 +48,7 @@ option_group {prefix => 'ui', group => 'ui', category => "UI Options"} => sub { sub summary { "Launch a standalone Test2-Harness-UI server for a log file" } -sub group { 'log' } +sub group { 'ui' } sub cli_args { "[--] event_log.jsonl[.gz|.bz2]" } @@ -64,7 +64,7 @@ sub run { my $settings = $self->settings; my $schema = $settings->ui->schema; - require(pkg_to_file("Test2::Harness::UI::Schema::$schema")); + require(pkg_to_file("App::Yath::Server::Schema::$schema")); shift @$args if @$args && $args->[0] eq '--'; @@ -83,7 +83,7 @@ sub run { $ENV{HARNESS_UI_DSN} = $dsn; print "DSN: $dsn\n"; - my $config = Test2::Harness::UI::Config->new( + my $config = App::Yath::Server::Config->new( dbi_dsn => $dsn, dbi_user => '', dbi_pass => '', @@ -108,7 +108,7 @@ sub run { }, }); - Test2::Harness::UI::Importer->new(config => $config)->run(1); + App::Yath::Schema::Importer->new(config => $config)->run(1); my $app = builder { mount '/js' => Plack::App::Directory->new({root => share_dir('js')})->to_app; @@ -117,7 +117,7 @@ sub run { mount '/img' => Plack::App::Directory->new({root => share_dir('img')})->to_app; mount '/' => sub { - Test2::Harness::UI->new(config => $config)->to_app->(@_); + App::Yath::Server->new(config => $config)->to_app->(@_); }; }; diff --git a/lib/App/Yath/Command/recent.pm b/lib/App/Yath/Command/server/recent.pm similarity index 98% rename from lib/App/Yath/Command/recent.pm rename to lib/App/Yath/Command/server/recent.pm index 13cf81444..05c9799ed 100644 --- a/lib/App/Yath/Command/recent.pm +++ b/lib/App/Yath/Command/server/recent.pm @@ -5,7 +5,7 @@ use warnings; our $VERSION = '2.000000'; use Term::Table; -use Test2::Harness::UI::Util qw/config_from_settings/; +use App::Yath::Server::Util qw/config_from_settings/; use Test2::Harness::Util::JSON qw/decode_json/; use parent 'App::Yath::Command'; diff --git a/lib/App/Yath/Options/DB.pm b/lib/App/Yath/Options/DB.pm new file mode 100644 index 000000000..ff7d6613b --- /dev/null +++ b/lib/App/Yath/Options/DB.pm @@ -0,0 +1,104 @@ +package App::Yath::Options::DB; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Getopt::Yath; + +option_group {group => 'db', prefix => 'db', category => "Database Options"} => sub { + option config => ( + type => 'Scalar', + description => "Module that implements 'MODULE->yath_db_config(%params)' which should return a App::Yath::Schema::Config instance.", + ); + + option driver => ( + type => 'Scalar', + description => "DBI Driver to use", + long_examples => [' Pg', 'mysql', 'MariaDB'], + ); + + option name => ( + type => 'Scalar', + description => 'Name of the database to use', + ); + + option user => ( + type => 'Scalar', + description => 'Username to use when connecting to the db', + ); + + option pass => ( + type => 'Scalar', + description => 'Password to use when connecting to the db', + ); + + option dsn => ( + type => 'Scalar', + description => 'DSN to use when connecting to the db', + ); + + option host => ( + type => 'Scalar', + description => 'hostname to use when connecting to the db', + ); + + option port => ( + type => 'Scalar', + description => 'port to use when connecting to the db', + ); + + option socket => ( + type => 'Scalar', + description => 'socket to use when connecting to the db', + ); +}; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Options::Schema - Options for using a database. + +=head1 DESCRIPTION + +=head1 PROVIDED OPTIONS POD IS AUTO-GENERATED + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/App/Yath/Options/Server.pm b/lib/App/Yath/Options/Server.pm new file mode 100644 index 000000000..165c5bd76 --- /dev/null +++ b/lib/App/Yath/Options/Server.pm @@ -0,0 +1,65 @@ +package App::Yath::Options::Server; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Getopt::Yath; + +option_group {group => 'server', prefix => 'server', category => "Server Options"} => sub { + option url => ( + type => 'Scalar', + alt => ['uri'], + description => "Yath-UI url", + long_examples => [" http://my-yath-ui.com/..."], + ); +}; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Options::Server - FIXME + +=head1 DESCRIPTION + +=head1 PROVIDED OPTIONS POD IS AUTO-GENERATED + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/App/Yath/Options/Upload.pm b/lib/App/Yath/Options/Upload.pm new file mode 100644 index 000000000..c56579e50 --- /dev/null +++ b/lib/App/Yath/Options/Upload.pm @@ -0,0 +1,95 @@ +package App::Yath::Options::Upload; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Getopt::Yath; + +option_group {group => 'upload', prefix => 'upload', category => "DB Upload Options"} => sub { + option flush_interval => ( + type => 'Scalar', + long_examples => [' 2', ' 1.5'], + description => 'When buffering DB writes, force a flush when an event is recieved at least N seconds after the last flush.', + ); + + option buffering => ( + type => 'Scalar', + long_examples => [ ' none', ' job', ' diag', ' run' ], + description => 'Type of buffering to use, if "none" then events are written to the db one at a time, which is SLOW', + default => 'diag', + ); + + option mode => ( + type => 'Scalar', + default => 'qvfd', + description => "Set the upload mode (default 'qvfd')", + long_examples => [ + ' summary', + ' qvf', + ' qvfd', + ' complete', + ], + ); + + option user => ( + type => 'Scalar', + default => sub { $ENV{USER} }, + description => "Username to be associated with runs stored in the database. Defaults to your shell username.", + ); + + option retry => ( + type => 'Count', + description => "How many times to try an operation before giving up", + default => 0, + ); +}; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Options::Upload - FIXME + +=head1 DESCRIPTION + +=head1 PROVIDED OPTIONS POD IS AUTO-GENERATED + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/App/Yath/Plugin/YathUIDB.pm b/lib/App/Yath/Plugin/DB.pm similarity index 75% rename from lib/App/Yath/Plugin/YathUIDB.pm rename to lib/App/Yath/Plugin/DB.pm index 15ea3f4e1..dafc71490 100644 --- a/lib/App/Yath/Plugin/YathUIDB.pm +++ b/lib/App/Yath/Plugin/DB.pm @@ -1,100 +1,128 @@ -package App::Yath::Plugin::YathUIDB; +package App::Yath::Plugin::DB; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Util qw/config_from_settings/; -use Test2::Harness::Util::JSON qw/decode_json/; +use App::Yath::Schema::Util qw/schema_config_from_settings/; use Test2::Harness::Util qw/mod2file looks_like_uuid/; use Getopt::Yath; use parent 'App::Yath::Plugin'; -option_group {prefix => 'yathui-db', category => "YathUI Options"} => sub { - option config => ( - type => 's', - description => "Module that implements 'MODULE->yath_ui_config(%params)' which should return a Test2::Harness::UI::Config instance.", - ); - - option driver => ( - type => 's', - description => "DBI Driver to use", - long_examples => [' Pg', 'mysql', 'MariaDB'], - ); - - option name => ( - type => 's', - description => 'Name of the database to use for yathui', - ); - - option user => ( - type => 's', - description => 'Username to use when connecting to the db', - ); - - option pass => ( - type => 's', - description => 'Password to use when connecting to the db', - ); - - option dsn => ( - type => 's', - description => 'DSN to use when connecting to the db', - ); - - option host => ( - type => 's', - description => 'hostname to use when connecting to the db', - ); - - option port => ( - type => 's', - description => 'port to use when connecting to the db', - ); - - option socket => ( - type => 's', - description => 'socket to use when connecting to the db', - ); - - option flush_interval => ( - type => 's', - long_examples => [' 2', ' 1.5'], - description => 'When buffering DB writes, force a flush when an event is recieved at least N seconds after the last flush.', - ); - - option buffering => ( - type => 's', - long_examples => [ ' none', ' job', ' diag', ' run' ], - description => 'Type of buffering to use, if "none" then events are written to the db one at a time, which is SLOW', - default => 'diag', - ); +include_options( + 'App::Yath::Options::DB', + 'App::Yath::Options::Upload', + 'App::Yath::Options::Yath', +); +option_group {group => 'db', prefix => 'db', category => "Database Options"} => sub { option coverage => ( - type => 'b', + type => 'Bool', description => 'Pull coverage data directly from the database (default: off)', default => 0, ); option durations => ( - type => 'b', + type => 'Bool', description => 'Pull duration data directly from the database (default: off)', default => 0, ); option duration_limit => ( - type => 's', - description => 'Limit the number of runs to look at for durations data (default: 10)', + type => 'Scalar', + description => 'Limit the number of runs to look at for durations data (default: 25)', default => 25, ); option publisher => ( - type => 's', + type => 'Scalar', description => 'When using coverage or duration data, only use data uploaded by this user', ); }; +# +# Plugin API implementations +# + +sub get_coverage_tests { + my ($plugin, $settings, $changes) = @_; + + my $ydb = $settings->prefix('yathui-db') or return; + return unless $ydb->coverage; + + my $coverages = $plugin->get_coverage_rows($settings, $changes) or return; + + my $tests = $plugin->test_map_from_coverage_rows($coverages); + + return $plugin->search_entries_from_test_map($tests, $changes, $settings); +} + +sub duration_data { + my ($plugin, $settings) = @_; + my $ydb = $settings->prefix('yathui-db') or return; + return unless $ydb->durations; + + my $config = schema_config_from_settings($settings); + my $schema = $config->schema; + my $pname = $settings->yathui->project or die "yathui-project is required.\n"; + my $project = $schema->resultset('Project')->find({name => $pname}) or die "Invalid project '$pname'.\n"; + + my %args = (user => $ydb->publisher, limit => $ydb->duration_limit); + if (my $yui = $settings->prefix('yathui')) { + $args{short} = $yui->medium_duration; + $args{medium} = $yui->long_duration; + + # TODO + #$args{median} = $yui->median_durations; + } + + return $project->durations(%args); +} + +sub grab_rerun { + my $this = shift; + my ($rerun, %params) = @_; + + return (0) if $rerun =~ m/\.jsonl(\.gz|\.bz2)?/; + + my $settings = $params{settings}; + my $mode_hash = $params{mode_hash} //= {all => 1}; + + my $config = schema_config_from_settings($settings); + my $schema = $config->schema; + + my ($ok, $err, $run); + if ($rerun eq '1') { + my $project_name = $settings->yathui->project; + my $username = $settings->yathui->user // $ENV{USER}; + $ok = eval { $run = $schema->vague_run_search(query => {}, project_name => $project_name, username => $username); 1 }; + $err = $@; + } + elsif (looks_like_uuid($rerun)) { + $ok = eval { $run = $schema->vague_run_search(query => {}, source => $rerun); 1 }; + $err = $@; + } + else { + return (0); + } + + unless ($run) { + print $ok ? "No previous run found\n" : "Error getting rerun data from yathui database: $err\n"; + return (1); + } + + print "Re-Running " . join(', ', sort keys %$mode_hash) . " tests from run id: " . $run->run_id . "\n"; + + my $data = $run->rerun_data; + + return (1, $data); +} + +# +# The rest of these are implementation details +# + sub get_coverage_searches { my ($plugin, $settings, $changes) = @_; @@ -133,7 +161,7 @@ sub get_coverage_rows { my $ydb = $settings->prefix('yathui-db') or return; return unless $ydb->coverage; - my $config = config_from_settings($settings); + my $config = schema_config_from_settings($settings); my $schema = $config->schema; my $pname = $settings->yathui->project or die "yathui-project is required.\n"; my $project = $schema->resultset('Project')->find({name => $pname}) or die "Invalid project '$pname'.\n"; @@ -177,19 +205,6 @@ sub test_map_from_coverage_rows { return \%tests; } -sub get_coverage_tests { - my ($plugin, $settings, $changes) = @_; - - my $ydb = $settings->prefix('yathui-db') or return; - return unless $ydb->coverage; - - my $coverages = $plugin->get_coverage_rows($settings, $changes) or return; - - my $tests = $plugin->test_map_from_coverage_rows($coverages); - - return $plugin->search_entries_from_test_map($tests, $changes, $settings); -} - sub search_entries_from_test_map { my ($plugin, $tests, $changes, $settings) = @_; @@ -212,67 +227,6 @@ sub search_entries_from_test_map { return @out; } -sub duration_data { - my ($plugin, $settings) = @_; - my $ydb = $settings->prefix('yathui-db') or return; - return unless $ydb->durations; - - my $config = config_from_settings($settings); - my $schema = $config->schema; - my $pname = $settings->yathui->project or die "yathui-project is required.\n"; - my $project = $schema->resultset('Project')->find({name => $pname}) or die "Invalid project '$pname'.\n"; - - my %args = (user => $ydb->publisher, limit => $ydb->duration_limit); - if (my $yui = $settings->prefix('yathui')) { - $args{short} = $yui->medium_duration; - $args{medium} = $yui->long_duration; - - # TODO - #$args{median} = $yui->median_durations; - } - - return $project->durations(%args); -} - -sub grab_rerun { - my $this = shift; - my ($rerun, %params) = @_; - - return (0) if $rerun =~ m/\.jsonl(\.gz|\.bz2)?/; - - my $settings = $params{settings}; - my $mode_hash = $params{mode_hash} //= {all => 1}; - - my $config = config_from_settings($settings); - my $schema = $config->schema; - - my ($ok, $err, $run); - if ($rerun eq '1') { - my $project_name = $settings->yathui->project; - my $username = $settings->yathui->user // $ENV{USER}; - $ok = eval { $run = $schema->vague_run_search(query => {}, project_name => $project_name, username => $username); 1 }; - $err = $@; - } - elsif (looks_like_uuid($rerun)) { - $ok = eval { $run = $schema->vague_run_search(query => {}, source => $rerun); 1 }; - $err = $@; - } - else { - return (0); - } - - unless ($run) { - print $ok ? "No previous run found\n" : "Error getting rerun data from yathui database: $err\n"; - return (1); - } - - print "Re-Running " . join(', ', sort keys %$mode_hash) . " tests from run id: " . $run->run_id . "\n"; - - my $data = $run->rerun_data; - - return (1, $data); -} - 1; __END__ @@ -283,19 +237,11 @@ __END__ =head1 NAME -App::Yath::Plugin::YathUIDB - FIXME +App::Yath::Plugin::DB - FIXME =head1 DESCRIPTION -=head1 SYNOPSIS - -=head1 EXPORTS - -=over 4 - -=back - -=head1 SOURCE +=head1 PROVIDED OPTIONS POD IS AUTO-GENERATED The source code repository for Test2-Harness can be found at L. diff --git a/lib/App/Yath/Plugin/YathUI.pm b/lib/App/Yath/Plugin/Server.pm similarity index 99% rename from lib/App/Yath/Plugin/YathUI.pm rename to lib/App/Yath/Plugin/Server.pm index c38966c0e..b33c92714 100644 --- a/lib/App/Yath/Plugin/YathUI.pm +++ b/lib/App/Yath/Plugin/Server.pm @@ -327,7 +327,7 @@ App::Yath::Plugin::YathUI - Plugin to interact with a YathUI server =head1 DESCRIPTION -If you have a Yath-UI L server, you can use this module to +If you have a Yath-UI L server, you can use this module to have yath automatically upload logs or retrieve durations data =head1 PROVIDED OPTIONS POD IS AUTO-GENERATED diff --git a/lib/App/Yath/Renderer/DB.pm b/lib/App/Yath/Renderer/DB.pm new file mode 100644 index 000000000..215f93835 --- /dev/null +++ b/lib/App/Yath/Renderer/DB.pm @@ -0,0 +1,287 @@ +package App::Yath::Renderer::DB; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# This module does not directly use these, but the process it spawns does. Load +# them here anyway so that any errors can be reported before we fork. +use Getopt::Yath::Settings; +use App::Yath::Schema::RunProcessor; + +use Atomic::Pipe; + +use Time::HiRes qw/time/; + +use Test2::Harness::Util qw/clean_path/; +use Test2::Harness::IPC::Util qw/start_process/; +use Test2::Harness::Util::JSON qw/encode_ascii_json/; +use App::Yath::Schema::UUID qw/gen_uuid/; + +use parent 'App::Yath::Renderer'; +use Test2::Harness::Util::HashBase qw{ + 'db', prefix => 'db', category => "Database Options"} => sub { + option resources => ( + type => 'Auto', + description => 'Send resource info (for supported resources) to the database at the specified interval in seconds (5 if not specified)', + long_examples => ['', '=5'], + autofill => 5, + ); +}; + +sub start { + my $self = shift; + + my ($r, $w) = Atomic::Pipe->pair; + + $w->resize($w->max_size); + $w->wh->autoflush(1); + + $self->{+WRITE_PIPE} = $w->wh; + + my %seen; + $self->{+PID} = start_process( + [ + $^X, # perl + (map { ("-I$_") } grep { -d $_ && !$seen{$_}++ } @INC), # Use the dev libs specified + "-mApp::Yath::Schema::RunProcessor", # Load processor + "-mGetopt::Yath::Settings", # Load settings lib + '-e' => <<" EOT", # Run it. +exit( + App::Yath::Schema::RunProcessor->process_stdin( + Getopt::Yath::Settings->FROM_JSON(\$ARGV[0]) + ) +); + EOT + encode_ascii_json($self->{+SETTINGS}), # Pass settings in as arg + ], + sub { + close(STDIN); + open(STDIN, '<&', $r->rh) or die "Could not open STDIN to pipe: $!"; + $w->close; + } + ); + + $r->close; + + return; +} + +sub render_event { + my $self = shift; + my ($e) = @_; + + return if $self->{+STOPPED}; + + my $spipe = 0; + local $SIG{PIPE} = sub { + warn "Caught SIGPIPE while writing to the database"; + $spipe++; + $self->{+STOPPED} = 'SIGPIPE'; + close($self->{+WRITE_PIPE}); + $self->{+WRITE_PIPE} = undef; + }; + + my $ok = eval { + print {$self->{+WRITE_PIPE}} encode_ascii_json($e), "\n"; + 1; + }; + + die $@ unless $ok || $spipe; + + return; +} + +sub step { + my $self = shift; + + $self->send_resources(); +} + +sub signal { + my $self = shift; + my ($sig) = @_; + + return if $self->{+STOPPED}; + + $self->_stop("SIG$SIG"); + $self->_close(); + + kill($sig, $self->{+PID}); + + $self->_wait(); + + return $sig; +} + +sub _stop { + my $self = shift; + my ($why) = @_; + + push @{$self->{+STOPPED} //= []} => $why; +} + +sub _close { + my $self = shift; + + my $p = delete $self->{+WRITE_PIPE} or return; + close($p); +} + +sub _wait { + my $self = shift; + + my $pid = delete $self->{+PID} or return; + waitpid($pid, 0); +} + +sub finish { + my $self = shift; + + $self->_stop('finish'); + $self->_close(); + $self->_wait(); + + return; +} + +sub resource_interval { + my $self = shift; + return $self->{+RESOURCE_INTERVAL} //= $self->settings->db->resources; +} + +sub resources { + my $self = shift; + return $self->{+RESOURCES} if $self->{+RESOURCES}; + + die "FIXME"; + + my $state = $self->state; + $state->poll; + + return $self->{+RESOURCES} = [grep { $_ && $_->can('status_data') } @{$state->resources}]; +} + +sub send_resources { + my $self = shift; + + my $interval = $self->resource_interval or return; + my $resources = $self->resources or return; + return unless @$resources; + + my $stamp = time; + + if (my $last = $self->{+LAST_RESOURCE_STAMP}) { + my $delta = $stamp - $last; + return unless $delta >= $interval; + } + + unless(eval { $self->_send_resources($stamp => $resources); 1 }) { + my $err = $@; + warn "Non fatal error, could not send resource info to YathUI: $err"; + return; + } + + return $self->{+LAST_RESOURCE_STAMP} = $stamp; +} + +sub _send_resources { + my $self = shift; + my ($stamp, $resources) = @_; + + my $batch_id = gen_uuid(); + my $ord = 0; + my @items; + for my $res (@$resources) { + my $data = $res->status_data or next; + + my $item = { + resource_id => gen_uuid(), + resource_batch_id => $batch_id, + batch_ord => $ord++, + module => ref($res) || $res, + data => encode_ascii_json($data), + }; + + push @items => $item; + } + + return unless @items; + + $self->render_event({facet_data => {db_resources => {stamp => $stamp, batch_id => $batch_id, items => \@items}}}); + + return; +} + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Renderer::DB - FIXME + +=head1 DESCRIPTION + +=head1 SYNOPSIS + +=head1 EXPORTS + +=over 4 + +=back + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/App/Yath/Renderer/Default.pm b/lib/App/Yath/Renderer/Default.pm index 5664570b6..82104ad3d 100644 --- a/lib/App/Yath/Renderer/Default.pm +++ b/lib/App/Yath/Renderer/Default.pm @@ -184,8 +184,6 @@ sub render_event { my $num = $f->{assert} && $f->{assert}->{number} ? $f->{assert}->{number} : undef; $self->write($event, $num, $f); - - $self->render_final_data($f->{final_data}) if $f->{final_data}; } sub write { diff --git a/lib/App/Yath/Renderer/UI.pm b/lib/App/Yath/Renderer/Server.pm similarity index 93% rename from lib/App/Yath/Renderer/UI.pm rename to lib/App/Yath/Renderer/Server.pm index 34e3361fd..ea267b736 100644 --- a/lib/App/Yath/Renderer/UI.pm +++ b/lib/App/Yath/Renderer/Server.pm @@ -1,17 +1,17 @@ -package App::Yath::Renderer::UI; +package App::Yath::Renderer::Server; use strict; use warnings; use Carp qw/croak/; -use Test2::Harness::UI; -use Test2::Harness::UI::Config; -use Test2::Harness::UI::RunProcessor; +use App::Yath::Server; +use App::Yath::Server::Config; +use App::Yath::Schema::RunProcessor; use Test2::Util qw/pkg_to_file/; use Test2::Harness::Util qw/mod2file/; -use Test2::Harness::UI::Util qw/share_dir share_file dbd_driver qdb_driver/; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Server::Util qw/share_dir share_file dbd_driver qdb_driver/; +use App::Yath::Schema::UUID qw/gen_uuid/; use DBIx::QuickDB; use Plack::Builder; @@ -23,7 +23,7 @@ use Net::Domain qw/hostfqdn/; our $VERSION = '2.000000'; -use parent 'App::Yath::Renderer::UIDB'; +use parent 'App::Yath::Renderer::DB'; use Test2::Harness::Util::HashBase qw{ qdb app @@ -127,7 +127,7 @@ sub init { my $settings = $self->{+SETTINGS}; my $schema = $settings->yathui->schema // 'PostgreSQL'; - require(pkg_to_file("Test2::Harness::UI::Schema::$schema")); + require(pkg_to_file("App::Yath::Server::Schema::$schema")); my $tmp = $settings->check_prefix('workspace') ? $settings->workspace->workdir : undef; local $ENV{TMPDIR} = $tmp if $tmp; @@ -144,7 +144,7 @@ sub init { $ENV{HARNESS_UI_DSN} = $dsn; - my $config = Test2::Harness::UI::Config->new( + my $config = App::Yath::Server::Config->new( dbi_dsn => $dsn, dbi_user => '', dbi_pass => '', @@ -222,7 +222,7 @@ sub start_app { mount '/img' => Plack::App::Directory->new({root => share_dir('img')})->to_app; mount '/' => sub { - Test2::Harness::UI->new(config => $config)->to_app->(@_); + App::Yath::Server->new(config => $config)->to_app->(@_); }; }; @@ -274,7 +274,7 @@ __END__ =head1 NAME -App::Yath::Renderer::UI - FIXME +App::Yath::Renderer::Server - FIXME =head1 DESCRIPTION diff --git a/lib/App/Yath/Renderer/UIDB.pm b/lib/App/Yath/Renderer/UIDB.pm deleted file mode 100644 index 343d8f36e..000000000 --- a/lib/App/Yath/Renderer/UIDB.pm +++ /dev/null @@ -1,312 +0,0 @@ -package App::Yath::Renderer::UIDB; -use strict; -use warnings; - -use Carp qw/croak/; -use Sys::Hostname qw/hostname/; - -use DateTime; - -use Time::HiRes qw/time/; -use Test2::Harness::UI::Config; -use Test2::Harness::UI::RunProcessor; -use Test2::Harness::Runner::State; -use Test2::Harness::UI::Util qw/config_from_settings/; -use Test2::Harness::Util::JSON qw/encode_json/; - -use Test2::Harness::UI::UUID qw/gen_uuid uuid_inflate/; - -use Test2::Harness::Util qw/mod2file/; - -our $VERSION = '2.000000'; - -use parent 'App::Yath::Renderer'; -use Test2::Harness::Util::HashBase qw{ - settings; - - my $yath = $settings->yathui; - $self->{+PROJECT} //= $yath->project || die "The yathui-project option is required.\n"; - $self->{+USER} //= $yath->user || die "The yathui-user option is required.\n"; - - my $config = $self->{+CONFIG} //= config_from_settings($settings); - - my $dbh = $config->connect // die "Could not connect to the db"; - $dbh->{mysql_auto_reconnect} = 1 if $Test2::Harness::UI::Schema::LOADED =~ m/mysql/i; - - STDOUT->autoflush(1); - print $self->links; -} - -sub step { - my $self = shift; - - $self->send_resources(); -} - -sub resource_interval { - my $self = shift; - return $self->{+RESOURCE_INTERVAL} //= $self->settings->yathui->resources; -} - -sub state { - my $self = shift; - - return $self->{+STATE} if $self->{+STATE}; - - my $settings = $self->settings; - - return $self->{+STATE} = Test2::Harness::Runner::State->new( - observe => 1, - job_count => $settings->runner->job_count // 1, - workdir => $settings->workspace->workdir, - ); -} - -sub resources { - my $self = shift; - return $self->{+RESOURCES} if $self->{+RESOURCES}; - - my $state = $self->state; - $state->poll; - - return $self->{+RESOURCES} = [grep { $_ && $_->can('status_data') } @{$state->resources}]; -} - -sub send_resources { - my $self = shift; - - return unless $self->{+RUN}; - - my $interval = $self->resource_interval or return; - my $resources = $self->resources or return; - return unless @$resources; - - my $stamp = time; - - if (my $last = $self->{+LAST_RESOURCE_STAMP}) { - my $delta = $stamp - $last; - return unless $delta >= $interval; - } - - unless(eval { $self->_send_resources($stamp => $resources); 1 }) { - my $err = $@; - warn "Non fatal error, could not send resource info to YathUI: $err"; - return; - } - - return $self->{+LAST_RESOURCE_STAMP} = $stamp; -} - -sub host { - my $self = shift; - return $self->{+HOST} //= $self->{+CONFIG}->schema->resultset('Host')->find_or_create({hostname => hostname(), host_id => gen_uuid()}); -} - -sub _send_resources { - my $self = shift; - my ($stamp, $resources) = @_; - - my $config = $self->{+CONFIG}; - - my $run_id = $self->settings->run->run_id; - my $host_id = $self->host->host_id; - - my $res_rs = $config->schema->resultset('Resource'); - my $batch_rs = $config->schema->resultset('ResourceBatch'); - - $self->state->poll; - - my $dt_stamp = DateTime->from_epoch(epoch => $stamp, time_zone => 'local'); - - my $batch_id = gen_uuid(); - my $batch = $batch_rs->create({ - resource_batch_id => $batch_id, - run_id => uuid_inflate($run_id), - host_id => uuid_inflate($host_id), - stamp => $dt_stamp, - }); - - my $ord = 0; - - my @items; - for my $res (@$resources) { - my $data = $res->status_data or next; - - my $item = { - resource_id => gen_uuid(), - resource_batch_id => $batch_id, - batch_ord => $ord++, - module => ref($res) || $res, - data => encode_json($data), - }; - - push @items => $item; - } - - $res_rs->populate(\@items); - - return; -} - -sub links { - my $self = shift; - return $self->{+LINKS} if defined $self->{+LINKS}; - - if (my $url = $self->settings->yathui->url) { - $self->{+LINKS} = "\nThis run can be reviewed at: $url/view/" . $self->settings->run->run_id . "\n\n"; - } - - return $self->{+LINKS} //= ""; -} - -sub signal { - my $self = shift; - my ($sig) = @_; - - $self->{+PROCESSOR}->set_signal($sig) if $self->{+PROCESSOR}; - - my $run = $self->{+RUN} or return; - $run->update({status => 'canceled', error => "Canceled with signal '$sig'"}); -} - -sub render_event { - my $self = shift; - my @args = @_; - - my $out; - eval { $out = $self->_render_event(@args); 1 } and return $out; - warn "YathUI-DB Renderer error:\n====\n$@\n====\n"; -} - -sub _render_event { - my $self = shift; - my ($event) = @_; - - my $f = $event->{facet_data}; - - if (my $runf = $f->{harness_run}) { - my $run_id = uuid_inflate($runf->{run_id}) or die "No run-id?"; - - my $config = $self->{+CONFIG}; - - my $p = $config->schema->resultset('Project')->find_or_create({name => $self->{+PROJECT}, project_id => gen_uuid()}); - my $u = $config->schema->resultset('User')->find_or_create({username => $self->{+USER}, user_id => gen_uuid(), role => 'user'}); - - my $ydb = $self->settings->prefix('yathui-db') or die "No DB settings"; - my $run = $config->schema->resultset('Run')->create({ - run_id => $run_id, - mode => $self->settings->yathui->mode, - buffer => $ydb->buffering, - status => 'pending', - user_id => $u->user_id, - project_id => $p->project_id, - }); - - $self->{+RUN} = $run; - - my $processor = Test2::Harness::UI::RunProcessor->new( - config => $config, - run => $run, - interval => $ydb->flush_interval, - ); - - $self->{+PROCESSOR} = $processor; - $processor->start(); - } - elsif (!$self->{+RUN}) { - die "Run was not seen!"; - } - - $self->{+PROCESSOR}->process_event($event, $f); -} - -sub finish { - my $self = shift; - - eval { $self->{+PROCESSOR}->finish(); 1 } or warn "YathUI-DB finish error:\n====\n$@\n====\n"; - - $self->{+FINISHED} = 1; - - print $self->links; -} - -sub DESTROY { - my $self = shift; - - return if $self->{+FINISHED}; - - my $run = $self->{+RUN} or return; - $run->update({status => 'broken', error => 'Run did not finish'}); -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -App::Yath::Renderer::UIDB - FIXME - -=head1 DESCRIPTION - -=head1 SYNOPSIS - -=head1 EXPORTS - -=over 4 - -=back - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut - diff --git a/lib/Test2/Harness/UI/Schema.pm b/lib/App/Yath/Schema.pm similarity index 87% rename from lib/Test2/Harness/UI/Schema.pm rename to lib/App/Yath/Schema.pm index 4c920765b..ed2b6a720 100644 --- a/lib/Test2/Harness/UI/Schema.pm +++ b/lib/App/Yath/Schema.pm @@ -1,23 +1,23 @@ -package Test2::Harness::UI::Schema; +package App::Yath::Schema; use utf8; use strict; use warnings; use Carp qw/confess/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; our $VERSION = '2.000000'; use base 'DBIx::Class::Schema'; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; -if ($Test2::Harness::UI::Schema::LOADED =~ m/MySQL/ && eval { require DBIx::Class::Storage::DBI::mysql::Retryable; 1 }) { +if ($App::Yath::Schema::LOADED =~ m/MySQL/ && eval { require DBIx::Class::Storage::DBI::mysql::Retryable; 1 }) { __PACKAGE__->storage_type('::DBI::mysql::Retryable'); } -require Test2::Harness::UI::Schema::ResultSet; +require App::Yath::Schema::ResultSet; __PACKAGE__->load_namespaces( default_resultset_class => 'ResultSet', ); diff --git a/lib/App/Yath/Schema/Config.pm b/lib/App/Yath/Schema/Config.pm new file mode 100644 index 000000000..2b4766844 --- /dev/null +++ b/lib/App/Yath/Schema/Config.pm @@ -0,0 +1,116 @@ +package App::Yath::Schema::Config; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Test2::Harness::Util qw/mod2file/; + +use Carp qw/croak/; + +use Test2::Harness::Util::HashBase qw{ + -_schema + -dbi_dsn -dbi_user -dbi_pass +}; + +sub disconnect { shift->schema->storage->disconnect } +sub connect { shift->schema->storage->dbh } + +sub init { + my $self = shift; + + croak "'dbi_dsn' is a required attribute" + unless defined $self->{+DBI_DSN}; + + croak "'dbi_user' is a required attribute" + unless defined $self->{+DBI_USER}; + + croak "'dbi_pass' is a required attribute" + unless defined $self->{+DBI_PASS}; +} + +sub guess_db_driver { + my $self = shift; + + return 'MySQL' if $self->{+DBI_DSN} =~ m/(mysql|maria|percona)/i; + return 'PostgreSQL' if $self->{+DBI_DSN} =~ m/(pg|postgre)/i; + return 'PostgreSQL'; # Default +} + +sub db_driver { + my $self = shift; + return $ENV{YATH_UI_SCHEMA} //= $self->guess_db_driver; +} + +sub schema { + my $self = shift; + + return $self->{+_SCHEMA} if $self->{+_SCHEMA}; + + { + no warnings 'once'; + unless ($App::Yath::Schema::LOADED) { + my $schema = $ENV{YATH_UI_SCHEMA} //= $self->guess_db_driver; + require(mod2file("App::Yath::Schema::$schema")); + } + } + + require App::Yath::Schema; + + return $self->{+_SCHEMA} = App::Yath::Schema->connect( + $self->dbi_dsn, + $self->dbi_user, + $self->dbi_pass, + {AutoCommit => 1, RaiseError => 1}, + ); +} + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Config - Schema configuration + +=head1 DESCRIPTION + +=head1 SYNOPSIS + +TODO + +=head1 SOURCE + +The source code repository for Test2-Harness-UI can be found at +F. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See F + +=cut diff --git a/lib/Test2/Harness/UI/Util/DateTimeFormat.pm b/lib/App/Yath/Schema/DateTimeFormat.pm similarity index 74% rename from lib/Test2/Harness/UI/Util/DateTimeFormat.pm rename to lib/App/Yath/Schema/DateTimeFormat.pm index 224d2ad71..b7564fd81 100644 --- a/lib/Test2/Harness/UI/Util/DateTimeFormat.pm +++ b/lib/App/Yath/Schema/DateTimeFormat.pm @@ -1,7 +1,9 @@ -package Test2::Harness::UI::Util::DateTimeFormat; +package App::Yath::Schema::DateTimeFormat; use strict; use warnings; +our $VERSION = '2.000000'; + use Carp qw/confess/; use Importer Importer => 'import'; @@ -11,15 +13,15 @@ my $DTF; sub DTF { return $DTF if $DTF; - confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; + confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; - if ($Test2::Harness::UI::Schema::LOADED =~ m/postgresql/i) { + if ($App::Yath::Schema::LOADED =~ m/postgresql/i) { require DateTime::Format::Pg; return $DTF = 'DateTime::Format::Pg'; } - if ($Test2::Harness::UI::Schema::LOADED =~ m/mysql/i) { + if ($App::Yath::Schema::LOADED =~ m/mysql/i) { require DateTime::Format::MySQL; return $DTF = 'DateTime::Format::MySQL'; } @@ -37,7 +39,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Util::DateTimeFormat - FIXME +App::Yath::Schema::DateTimeFormat - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Dumper.pm b/lib/App/Yath/Schema/Dumper.pm similarity index 90% rename from lib/Test2/Harness/UI/Dumper.pm rename to lib/App/Yath/Schema/Dumper.pm index 7d20d38c3..6147d46db 100644 --- a/lib/Test2/Harness/UI/Dumper.pm +++ b/lib/App/Yath/Schema/Dumper.pm @@ -1,12 +1,12 @@ -package Test2::Harness::UI::Dumper; +package App::Yath::Schema::Dumper; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Util qw/format_duration/; +use App::Yath::Schema::Util qw/format_duration/; use Test2::Harness::Util::JSON qw/encode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; use Time::HiRes qw/time/; use Parallel::Runner; use IO::Compress::Bzip2; @@ -14,6 +14,7 @@ use IO::Compress::Bzip2; use Test2::Harness::Util::HashBase qw{ config; my $schema = $config->schema; - mkdir("./dump") unless -d "./dump"; + my $dir = $self->dir; + + mkdir($dir) unless -d $dir; my %seen; for my $source (@DUMP_ORDER, $schema->sources) { @@ -69,12 +72,12 @@ sub dump { my $len = length($pages); while ($page <= $pages) { - my $file = "./dump/${source}-" . sprintf("%0${len}d", $page) . ".jsonl.bz2"; + my $file = "${dir}/${source}-" . sprintf("%0${len}d", $page) . ".jsonl.bz2"; die "Dump file '$file' already exists!\n" if -e $file; $runner->run(sub { print "$$ $source STARTED ($page/$pages) -> $file\n"; - my $fh = IO::Compress::Bzip2->new("./dump/${source}-" . sprintf("%0${len}d", $page) . ".jsonl.bz2") or die "Could not open log file: $IO::Compress::Bzip2::Bzip2Error"; + my $fh = IO::Compress::Bzip2->new("${dir}/${source}-" . sprintf("%0${len}d", $page) . ".jsonl.bz2") or die "Could not open log file: $IO::Compress::Bzip2::Bzip2Error"; my $start_page = time; my $page_rs = $res->page($page); @@ -120,7 +123,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Dumper - FIXME +App::Yath::Schema::Dumper - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Util/ImportModes.pm b/lib/App/Yath/Schema/ImportModes.pm similarity index 96% rename from lib/Test2/Harness/UI/Util/ImportModes.pm rename to lib/App/Yath/Schema/ImportModes.pm index 86eee8de1..081798e0d 100644 --- a/lib/Test2/Harness/UI/Util/ImportModes.pm +++ b/lib/App/Yath/Schema/ImportModes.pm @@ -1,7 +1,9 @@ -package Test2::Harness::UI::Util::ImportModes; +package App::Yath::Schema::ImportModes; use strict; use warnings; +our $VERSION = '2.000000'; + use Scalar::Util qw/blessed reftype/; use Carp qw/croak/; @@ -134,7 +136,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Util::ImportModes - FIXME +App::Yath::Schema::ImportModes - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Importer.pm b/lib/App/Yath/Schema/Importer.pm similarity index 94% rename from lib/Test2/Harness/UI/Importer.pm rename to lib/App/Yath/Schema/Importer.pm index 61ca8c8ba..06e277208 100644 --- a/lib/Test2/Harness/UI/Importer.pm +++ b/lib/App/Yath/Schema/Importer.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Importer; +package App::Yath::Schema::Importer; use strict; use warnings; @@ -6,11 +6,11 @@ our $VERSION = '2.000000'; use Carp qw/croak/; -use Test2::Harness::UI::RunProcessor; +use App::Yath::Schema::RunProcessor; use Test2::Harness::Util::HashBase qw/-config -worker_id/; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Schema::UUID qw/gen_uuid/; use Test2::Harness::Util::JSON qw/decode_json/; use IO::Uncompress::Bunzip2 qw($Bunzip2Error); @@ -91,7 +91,7 @@ sub process_log { } } - my $processor = Test2::Harness::UI::RunProcessor->new( + my $processor = App::Yath::Schema::RunProcessor->new( run => $run, config => $self->{+CONFIG}, buffer => 1, @@ -138,7 +138,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Importer +App::Yath::Schema::Importer =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Loader.pm b/lib/App/Yath/Schema/Loader.pm similarity index 96% rename from lib/Test2/Harness/UI/Loader.pm rename to lib/App/Yath/Schema/Loader.pm index 6b8b67cc0..3f7c7ecec 100644 --- a/lib/Test2/Harness/UI/Loader.pm +++ b/lib/App/Yath/Schema/Loader.pm @@ -1,12 +1,12 @@ -package Test2::Harness::UI::Loader; +package App::Yath::Schema::Loader; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Util qw/format_duration/; +use App::Yath::Schema::Util qw/format_duration/; use Test2::Harness::Util::JSON qw/decode_json/; -use Test2::Harness::UI::UUID qw/uuid_deflate/; +use App::Yath::Schema::UUID qw/uuid_deflate/; use Time::HiRes qw/time/; use Parallel::Runner; use IO::Uncompress::Bunzip2; @@ -116,7 +116,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Loader - FIXME +App::Yath::Schema::Loader - FIXME =head1 DESCRIPTION diff --git a/lib/App/Yath/Schema/MySQL.pm b/lib/App/Yath/Schema/MySQL.pm new file mode 100644 index 000000000..24b42b0c3 --- /dev/null +++ b/lib/App/Yath/Schema/MySQL.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::MySQL; +use utf8; +use strict; +use warnings; +use Carp(); + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +Carp::confess("Already loaded schema '$App::Yath::Schema::LOADED'") if $App::Yath::Schema::LOADED; + +$App::Yath::Schema::LOADED = "MySQL"; + +require App::Yath::Schema; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::MySQL - Autogenerated schema file for MySQL. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL/ApiKey.pm b/lib/App/Yath/Schema/MySQL/ApiKey.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/MySQL/ApiKey.pm rename to lib/App/Yath/Schema/MySQL/ApiKey.pm index d87c968ad..fe00443ca 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/ApiKey.pm +++ b/lib/App/Yath/Schema/MySQL/ApiKey.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::ApiKey; +package App::Yath::Schema::MySQL::ApiKey; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::ApiKey; + App::Yath::Schema::Result::ApiKey; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -38,14 +40,14 @@ __PACKAGE__->set_primary_key("api_key_id"); __PACKAGE__->add_unique_constraint("value", ["value"]); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('api_key_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -60,7 +62,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::ApiKey - Autogenerated result class for ApiKey in MySQL. +App::Yath::Schema::MySQL::ApiKey - Autogenerated result class for ApiKey in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Binary.pm b/lib/App/Yath/Schema/MySQL/Binary.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/MySQL/Binary.pm rename to lib/App/Yath/Schema/MySQL/Binary.pm index 88972d550..200118124 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Binary.pm +++ b/lib/App/Yath/Schema/MySQL/Binary.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Binary; +package App::Yath::Schema::MySQL::Binary; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Binary; + App::Yath::Schema::Result::Binary; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -35,16 +37,16 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("binary_id"); __PACKAGE__->belongs_to( "event", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { event_id => "event_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('binary_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('binary_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -57,7 +59,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Binary - Autogenerated result class for Binary in MySQL. +App::Yath::Schema::MySQL::Binary - Autogenerated result class for Binary in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Coverage.pm b/lib/App/Yath/Schema/MySQL/Coverage.pm similarity index 84% rename from lib/Test2/Harness/UI/Schema/MySQL/Coverage.pm rename to lib/App/Yath/Schema/MySQL/Coverage.pm index fed8bccb7..2652f9922 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Coverage.pm +++ b/lib/App/Yath/Schema/MySQL/Coverage.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Coverage; +package App::Yath::Schema::MySQL::Coverage; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Coverage; + App::Yath::Schema::Result::Coverage; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -49,7 +51,7 @@ __PACKAGE__->add_unique_constraint( ); __PACKAGE__->belongs_to( "coverage_manager", - "Test2::Harness::UI::Schema::Result::CoverageManager", + "App::Yath::Schema::Result::CoverageManager", { coverage_manager_id => "coverage_manager_id" }, { is_deferrable => 1, @@ -60,7 +62,7 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 1, @@ -71,38 +73,38 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "source_file", - "Test2::Harness::UI::Schema::Result::SourceFile", + "App::Yath::Schema::Result::SourceFile", { source_file_id => "source_file_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "source_sub", - "Test2::Harness::UI::Schema::Result::SourceSub", + "App::Yath::Schema::Result::SourceSub", { source_sub_id => "source_sub_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('coverage_manager_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('source_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('coverage_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('coverage_manager_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('source_sub_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -116,7 +118,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Coverage - Autogenerated result class for Coverage in MySQL. +App::Yath::Schema::MySQL::Coverage - Autogenerated result class for Coverage in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/CoverageManager.pm b/lib/App/Yath/Schema/MySQL/CoverageManager.pm similarity index 76% rename from lib/Test2/Harness/UI/Schema/MySQL/CoverageManager.pm rename to lib/App/Yath/Schema/MySQL/CoverageManager.pm index fd75b4319..c16a4d8eb 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/CoverageManager.pm +++ b/lib/App/Yath/Schema/MySQL/CoverageManager.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::CoverageManager; +package App::Yath::Schema::MySQL::CoverageManager; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::CoverageManager; + App::Yath::Schema::Result::CoverageManager; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,14 +30,14 @@ __PACKAGE__->set_primary_key("coverage_manager_id"); __PACKAGE__->add_unique_constraint("package", ["package"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.coverage_manager_id" => "self.coverage_manager_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('coverage_manager_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -49,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::CoverageManager - Autogenerated result class for CoverageManager in MySQL. +App::Yath::Schema::MySQL::CoverageManager - Autogenerated result class for CoverageManager in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Email.pm b/lib/App/Yath/Schema/MySQL/Email.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/MySQL/Email.pm rename to lib/App/Yath/Schema/MySQL/Email.pm index 912b11ec9..d963ec8bc 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Email.pm +++ b/lib/App/Yath/Schema/MySQL/Email.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Email; +package App::Yath::Schema::MySQL::Email; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Email; + App::Yath::Schema::Result::Email; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -34,28 +36,28 @@ __PACKAGE__->set_primary_key("email_id"); __PACKAGE__->add_unique_constraint("local", ["local", "domain"]); __PACKAGE__->might_have( "email_verification_code", - "Test2::Harness::UI::Schema::Result::EmailVerificationCode", + "App::Yath::Schema::Result::EmailVerificationCode", { "foreign.email_id" => "self.email_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->might_have( "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", + "App::Yath::Schema::Result::PrimaryEmail", { "foreign.email_id" => "self.email_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -68,7 +70,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Email - Autogenerated result class for Email in MySQL. +App::Yath::Schema::MySQL::Email - Autogenerated result class for Email in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/EmailVerificationCode.pm b/lib/App/Yath/Schema/MySQL/EmailVerificationCode.pm similarity index 76% rename from lib/Test2/Harness/UI/Schema/MySQL/EmailVerificationCode.pm rename to lib/App/Yath/Schema/MySQL/EmailVerificationCode.pm index 0f7381bc8..fceb5f33f 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/EmailVerificationCode.pm +++ b/lib/App/Yath/Schema/MySQL/EmailVerificationCode.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::EmailVerificationCode; +package App::Yath::Schema::MySQL::EmailVerificationCode; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::EmailVerificationCode; + App::Yath::Schema::Result::EmailVerificationCode; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,16 +30,16 @@ __PACKAGE__->set_primary_key("evcode_id"); __PACKAGE__->add_unique_constraint("email_id", ["email_id"]); __PACKAGE__->belongs_to( "email", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { email_id => "email_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('evcode_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -50,7 +52,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::EmailVerificationCode - Autogenerated result class for EmailVerificationCode in MySQL. +App::Yath::Schema::MySQL::EmailVerificationCode - Autogenerated result class for EmailVerificationCode in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Event.pm b/lib/App/Yath/Schema/MySQL/Event.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/MySQL/Event.pm rename to lib/App/Yath/Schema/MySQL/Event.pm index 8139f5504..a351740ae 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Event.pm +++ b/lib/App/Yath/Schema/MySQL/Event.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Event; +package App::Yath::Schema::MySQL::Event; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Event; + App::Yath::Schema::Result::Event; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -62,28 +64,28 @@ __PACKAGE__->set_primary_key("event_id"); __PACKAGE__->add_unique_constraint("insert_ord", ["insert_ord", "job_key"]); __PACKAGE__->has_many( "binaries", - "Test2::Harness::UI::Schema::Result::Binary", + "App::Yath::Schema::Result::Binary", { "foreign.event_id" => "self.event_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.event_id" => "self.event_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('parent_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -97,7 +99,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Event - Autogenerated result class for Event in MySQL. +App::Yath::Schema::MySQL::Event - Autogenerated result class for Event in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Host.pm b/lib/App/Yath/Schema/MySQL/Host.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/MySQL/Host.pm rename to lib/App/Yath/Schema/MySQL/Host.pm index 46fc0e4cc..1574ce0fe 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Host.pm +++ b/lib/App/Yath/Schema/MySQL/Host.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Host; +package App::Yath::Schema::MySQL::Host; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Host; + App::Yath::Schema::Result::Host; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,14 +30,14 @@ __PACKAGE__->set_primary_key("host_id"); __PACKAGE__->add_unique_constraint("hostname", ["hostname"]); __PACKAGE__->has_many( "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { "foreign.host_id" => "self.host_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -49,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Host - Autogenerated result class for Host in MySQL. +App::Yath::Schema::MySQL::Host - Autogenerated result class for Host in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Job.pm b/lib/App/Yath/Schema/MySQL/Job.pm similarity index 86% rename from lib/Test2/Harness/UI/Schema/MySQL/Job.pm rename to lib/App/Yath/Schema/MySQL/Job.pm index db90762ec..c94f7821d 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Job.pm +++ b/lib/App/Yath/Schema/MySQL/Job.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Job; +package App::Yath::Schema::MySQL::Job; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Job; + App::Yath::Schema::Result::Job; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -88,37 +90,37 @@ __PACKAGE__->set_primary_key("job_key"); __PACKAGE__->add_unique_constraint("job_id", ["job_id", "job_try"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "events", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "job_fields", - "Test2::Harness::UI::Schema::Result::JobField", + "App::Yath::Schema::Result::JobField", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 1, @@ -129,8 +131,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); @@ -147,7 +149,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Job - Autogenerated result class for Job in MySQL. +App::Yath::Schema::MySQL::Job - Autogenerated result class for Job in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/JobField.pm b/lib/App/Yath/Schema/MySQL/JobField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/MySQL/JobField.pm rename to lib/App/Yath/Schema/MySQL/JobField.pm index b4ebd2849..396cbdea0 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/JobField.pm +++ b/lib/App/Yath/Schema/MySQL/JobField.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::JobField; +package App::Yath::Schema::MySQL::JobField; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::JobField; + App::Yath::Schema::Result::JobField; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -38,16 +40,16 @@ __PACKAGE__->set_primary_key("job_field_id"); __PACKAGE__->add_unique_constraint("job_key", ["job_key", "name"]); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('job_field_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('job_field_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -60,7 +62,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::JobField - Autogenerated result class for JobField in MySQL. +App::Yath::Schema::MySQL::JobField - Autogenerated result class for JobField in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/LogFile.pm b/lib/App/Yath/Schema/MySQL/LogFile.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/MySQL/LogFile.pm rename to lib/App/Yath/Schema/MySQL/LogFile.pm index d5edaa3d9..886a2f017 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/LogFile.pm +++ b/lib/App/Yath/Schema/MySQL/LogFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::LogFile; +package App::Yath::Schema::MySQL::LogFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::LogFile; + App::Yath::Schema::Result::LogFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -31,14 +33,14 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("log_file_id"); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.log_file_id" => "self.log_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('log_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -52,7 +54,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::LogFile - Autogenerated result class for LogFile in MySQL. +App::Yath::Schema::MySQL::LogFile - Autogenerated result class for LogFile in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Permission.pm b/lib/App/Yath/Schema/MySQL/Permission.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/MySQL/Permission.pm rename to lib/App/Yath/Schema/MySQL/Permission.pm index d96518a4f..3748b34b1 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Permission.pm +++ b/lib/App/Yath/Schema/MySQL/Permission.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Permission; +package App::Yath::Schema::MySQL::Permission; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Permission; + App::Yath::Schema::Result::Permission; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -39,23 +41,23 @@ __PACKAGE__->set_primary_key("permission_id"); __PACKAGE__->add_unique_constraint("project_id", ["project_id", "user_id"]); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('permission_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('permission_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -68,7 +70,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Permission - Autogenerated result class for Permission in MySQL. +App::Yath::Schema::MySQL::Permission - Autogenerated result class for Permission in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/PrimaryEmail.pm b/lib/App/Yath/Schema/MySQL/PrimaryEmail.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/MySQL/PrimaryEmail.pm rename to lib/App/Yath/Schema/MySQL/PrimaryEmail.pm index e073a862a..1d14d80c5 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/PrimaryEmail.pm +++ b/lib/App/Yath/Schema/MySQL/PrimaryEmail.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::PrimaryEmail; +package App::Yath::Schema::MySQL::PrimaryEmail; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::PrimaryEmail; + App::Yath::Schema::Result::PrimaryEmail; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,20 +30,20 @@ __PACKAGE__->set_primary_key("user_id"); __PACKAGE__->add_unique_constraint("email_id", ["email_id"]); __PACKAGE__->belongs_to( "email", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { email_id => "email_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -56,7 +58,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::PrimaryEmail - Autogenerated result class for PrimaryEmail in MySQL. +App::Yath::Schema::MySQL::PrimaryEmail - Autogenerated result class for PrimaryEmail in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Project.pm b/lib/App/Yath/Schema/MySQL/Project.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/MySQL/Project.pm rename to lib/App/Yath/Schema/MySQL/Project.pm index 3bbfdd1eb..5e8682950 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Project.pm +++ b/lib/App/Yath/Schema/MySQL/Project.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Project; +package App::Yath::Schema::MySQL::Project; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Project; + App::Yath::Schema::Result::Project; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -30,7 +32,7 @@ __PACKAGE__->set_primary_key("project_id"); __PACKAGE__->add_unique_constraint("name", ["name"]); __PACKAGE__->belongs_to( "owner", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "owner" }, { is_deferrable => 1, @@ -41,28 +43,28 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->has_many( "permissions", - "Test2::Harness::UI::Schema::Result::Permission", + "App::Yath::Schema::Result::Permission", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('owner' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('owner' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -75,7 +77,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Project - Autogenerated result class for Project in MySQL. +App::Yath::Schema::MySQL::Project - Autogenerated result class for Project in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Reporting.pm b/lib/App/Yath/Schema/MySQL/Reporting.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/MySQL/Reporting.pm rename to lib/App/Yath/Schema/MySQL/Reporting.pm index 9e1292841..ddf1f5af3 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Reporting.pm +++ b/lib/App/Yath/Schema/MySQL/Reporting.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Reporting; +package App::Yath::Schema::MySQL::Reporting; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Reporting; + App::Yath::Schema::Result::Reporting; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -53,7 +55,7 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("reporting_id"); __PACKAGE__->belongs_to( "event", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { event_id => "event_id" }, { is_deferrable => 1, @@ -64,7 +66,7 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 1, @@ -75,19 +77,19 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 1, @@ -98,21 +100,21 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; +__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('reporting_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('reporting_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -125,7 +127,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Reporting - Autogenerated result class for Reporting in MySQL. +App::Yath::Schema::MySQL::Reporting - Autogenerated result class for Reporting in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Resource.pm b/lib/App/Yath/Schema/MySQL/Resource.pm similarity index 80% rename from lib/Test2/Harness/UI/Schema/MySQL/Resource.pm rename to lib/App/Yath/Schema/MySQL/Resource.pm index 257a04c8f..4cd8a1aea 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Resource.pm +++ b/lib/App/Yath/Schema/MySQL/Resource.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Resource; +package App::Yath::Schema::MySQL::Resource; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Resource; + App::Yath::Schema::Result::Resource; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -34,14 +36,14 @@ __PACKAGE__->set_primary_key("resource_id"); __PACKAGE__->add_unique_constraint("resource_batch_id", ["resource_batch_id", "batch_ord"]); __PACKAGE__->belongs_to( "resource_batch", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { resource_batch_id => "resource_batch_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('resource_batch_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('resource_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -56,7 +58,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Resource - Autogenerated result class for Resource in MySQL. +App::Yath::Schema::MySQL::Resource - Autogenerated result class for Resource in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/ResourceBatch.pm b/lib/App/Yath/Schema/MySQL/ResourceBatch.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/MySQL/ResourceBatch.pm rename to lib/App/Yath/Schema/MySQL/ResourceBatch.pm index c7ec2b211..6273893a7 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/ResourceBatch.pm +++ b/lib/App/Yath/Schema/MySQL/ResourceBatch.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::ResourceBatch; +package App::Yath::Schema::MySQL::ResourceBatch; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::ResourceBatch; + App::Yath::Schema::Result::ResourceBatch; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -35,29 +37,29 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("resource_batch_id"); __PACKAGE__->belongs_to( "host", - "Test2::Harness::UI::Schema::Result::Host", + "App::Yath::Schema::Result::Host", { host_id => "host_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->has_many( "resources", - "Test2::Harness::UI::Schema::Result::Resource", + "App::Yath::Schema::Result::Resource", { "foreign.resource_batch_id" => "self.resource_batch_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; +__PACKAGE__->inflate_column('host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('resource_batch_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -70,7 +72,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::ResourceBatch - Autogenerated result class for ResourceBatch in MySQL. +App::Yath::Schema::MySQL::ResourceBatch - Autogenerated result class for ResourceBatch in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Run.pm b/lib/App/Yath/Schema/MySQL/Run.pm similarity index 84% rename from lib/Test2/Harness/UI/Schema/MySQL/Run.pm rename to lib/App/Yath/Schema/MySQL/Run.pm index 33db9e80e..01849fd28 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Run.pm +++ b/lib/App/Yath/Schema/MySQL/Run.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Run; +package App::Yath::Schema::MySQL::Run; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Run; + App::Yath::Schema::Result::Run; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -82,19 +84,19 @@ __PACKAGE__->set_primary_key("run_id"); __PACKAGE__->add_unique_constraint("run_ord", ["run_ord"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "jobs", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "log_file", - "Test2::Harness::UI::Schema::Result::LogFile", + "App::Yath::Schema::Result::LogFile", { log_file_id => "log_file_id" }, { is_deferrable => 1, @@ -105,44 +107,44 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "run_fields", - "Test2::Harness::UI::Schema::Result::RunField", + "App::Yath::Schema::Result::RunField", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "sweeps", - "Test2::Harness::UI::Schema::Result::Sweep", + "App::Yath::Schema::Result::Sweep", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); @@ -159,7 +161,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Run - Autogenerated result class for Run in MySQL. +App::Yath::Schema::MySQL::Run - Autogenerated result class for Run in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/RunField.pm b/lib/App/Yath/Schema/MySQL/RunField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/MySQL/RunField.pm rename to lib/App/Yath/Schema/MySQL/RunField.pm index e0fa6bafe..2f7dd1c3a 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/RunField.pm +++ b/lib/App/Yath/Schema/MySQL/RunField.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::RunField; +package App::Yath::Schema::MySQL::RunField; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::RunField; + App::Yath::Schema::Result::RunField; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -38,16 +40,16 @@ __PACKAGE__->set_primary_key("run_field_id"); __PACKAGE__->add_unique_constraint("run_id", ["run_id", "name"]); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('run_field_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -60,7 +62,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::RunField - Autogenerated result class for RunField in MySQL. +App::Yath::Schema::MySQL::RunField - Autogenerated result class for RunField in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Session.pm b/lib/App/Yath/Schema/MySQL/Session.pm similarity index 76% rename from lib/Test2/Harness/UI/Schema/MySQL/Session.pm rename to lib/App/Yath/Schema/MySQL/Session.pm index 1c6fe64e4..391aa3933 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Session.pm +++ b/lib/App/Yath/Schema/MySQL/Session.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Session; +package App::Yath::Schema::MySQL::Session; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Session; + App::Yath::Schema::Result::Session; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -27,14 +29,14 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("session_id"); __PACKAGE__->has_many( "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", + "App::Yath::Schema::Result::SessionHost", { "foreign.session_id" => "self.session_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('session_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -48,7 +50,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Session - Autogenerated result class for Session in MySQL. +App::Yath::Schema::MySQL::Session - Autogenerated result class for Session in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/SessionHost.pm b/lib/App/Yath/Schema/MySQL/SessionHost.pm similarity index 83% rename from lib/Test2/Harness/UI/Schema/MySQL/SessionHost.pm rename to lib/App/Yath/Schema/MySQL/SessionHost.pm index 1cbe9f213..73223aa8a 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/SessionHost.pm +++ b/lib/App/Yath/Schema/MySQL/SessionHost.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::SessionHost; +package App::Yath::Schema::MySQL::SessionHost; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SessionHost; + App::Yath::Schema::Result::SessionHost; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -48,13 +50,13 @@ __PACKAGE__->set_primary_key("session_host_id"); __PACKAGE__->add_unique_constraint("session_id", ["session_id", "address", "agent"]); __PACKAGE__->belongs_to( "session", - "Test2::Harness::UI::Schema::Result::Session", + "App::Yath::Schema::Result::Session", { session_id => "session_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 1, @@ -65,11 +67,11 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('session_host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('session_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); +__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -82,7 +84,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::SessionHost - Autogenerated result class for SessionHost in MySQL. +App::Yath::Schema::MySQL::SessionHost - Autogenerated result class for SessionHost in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/SourceFile.pm b/lib/App/Yath/Schema/MySQL/SourceFile.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/MySQL/SourceFile.pm rename to lib/App/Yath/Schema/MySQL/SourceFile.pm index b37a8389b..d38a1d741 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/SourceFile.pm +++ b/lib/App/Yath/Schema/MySQL/SourceFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::SourceFile; +package App::Yath::Schema::MySQL::SourceFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SourceFile; + App::Yath::Schema::Result::SourceFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,14 +30,14 @@ __PACKAGE__->set_primary_key("source_file_id"); __PACKAGE__->add_unique_constraint("filename", ["filename"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.source_file_id" => "self.source_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('source_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -49,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::SourceFile - Autogenerated result class for SourceFile in MySQL. +App::Yath::Schema::MySQL::SourceFile - Autogenerated result class for SourceFile in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/SourceSub.pm b/lib/App/Yath/Schema/MySQL/SourceSub.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/MySQL/SourceSub.pm rename to lib/App/Yath/Schema/MySQL/SourceSub.pm index df2ebab00..c1ea04697 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/SourceSub.pm +++ b/lib/App/Yath/Schema/MySQL/SourceSub.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::SourceSub; +package App::Yath::Schema::MySQL::SourceSub; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SourceSub; + App::Yath::Schema::Result::SourceSub; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,14 +30,14 @@ __PACKAGE__->set_primary_key("source_sub_id"); __PACKAGE__->add_unique_constraint("subname", ["subname"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.source_sub_id" => "self.source_sub_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('source_sub_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -49,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::SourceSub - Autogenerated result class for SourceSub in MySQL. +App::Yath::Schema::MySQL::SourceSub - Autogenerated result class for SourceSub in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/Sweep.pm b/lib/App/Yath/Schema/MySQL/Sweep.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/MySQL/Sweep.pm rename to lib/App/Yath/Schema/MySQL/Sweep.pm index bd8ca253d..c33c51c30 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/Sweep.pm +++ b/lib/App/Yath/Schema/MySQL/Sweep.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::Sweep; +package App::Yath::Schema::MySQL::Sweep; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Sweep; + App::Yath::Schema::Result::Sweep; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -30,14 +32,14 @@ __PACKAGE__->set_primary_key("sweep_id"); __PACKAGE__->add_unique_constraint("run_id", ["run_id", "name"]); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('sweep_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); __PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -52,7 +54,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::Sweep - Autogenerated result class for Sweep in MySQL. +App::Yath::Schema::MySQL::Sweep - Autogenerated result class for Sweep in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/TestFile.pm b/lib/App/Yath/Schema/MySQL/TestFile.pm similarity index 76% rename from lib/Test2/Harness/UI/Schema/MySQL/TestFile.pm rename to lib/App/Yath/Schema/MySQL/TestFile.pm index 4dc2270e2..eb41a4bb3 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/TestFile.pm +++ b/lib/App/Yath/Schema/MySQL/TestFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::TestFile; +package App::Yath::Schema::MySQL::TestFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::TestFile; + App::Yath::Schema::Result::TestFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,26 +30,26 @@ __PACKAGE__->set_primary_key("test_file_id"); __PACKAGE__->add_unique_constraint("filename", ["filename"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "jobs", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -61,7 +63,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::TestFile - Autogenerated result class for TestFile in MySQL. +App::Yath::Schema::MySQL::TestFile - Autogenerated result class for TestFile in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/MySQL/User.pm b/lib/App/Yath/Schema/MySQL/User.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/MySQL/User.pm rename to lib/App/Yath/Schema/MySQL/User.pm index 55b1658a3..8ad60a41c 100644 --- a/lib/Test2/Harness/UI/Schema/MySQL/User.pm +++ b/lib/App/Yath/Schema/MySQL/User.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::MySQL::User; +package App::Yath::Schema::MySQL::User; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::User; + App::Yath::Schema::Result::User; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -40,56 +42,56 @@ __PACKAGE__->set_primary_key("user_id"); __PACKAGE__->add_unique_constraint("username", ["username"]); __PACKAGE__->has_many( "api_keys", - "Test2::Harness::UI::Schema::Result::ApiKey", + "App::Yath::Schema::Result::ApiKey", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "emails", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "permissions", - "Test2::Harness::UI::Schema::Result::Permission", + "App::Yath::Schema::Result::Permission", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->might_have( "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", + "App::Yath::Schema::Result::PrimaryEmail", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "projects", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { "foreign.owner" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", + "App::Yath::Schema::Result::SessionHost", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:35 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:22 +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; __PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); # DO NOT MODIFY ANY PART OF THIS FILE @@ -103,7 +105,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::MySQL::User - Autogenerated result class for User in MySQL. +App::Yath::Schema::MySQL::User - Autogenerated result class for User in MySQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/Overlay/ApiKey.pm b/lib/App/Yath/Schema/Overlay/ApiKey.pm similarity index 74% rename from lib/Test2/Harness/UI/Schema/Overlay/ApiKey.pm rename to lib/App/Yath/Schema/Overlay/ApiKey.pm index 5a84fcde7..b0ce82f3f 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/ApiKey.pm +++ b/lib/App/Yath/Schema/Overlay/ApiKey.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::ApiKey; +package App::Yath::Schema::Overlay::ApiKey; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::ApiKey; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::ApiKey - Overlay for ApiKey result class. +App::Yath::Schema::Result::ApiKey - Overlay for ApiKey result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Binary.pm b/lib/App/Yath/Schema/Overlay/Binary.pm similarity index 74% rename from lib/Test2/Harness/UI/Schema/Overlay/Binary.pm rename to lib/App/Yath/Schema/Overlay/Binary.pm index ed80d20e4..59c32e15b 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Binary.pm +++ b/lib/App/Yath/Schema/Overlay/Binary.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Binary; +package App::Yath::Schema::Overlay::Binary; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Binary; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Binary - Overlay for Binary result class. +App::Yath::Schema::Result::Binary - Overlay for Binary result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Coverage.pm b/lib/App/Yath/Schema/Overlay/Coverage.pm similarity index 88% rename from lib/Test2/Harness/UI/Schema/Overlay/Coverage.pm rename to lib/App/Yath/Schema/Overlay/Coverage.pm index 8fcaab095..afe509643 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Coverage.pm +++ b/lib/App/Yath/Schema/Overlay/Coverage.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Coverage; +package App::Yath::Schema::Overlay::Coverage; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Coverage; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->inflate_column( metadata => { @@ -70,7 +72,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Coverage - Overlay for Coverage result class. +App::Yath::Schema::Result::Coverage - Overlay for Coverage result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/CoverageManager.pm b/lib/App/Yath/Schema/Overlay/CoverageManager.pm similarity index 71% rename from lib/Test2/Harness/UI/Schema/Overlay/CoverageManager.pm rename to lib/App/Yath/Schema/Overlay/CoverageManager.pm index ee899f9b5..1701da285 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/CoverageManager.pm +++ b/lib/App/Yath/Schema/Overlay/CoverageManager.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::CoverageManager; +package App::Yath::Schema::Overlay::CoverageManager; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::CoverageManager; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::CoverageManager - Overlay for CoverageManager result class. +App::Yath::Schema::Result::CoverageManager - Overlay for CoverageManager result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Email.pm b/lib/App/Yath/Schema/Overlay/Email.pm similarity index 74% rename from lib/Test2/Harness/UI/Schema/Overlay/Email.pm rename to lib/App/Yath/Schema/Overlay/Email.pm index 5a99de4b9..d4a45f615 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Email.pm +++ b/lib/App/Yath/Schema/Overlay/Email.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Email; +package App::Yath::Schema::Overlay::Email; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Email; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Email - Overlay for Email result class. +App::Yath::Schema::Result::Email - Overlay for Email result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/EmailVerificationCode.pm b/lib/App/Yath/Schema/Overlay/EmailVerificationCode.pm similarity index 70% rename from lib/Test2/Harness/UI/Schema/Overlay/EmailVerificationCode.pm rename to lib/App/Yath/Schema/Overlay/EmailVerificationCode.pm index e5fdefdf7..20f93b585 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/EmailVerificationCode.pm +++ b/lib/App/Yath/Schema/Overlay/EmailVerificationCode.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::EmailVerificationCode; +package App::Yath::Schema::Overlay::EmailVerificationCode; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::EmailVerificationCode; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::EmailVerificationCode - Overlay for EmailVerificationCode result class. +App::Yath::Schema::Result::EmailVerificationCode - Overlay for EmailVerificationCode result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Event.pm b/lib/App/Yath/Schema/Overlay/Event.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/Overlay/Event.pm rename to lib/App/Yath/Schema/Overlay/Event.pm index 669bcfd6b..2935c43ed 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Event.pm +++ b/lib/App/Yath/Schema/Overlay/Event.pm @@ -1,16 +1,18 @@ -package Test2::Harness::UI::Schema::Result::Event; +package App::Yath::Schema::Overlay::Event; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Event; use utf8; use strict; use warnings; -use Test2::Harness::UI::Util::ImportModes(); -use Test2::Formatter::Test2::Composer(); +use App::Yath::Schema::ImportModes(); +use App::Yath::Renderer::Default::Composer(); use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->parent_column('parent_id'); @@ -33,7 +35,7 @@ sub user { shift->job->run->user } sub in_mode { my $self = shift; - return Test2::Harness::UI::Util::ImportModes::event_in_mode(event => $self, @_); + return App::Yath::Schema::ImportModes::event_in_mode(event => $self, @_); } sub TO_JSON { @@ -43,7 +45,7 @@ sub TO_JSON { # Inflate $cols{facets} = $self->facets; $cols{orphan} = $self->orphan; - $cols{lines} = Test2::Formatter::Test2::Composer->render_super_verbose($cols{facets}); + $cols{lines} = App::Yath::Renderer::Default::Composer->render_super_verbose($cols{facets}); return \%cols; } @@ -69,7 +71,7 @@ sub line_data { $cols{facets} = $self->facets if $has_facets; - $out{lines} = Test2::Formatter::Test2::Composer->render_super_verbose($has_facets ? $self->facets : $self->orphan); + $out{lines} = App::Yath::Renderer::Default::Composer->render_super_verbose($has_facets ? $self->facets : $self->orphan); if ($has_binary) { for my $binary ($self->binaries) { @@ -100,14 +102,14 @@ sub line_data { __PACKAGE__->has_many( "events", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", {"foreign.parent_id" => "self.event_id"}, {cascade_copy => 0, cascade_delete => 0}, ); __PACKAGE__->belongs_to( "parent_rel", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", {event_id => "parent_id"}, { is_deferrable => 0, @@ -127,7 +129,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Event - Overlay for Event result class. +App::Yath::Schema::Result::Event - Overlay for Event result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Host.pm b/lib/App/Yath/Schema/Overlay/Host.pm similarity index 74% rename from lib/Test2/Harness/UI/Schema/Overlay/Host.pm rename to lib/App/Yath/Schema/Overlay/Host.pm index dad002ac7..848e339f0 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Host.pm +++ b/lib/App/Yath/Schema/Overlay/Host.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Host; +package App::Yath::Schema::Overlay::Host; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Host; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Host - Overlay for Host result class. +App::Yath::Schema::Result::Host - Overlay for Host result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Job.pm b/lib/App/Yath/Schema/Overlay/Job.pm similarity index 92% rename from lib/Test2/Harness/UI/Schema/Overlay/Job.pm rename to lib/App/Yath/Schema/Overlay/Job.pm index 38b63681d..ab99cacb3 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Job.pm +++ b/lib/App/Yath/Schema/Overlay/Job.pm @@ -1,15 +1,17 @@ -package Test2::Harness::UI::Schema::Result::Job; +package App::Yath::Schema::Overlay::Job; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Job; use utf8; use strict; use warnings; -use Test2::Harness::UI::Util::ImportModes qw/record_all_events mode_check/; +use App::Yath::Schema::ImportModes qw/record_all_events mode_check/; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->inflate_column( parameters => { @@ -155,7 +157,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Job - Overlay for Job result class. +App::Yath::Schema::Result::Job - Overlay for Job result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/JobField.pm b/lib/App/Yath/Schema/Overlay/JobField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/Overlay/JobField.pm rename to lib/App/Yath/Schema/Overlay/JobField.pm index 60afb8cc2..36880f2ec 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/JobField.pm +++ b/lib/App/Yath/Schema/Overlay/JobField.pm @@ -1,4 +1,8 @@ -package Test2::Harness::UI::Schema::Result::JobField; +package App::Yath::Schema::Overlay::JobField; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::JobField; use utf8; use strict; use warnings; @@ -6,10 +10,8 @@ use warnings; use Test2::Harness::Util::JSON qw/decode_json/; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->inflate_column( data => { @@ -34,7 +36,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::JobField - Overlay for JobField result class. +App::Yath::Schema::Result::JobField - Overlay for JobField result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/LogFile.pm b/lib/App/Yath/Schema/Overlay/LogFile.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/LogFile.pm rename to lib/App/Yath/Schema/Overlay/LogFile.pm index f509c0d22..cf3e045dc 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/LogFile.pm +++ b/lib/App/Yath/Schema/Overlay/LogFile.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::LogFile; +package App::Yath::Schema::Overlay::LogFile; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::LogFile; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::LogFile - Overlay for LogFile result class. +App::Yath::Schema::Result::LogFile - Overlay for LogFile result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Permission.pm b/lib/App/Yath/Schema/Overlay/Permission.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/Permission.pm rename to lib/App/Yath/Schema/Overlay/Permission.pm index fdf296a02..6d6131b83 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Permission.pm +++ b/lib/App/Yath/Schema/Overlay/Permission.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Permission; +package App::Yath::Schema::Overlay::Permission; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Permission; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Permission - Overlay for Permission result class. +App::Yath::Schema::Result::Permission - Overlay for Permission result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/PrimaryEmail.pm b/lib/App/Yath/Schema/Overlay/PrimaryEmail.pm similarity index 72% rename from lib/Test2/Harness/UI/Schema/Overlay/PrimaryEmail.pm rename to lib/App/Yath/Schema/Overlay/PrimaryEmail.pm index 7c02a7914..17bedc303 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/PrimaryEmail.pm +++ b/lib/App/Yath/Schema/Overlay/PrimaryEmail.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::PrimaryEmail; +package App::Yath::Schema::Overlay::PrimaryEmail; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::PrimaryEmail; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::PrimaryEmail - Overlay for PrimaryEmail result class. +App::Yath::Schema::Result::PrimaryEmail - Overlay for PrimaryEmail result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Project.pm b/lib/App/Yath/Schema/Overlay/Project.pm similarity index 92% rename from lib/Test2/Harness/UI/Schema/Overlay/Project.pm rename to lib/App/Yath/Schema/Overlay/Project.pm index d956fed03..093cbc479 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Project.pm +++ b/lib/App/Yath/Schema/Overlay/Project.pm @@ -1,16 +1,18 @@ -package Test2::Harness::UI::Schema::Result::Project; +package App::Yath::Schema::Overlay::Project; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Project; use utf8; use strict; use warnings; use Statistics::Basic qw/median/; -use Test2::Harness::UI::UUID qw/uuid_deflate/; +use App::Yath::Schema::UUID qw/uuid_deflate/; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; sub last_covered_run { my $self = shift; @@ -135,7 +137,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Project - Overlay for Project result class. +App::Yath::Schema::Result::Project - Overlay for Project result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Reporting.pm b/lib/App/Yath/Schema/Overlay/Reporting.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/Reporting.pm rename to lib/App/Yath/Schema/Overlay/Reporting.pm index 29b746170..5f348ceb4 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Reporting.pm +++ b/lib/App/Yath/Schema/Overlay/Reporting.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Reporting; +package App::Yath::Schema::Overlay::Reporting; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Reporting; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Reporting - Overlay for Reporting result class. +App::Yath::Schema::Result::Reporting - Overlay for Reporting result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Resource.pm b/lib/App/Yath/Schema/Overlay/Resource.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/Overlay/Resource.pm rename to lib/App/Yath/Schema/Overlay/Resource.pm index 387d8c15e..d5b7ed86b 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Resource.pm +++ b/lib/App/Yath/Schema/Overlay/Resource.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Resource; +package App::Yath::Schema::Overlay::Resource; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Resource; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->inflate_column( data => { @@ -26,7 +28,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Resource - Overlay for Resource result class. +App::Yath::Schema::Result::Resource - Overlay for Resource result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/ResourceBatch.pm b/lib/App/Yath/Schema/Overlay/ResourceBatch.pm similarity index 72% rename from lib/Test2/Harness/UI/Schema/Overlay/ResourceBatch.pm rename to lib/App/Yath/Schema/Overlay/ResourceBatch.pm index e5f2e277a..3e837c6fb 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/ResourceBatch.pm +++ b/lib/App/Yath/Schema/Overlay/ResourceBatch.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::ResourceBatch; +package App::Yath::Schema::Overlay::ResourceBatch; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::ResourceBatch; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::ResourceBatch - Overlay for ResourceBatch result class. +App::Yath::Schema::Result::ResourceBatch - Overlay for ResourceBatch result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Run.pm b/lib/App/Yath/Schema/Overlay/Run.pm similarity index 95% rename from lib/Test2/Harness/UI/Schema/Overlay/Run.pm rename to lib/App/Yath/Schema/Overlay/Run.pm index 7552579a5..065c1d9fd 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Run.pm +++ b/lib/App/Yath/Schema/Overlay/Run.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Run; +package App::Yath::Schema::Overlay::Run; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Run; use utf8; use strict; use warnings; use Carp qw/confess/; -our $VERSION = '2.000000'; - -use Test2::Harness::UI::Util::DateTimeFormat qw/DTF/; +use App::Yath::Schema::DateTimeFormat qw/DTF/; __PACKAGE__->inflate_column( parameters => { @@ -19,7 +21,7 @@ __PACKAGE__->inflate_column( # For joining __PACKAGE__->belongs_to( "user_join", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); @@ -210,7 +212,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Run - Overlay for Run result class. +App::Yath::Schema::Result::Run - Overlay for Run result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/RunField.pm b/lib/App/Yath/Schema/Overlay/RunField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/Overlay/RunField.pm rename to lib/App/Yath/Schema/Overlay/RunField.pm index 06d137251..e9e82c2b7 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/RunField.pm +++ b/lib/App/Yath/Schema/Overlay/RunField.pm @@ -1,4 +1,8 @@ -package Test2::Harness::UI::Schema::Result::RunField; +package App::Yath::Schema::Overlay::RunField; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::RunField; use utf8; use strict; use warnings; @@ -6,10 +10,8 @@ use warnings; use Test2::Harness::Util::JSON qw/decode_json/; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; __PACKAGE__->inflate_column( data => { @@ -34,7 +36,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::RunField - Overlay for RunField result class. +App::Yath::Schema::Result::RunField - Overlay for RunField result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Session.pm b/lib/App/Yath/Schema/Overlay/Session.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/Session.pm rename to lib/App/Yath/Schema/Overlay/Session.pm index c59b315f9..63f2f4d53 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Session.pm +++ b/lib/App/Yath/Schema/Overlay/Session.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Session; +package App::Yath::Schema::Overlay::Session; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Session; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Session - Overlay for Session result class. +App::Yath::Schema::Result::Session - Overlay for Session result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/SessionHost.pm b/lib/App/Yath/Schema/Overlay/SessionHost.pm similarity index 72% rename from lib/Test2/Harness/UI/Schema/Overlay/SessionHost.pm rename to lib/App/Yath/Schema/Overlay/SessionHost.pm index 8dd691359..9e25085f9 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/SessionHost.pm +++ b/lib/App/Yath/Schema/Overlay/SessionHost.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::SessionHost; +package App::Yath::Schema::Overlay::SessionHost; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::SessionHost; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::SessionHost - Overlay for SessionHost result class. +App::Yath::Schema::Result::SessionHost - Overlay for SessionHost result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/SourceFile.pm b/lib/App/Yath/Schema/Overlay/SourceFile.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/SourceFile.pm rename to lib/App/Yath/Schema/Overlay/SourceFile.pm index acb9de0ae..4e2cfc6ce 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/SourceFile.pm +++ b/lib/App/Yath/Schema/Overlay/SourceFile.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::SourceFile; +package App::Yath::Schema::Overlay::SourceFile; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::SourceFile; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::SourceFile - Overlay for SourceFile result class. +App::Yath::Schema::Result::SourceFile - Overlay for SourceFile result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/SourceSub.pm b/lib/App/Yath/Schema/Overlay/SourceSub.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/SourceSub.pm rename to lib/App/Yath/Schema/Overlay/SourceSub.pm index 306d02c1c..7292f3bd3 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/SourceSub.pm +++ b/lib/App/Yath/Schema/Overlay/SourceSub.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::SourceSub; +package App::Yath::Schema::Overlay::SourceSub; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::SourceSub; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::SourceSub - Overlay for SourceSub result class. +App::Yath::Schema::Result::SourceSub - Overlay for SourceSub result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/Sweep.pm b/lib/App/Yath/Schema/Overlay/Sweep.pm similarity index 74% rename from lib/Test2/Harness/UI/Schema/Overlay/Sweep.pm rename to lib/App/Yath/Schema/Overlay/Sweep.pm index b2bb3625f..f5e410d19 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/Sweep.pm +++ b/lib/App/Yath/Schema/Overlay/Sweep.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::Sweep; +package App::Yath::Schema::Overlay::Sweep; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::Sweep; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Sweep - Overlay for Sweep result class. +App::Yath::Schema::Result::Sweep - Overlay for Sweep result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/TestFile.pm b/lib/App/Yath/Schema/Overlay/TestFile.pm similarity index 73% rename from lib/Test2/Harness/UI/Schema/Overlay/TestFile.pm rename to lib/App/Yath/Schema/Overlay/TestFile.pm index 923e5ba42..e0869e5f5 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/TestFile.pm +++ b/lib/App/Yath/Schema/Overlay/TestFile.pm @@ -1,13 +1,15 @@ -package Test2::Harness::UI::Schema::Result::TestFile; +package App::Yath::Schema::Overlay::TestFile; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::TestFile; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; 1; @@ -19,7 +21,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::TestFile - Overlay for TestFile result class. +App::Yath::Schema::Result::TestFile - Overlay for TestFile result class. =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/Overlay/User.pm b/lib/App/Yath/Schema/Overlay/User.pm similarity index 88% rename from lib/Test2/Harness/UI/Schema/Overlay/User.pm rename to lib/App/Yath/Schema/Overlay/User.pm index cada7db5e..1e8c2084d 100644 --- a/lib/Test2/Harness/UI/Schema/Overlay/User.pm +++ b/lib/App/Yath/Schema/Overlay/User.pm @@ -1,15 +1,17 @@ -package Test2::Harness::UI::Schema::Result::User; +package App::Yath::Schema::Overlay::User; +our $VERSION = '2.000000'; + +package + App::Yath::Schema::Result::User; use utf8; use strict; use warnings; use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Schema::UUID qw/gen_uuid/; use Carp qw/croak/; use constant COST => 8; @@ -84,7 +86,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::User - Overlay for User result class. +App::Yath::Schema::Result::User - Overlay for User result class. =head1 DESCRIPTION diff --git a/lib/App/Yath/Schema/PostgreSQL.pm b/lib/App/Yath/Schema/PostgreSQL.pm new file mode 100644 index 000000000..f7e13cc4f --- /dev/null +++ b/lib/App/Yath/Schema/PostgreSQL.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::PostgreSQL; +use utf8; +use strict; +use warnings; +use Carp(); + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +Carp::confess("Already loaded schema '$App::Yath::Schema::LOADED'") if $App::Yath::Schema::LOADED; + +$App::Yath::Schema::LOADED = "PostgreSQL"; + +require App::Yath::Schema; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::PostgreSQL - Autogenerated schema file for PostgreSQL. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/ApiKey.pm b/lib/App/Yath/Schema/PostgreSQL/ApiKey.pm similarity index 82% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/ApiKey.pm rename to lib/App/Yath/Schema/PostgreSQL/ApiKey.pm index 409627829..bd0b5c470 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/ApiKey.pm +++ b/lib/App/Yath/Schema/PostgreSQL/ApiKey.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::ApiKey; +package App::Yath::Schema::PostgreSQL::ApiKey; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::ApiKey; + App::Yath::Schema::Result::ApiKey; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -48,13 +50,13 @@ __PACKAGE__->set_primary_key("api_key_id"); __PACKAGE__->add_unique_constraint("api_keys_value_key", ["value"]); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -67,7 +69,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::ApiKey - Autogenerated result class for ApiKey in PostgreSQL. +App::Yath::Schema::PostgreSQL::ApiKey - Autogenerated result class for ApiKey in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Binary.pm b/lib/App/Yath/Schema/PostgreSQL/Binary.pm similarity index 80% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Binary.pm rename to lib/App/Yath/Schema/PostgreSQL/Binary.pm index 58fde5afb..fd287885f 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Binary.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Binary.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Binary; +package App::Yath::Schema::PostgreSQL::Binary; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Binary; + App::Yath::Schema::Result::Binary; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -35,13 +37,13 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("binary_id"); __PACKAGE__->belongs_to( "event", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { event_id => "event_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -54,7 +56,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Binary - Autogenerated result class for Binary in PostgreSQL. +App::Yath::Schema::PostgreSQL::Binary - Autogenerated result class for Binary in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Coverage.pm b/lib/App/Yath/Schema/PostgreSQL/Coverage.pm similarity index 82% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Coverage.pm rename to lib/App/Yath/Schema/PostgreSQL/Coverage.pm index 7a02dfd14..47fa92740 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Coverage.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Coverage.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Coverage; +package App::Yath::Schema::PostgreSQL::Coverage; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Coverage; + App::Yath::Schema::Result::Coverage; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -49,7 +51,7 @@ __PACKAGE__->add_unique_constraint( ); __PACKAGE__->belongs_to( "coverage_manager", - "Test2::Harness::UI::Schema::Result::CoverageManager", + "App::Yath::Schema::Result::CoverageManager", { coverage_manager_id => "coverage_manager_id" }, { is_deferrable => 0, @@ -60,7 +62,7 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 0, @@ -71,31 +73,31 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "source_file", - "Test2::Harness::UI::Schema::Result::SourceFile", + "App::Yath::Schema::Result::SourceFile", { source_file_id => "source_file_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "source_sub", - "Test2::Harness::UI::Schema::Result::SourceSub", + "App::Yath::Schema::Result::SourceSub", { source_sub_id => "source_sub_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -108,7 +110,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Coverage - Autogenerated result class for Coverage in PostgreSQL. +App::Yath::Schema::PostgreSQL::Coverage - Autogenerated result class for Coverage in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/CoverageManager.pm b/lib/App/Yath/Schema/PostgreSQL/CoverageManager.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/CoverageManager.pm rename to lib/App/Yath/Schema/PostgreSQL/CoverageManager.pm index d885f5360..711688493 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/CoverageManager.pm +++ b/lib/App/Yath/Schema/PostgreSQL/CoverageManager.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::CoverageManager; +package App::Yath::Schema::PostgreSQL::CoverageManager; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::CoverageManager; + App::Yath::Schema::Result::CoverageManager; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,13 +30,13 @@ __PACKAGE__->set_primary_key("coverage_manager_id"); __PACKAGE__->add_unique_constraint("coverage_manager_package_key", ["package"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.coverage_manager_id" => "self.coverage_manager_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -47,7 +49,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::CoverageManager - Autogenerated result class for CoverageManager in PostgreSQL. +App::Yath::Schema::PostgreSQL::CoverageManager - Autogenerated result class for CoverageManager in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Email.pm b/lib/App/Yath/Schema/PostgreSQL/Email.pm similarity index 80% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Email.pm rename to lib/App/Yath/Schema/PostgreSQL/Email.pm index 3885c3a84..a7b0bdf8a 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Email.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Email.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Email; +package App::Yath::Schema::PostgreSQL::Email; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Email; + App::Yath::Schema::Result::Email; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -40,25 +42,25 @@ __PACKAGE__->set_primary_key("email_id"); __PACKAGE__->add_unique_constraint("email_local_domain_key", ["local", "domain"]); __PACKAGE__->might_have( "email_verification_code", - "Test2::Harness::UI::Schema::Result::EmailVerificationCode", + "App::Yath::Schema::Result::EmailVerificationCode", { "foreign.email_id" => "self.email_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->might_have( "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", + "App::Yath::Schema::Result::PrimaryEmail", { "foreign.email_id" => "self.email_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -71,7 +73,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Email - Autogenerated result class for Email in PostgreSQL. +App::Yath::Schema::PostgreSQL::Email - Autogenerated result class for Email in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/EmailVerificationCode.pm b/lib/App/Yath/Schema/PostgreSQL/EmailVerificationCode.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/EmailVerificationCode.pm rename to lib/App/Yath/Schema/PostgreSQL/EmailVerificationCode.pm index 439115f2b..5c4c793e1 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/EmailVerificationCode.pm +++ b/lib/App/Yath/Schema/PostgreSQL/EmailVerificationCode.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::EmailVerificationCode; +package App::Yath::Schema::PostgreSQL::EmailVerificationCode; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::EmailVerificationCode; + App::Yath::Schema::Result::EmailVerificationCode; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -34,13 +36,13 @@ __PACKAGE__->set_primary_key("evcode_id"); __PACKAGE__->add_unique_constraint("email_verification_codes_email_id_key", ["email_id"]); __PACKAGE__->belongs_to( "email", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { email_id => "email_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -53,7 +55,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::EmailVerificationCode - Autogenerated result class for EmailVerificationCode in PostgreSQL. +App::Yath::Schema::PostgreSQL::EmailVerificationCode - Autogenerated result class for EmailVerificationCode in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Event.pm b/lib/App/Yath/Schema/PostgreSQL/Event.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Event.pm rename to lib/App/Yath/Schema/PostgreSQL/Event.pm index 90387ebd6..e9acc3eaf 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Event.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Event.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Event; +package App::Yath::Schema::PostgreSQL::Event; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Event; + App::Yath::Schema::Result::Event; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -62,25 +64,25 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("event_id"); __PACKAGE__->has_many( "binaries", - "Test2::Harness::UI::Schema::Result::Binary", + "App::Yath::Schema::Result::Binary", { "foreign.event_id" => "self.event_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.event_id" => "self.event_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -93,7 +95,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Event - Autogenerated result class for Event in PostgreSQL. +App::Yath::Schema::PostgreSQL::Event - Autogenerated result class for Event in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Host.pm b/lib/App/Yath/Schema/PostgreSQL/Host.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Host.pm rename to lib/App/Yath/Schema/PostgreSQL/Host.pm index 9d7e30f6a..1b77f7ddc 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Host.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Host.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Host; +package App::Yath::Schema::PostgreSQL::Host; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Host; + App::Yath::Schema::Result::Host; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -34,13 +36,13 @@ __PACKAGE__->set_primary_key("host_id"); __PACKAGE__->add_unique_constraint("hosts_hostname_key", ["hostname"]); __PACKAGE__->has_many( "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { "foreign.host_id" => "self.host_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -53,7 +55,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Host - Autogenerated result class for Host in PostgreSQL. +App::Yath::Schema::PostgreSQL::Host - Autogenerated result class for Host in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Job.pm b/lib/App/Yath/Schema/PostgreSQL/Job.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Job.pm rename to lib/App/Yath/Schema/PostgreSQL/Job.pm index b5c520b91..314a73cc6 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Job.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Job.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Job; +package App::Yath::Schema::PostgreSQL::Job; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Job; + App::Yath::Schema::Result::Job; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -74,37 +76,37 @@ __PACKAGE__->set_primary_key("job_key"); __PACKAGE__->add_unique_constraint("jobs_job_id_job_try_key", ["job_id", "job_try"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "events", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "job_fields", - "Test2::Harness::UI::Schema::Result::JobField", + "App::Yath::Schema::Result::JobField", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.job_key" => "self.job_key" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 0, @@ -115,7 +117,7 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -128,7 +130,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Job - Autogenerated result class for Job in PostgreSQL. +App::Yath::Schema::PostgreSQL::Job - Autogenerated result class for Job in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/JobField.pm b/lib/App/Yath/Schema/PostgreSQL/JobField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/JobField.pm rename to lib/App/Yath/Schema/PostgreSQL/JobField.pm index 104468af2..6298585f7 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/JobField.pm +++ b/lib/App/Yath/Schema/PostgreSQL/JobField.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::JobField; +package App::Yath::Schema::PostgreSQL::JobField; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::JobField; + App::Yath::Schema::Result::JobField; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -38,13 +40,13 @@ __PACKAGE__->set_primary_key("job_field_id"); __PACKAGE__->add_unique_constraint("job_fields_job_key_name_key", ["job_key", "name"]); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -57,7 +59,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::JobField - Autogenerated result class for JobField in PostgreSQL. +App::Yath::Schema::PostgreSQL::JobField - Autogenerated result class for JobField in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/LogFile.pm b/lib/App/Yath/Schema/PostgreSQL/LogFile.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/LogFile.pm rename to lib/App/Yath/Schema/PostgreSQL/LogFile.pm index 7f4449567..337442a12 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/LogFile.pm +++ b/lib/App/Yath/Schema/PostgreSQL/LogFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::LogFile; +package App::Yath::Schema::PostgreSQL::LogFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::LogFile; + App::Yath::Schema::Result::LogFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -37,13 +39,13 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("log_file_id"); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.log_file_id" => "self.log_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -56,7 +58,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::LogFile - Autogenerated result class for LogFile in PostgreSQL. +App::Yath::Schema::PostgreSQL::LogFile - Autogenerated result class for LogFile in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Permission.pm b/lib/App/Yath/Schema/PostgreSQL/Permission.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Permission.pm rename to lib/App/Yath/Schema/PostgreSQL/Permission.pm index a2aca476f..4fe58ab80 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Permission.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Permission.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Permission; +package App::Yath::Schema::PostgreSQL::Permission; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Permission; + App::Yath::Schema::Result::Permission; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -48,19 +50,19 @@ __PACKAGE__->add_unique_constraint( ); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -73,7 +75,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Permission - Autogenerated result class for Permission in PostgreSQL. +App::Yath::Schema::PostgreSQL::Permission - Autogenerated result class for Permission in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/PrimaryEmail.pm b/lib/App/Yath/Schema/PostgreSQL/PrimaryEmail.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/PrimaryEmail.pm rename to lib/App/Yath/Schema/PostgreSQL/PrimaryEmail.pm index ec28ddba9..ace2b68bb 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/PrimaryEmail.pm +++ b/lib/App/Yath/Schema/PostgreSQL/PrimaryEmail.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::PrimaryEmail; +package App::Yath::Schema::PostgreSQL::PrimaryEmail; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::PrimaryEmail; + App::Yath::Schema::Result::PrimaryEmail; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,19 +30,19 @@ __PACKAGE__->set_primary_key("user_id"); __PACKAGE__->add_unique_constraint("primary_email_email_id_key", ["email_id"]); __PACKAGE__->belongs_to( "email", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { email_id => "email_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -53,7 +55,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::PrimaryEmail - Autogenerated result class for PrimaryEmail in PostgreSQL. +App::Yath::Schema::PostgreSQL::PrimaryEmail - Autogenerated result class for PrimaryEmail in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Project.pm b/lib/App/Yath/Schema/PostgreSQL/Project.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Project.pm rename to lib/App/Yath/Schema/PostgreSQL/Project.pm index 98e130e00..2c7acde22 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Project.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Project.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Project; +package App::Yath::Schema::PostgreSQL::Project; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Project; + App::Yath::Schema::Result::Project; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -36,7 +38,7 @@ __PACKAGE__->set_primary_key("project_id"); __PACKAGE__->add_unique_constraint("projects_name_key", ["name"]); __PACKAGE__->belongs_to( "owner", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "owner" }, { is_deferrable => 0, @@ -47,25 +49,25 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->has_many( "permissions", - "Test2::Harness::UI::Schema::Result::Permission", + "App::Yath::Schema::Result::Permission", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.project_id" => "self.project_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -78,7 +80,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Project - Autogenerated result class for Project in PostgreSQL. +App::Yath::Schema::PostgreSQL::Project - Autogenerated result class for Project in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Reporting.pm b/lib/App/Yath/Schema/PostgreSQL/Reporting.pm similarity index 84% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Reporting.pm rename to lib/App/Yath/Schema/PostgreSQL/Reporting.pm index 4003bd733..6377a108a 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Reporting.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Reporting.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Reporting; +package App::Yath::Schema::PostgreSQL::Reporting; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Reporting; + App::Yath::Schema::Result::Reporting; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -64,7 +66,7 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("reporting_id"); __PACKAGE__->belongs_to( "event", - "Test2::Harness::UI::Schema::Result::Event", + "App::Yath::Schema::Result::Event", { event_id => "event_id" }, { is_deferrable => 0, @@ -75,7 +77,7 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "job_key", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { job_key => "job_key" }, { is_deferrable => 0, @@ -86,19 +88,19 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", + "App::Yath::Schema::Result::TestFile", { test_file_id => "test_file_id" }, { is_deferrable => 0, @@ -109,13 +111,13 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -128,7 +130,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Reporting - Autogenerated result class for Reporting in PostgreSQL. +App::Yath::Schema::PostgreSQL::Reporting - Autogenerated result class for Reporting in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Resource.pm b/lib/App/Yath/Schema/PostgreSQL/Resource.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Resource.pm rename to lib/App/Yath/Schema/PostgreSQL/Resource.pm index 264a90b1e..249711f29 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Resource.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Resource.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Resource; +package App::Yath::Schema::PostgreSQL::Resource; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Resource; + App::Yath::Schema::Result::Resource; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -43,13 +45,13 @@ __PACKAGE__->add_unique_constraint( ); __PACKAGE__->belongs_to( "resource_batch", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { resource_batch_id => "resource_batch_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -62,7 +64,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Resource - Autogenerated result class for Resource in PostgreSQL. +App::Yath::Schema::PostgreSQL::Resource - Autogenerated result class for Resource in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/ResourceBatch.pm b/lib/App/Yath/Schema/PostgreSQL/ResourceBatch.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/ResourceBatch.pm rename to lib/App/Yath/Schema/PostgreSQL/ResourceBatch.pm index 404373c0b..649242999 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/ResourceBatch.pm +++ b/lib/App/Yath/Schema/PostgreSQL/ResourceBatch.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::ResourceBatch; +package App::Yath::Schema::PostgreSQL::ResourceBatch; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::ResourceBatch; + App::Yath::Schema::Result::ResourceBatch; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -37,25 +39,25 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("resource_batch_id"); __PACKAGE__->belongs_to( "host", - "Test2::Harness::UI::Schema::Result::Host", + "App::Yath::Schema::Result::Host", { host_id => "host_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->has_many( "resources", - "Test2::Harness::UI::Schema::Result::Resource", + "App::Yath::Schema::Result::Resource", { "foreign.resource_batch_id" => "self.resource_batch_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -68,7 +70,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::ResourceBatch - Autogenerated result class for ResourceBatch in PostgreSQL. +App::Yath::Schema::PostgreSQL::ResourceBatch - Autogenerated result class for ResourceBatch in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Run.pm b/lib/App/Yath/Schema/PostgreSQL/Run.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Run.pm rename to lib/App/Yath/Schema/PostgreSQL/Run.pm index 46d7c2da3..553148fb0 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Run.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Run.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Run; +package App::Yath::Schema::PostgreSQL::Run; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Run; + App::Yath::Schema::Result::Run; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -102,19 +104,19 @@ __PACKAGE__->set_primary_key("run_id"); __PACKAGE__->add_unique_constraint("runs_run_ord_key", ["run_ord"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "jobs", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "log_file", - "Test2::Harness::UI::Schema::Result::LogFile", + "App::Yath::Schema::Result::LogFile", { log_file_id => "log_file_id" }, { is_deferrable => 0, @@ -125,43 +127,43 @@ __PACKAGE__->belongs_to( ); __PACKAGE__->belongs_to( "project", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { project_id => "project_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", + "App::Yath::Schema::Result::ResourceBatch", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "run_fields", - "Test2::Harness::UI::Schema::Result::RunField", + "App::Yath::Schema::Result::RunField", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "sweeps", - "Test2::Harness::UI::Schema::Result::Sweep", + "App::Yath::Schema::Result::Sweep", { "foreign.run_id" => "self.run_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -174,7 +176,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Run - Autogenerated result class for Run in PostgreSQL. +App::Yath::Schema::PostgreSQL::Run - Autogenerated result class for Run in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/RunField.pm b/lib/App/Yath/Schema/PostgreSQL/RunField.pm similarity index 81% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/RunField.pm rename to lib/App/Yath/Schema/PostgreSQL/RunField.pm index 5b77a6a30..c75b4bc90 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/RunField.pm +++ b/lib/App/Yath/Schema/PostgreSQL/RunField.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::RunField; +package App::Yath::Schema::PostgreSQL::RunField; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::RunField; + App::Yath::Schema::Result::RunField; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -38,13 +40,13 @@ __PACKAGE__->set_primary_key("run_field_id"); __PACKAGE__->add_unique_constraint("run_fields_run_id_name_key", ["run_id", "name"]); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -57,7 +59,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::RunField - Autogenerated result class for RunField in PostgreSQL. +App::Yath::Schema::PostgreSQL::RunField - Autogenerated result class for RunField in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Session.pm b/lib/App/Yath/Schema/PostgreSQL/Session.pm similarity index 78% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Session.pm rename to lib/App/Yath/Schema/PostgreSQL/Session.pm index 9de297278..fa39101ce 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Session.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Session.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Session; +package App::Yath::Schema::PostgreSQL::Session; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Session; + App::Yath::Schema::Result::Session; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -33,13 +35,13 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("session_id"); __PACKAGE__->has_many( "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", + "App::Yath::Schema::Result::SessionHost", { "foreign.session_id" => "self.session_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -52,7 +54,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Session - Autogenerated result class for Session in PostgreSQL. +App::Yath::Schema::PostgreSQL::Session - Autogenerated result class for Session in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/SessionHost.pm b/lib/App/Yath/Schema/PostgreSQL/SessionHost.pm similarity index 83% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/SessionHost.pm rename to lib/App/Yath/Schema/PostgreSQL/SessionHost.pm index cccd56cfc..3af6c7601 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/SessionHost.pm +++ b/lib/App/Yath/Schema/PostgreSQL/SessionHost.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::SessionHost; +package App::Yath::Schema::PostgreSQL::SessionHost; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SessionHost; + App::Yath::Schema::Result::SessionHost; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -57,13 +59,13 @@ __PACKAGE__->add_unique_constraint( ); __PACKAGE__->belongs_to( "session", - "Test2::Harness::UI::Schema::Result::Session", + "App::Yath::Schema::Result::Session", { session_id => "session_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); __PACKAGE__->belongs_to( "user", - "Test2::Harness::UI::Schema::Result::User", + "App::Yath::Schema::Result::User", { user_id => "user_id" }, { is_deferrable => 0, @@ -74,7 +76,7 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -87,7 +89,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::SessionHost - Autogenerated result class for SessionHost in PostgreSQL. +App::Yath::Schema::PostgreSQL::SessionHost - Autogenerated result class for SessionHost in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/SourceFile.pm b/lib/App/Yath/Schema/PostgreSQL/SourceFile.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/SourceFile.pm rename to lib/App/Yath/Schema/PostgreSQL/SourceFile.pm index 5b226bc15..8b1ad92c4 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/SourceFile.pm +++ b/lib/App/Yath/Schema/PostgreSQL/SourceFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::SourceFile; +package App::Yath::Schema::PostgreSQL::SourceFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SourceFile; + App::Yath::Schema::Result::SourceFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,13 +30,13 @@ __PACKAGE__->set_primary_key("source_file_id"); __PACKAGE__->add_unique_constraint("source_files_filename_key", ["filename"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.source_file_id" => "self.source_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -47,7 +49,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::SourceFile - Autogenerated result class for SourceFile in PostgreSQL. +App::Yath::Schema::PostgreSQL::SourceFile - Autogenerated result class for SourceFile in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/SourceSub.pm b/lib/App/Yath/Schema/PostgreSQL/SourceSub.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/SourceSub.pm rename to lib/App/Yath/Schema/PostgreSQL/SourceSub.pm index a116a0f45..107c81dd2 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/SourceSub.pm +++ b/lib/App/Yath/Schema/PostgreSQL/SourceSub.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::SourceSub; +package App::Yath::Schema::PostgreSQL::SourceSub; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::SourceSub; + App::Yath::Schema::Result::SourceSub; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,13 +30,13 @@ __PACKAGE__->set_primary_key("source_sub_id"); __PACKAGE__->add_unique_constraint("source_subs_subname_key", ["subname"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.source_sub_id" => "self.source_sub_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -47,7 +49,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::SourceSub - Autogenerated result class for SourceSub in PostgreSQL. +App::Yath::Schema::PostgreSQL::SourceSub - Autogenerated result class for SourceSub in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/Sweep.pm b/lib/App/Yath/Schema/PostgreSQL/Sweep.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/Sweep.pm rename to lib/App/Yath/Schema/PostgreSQL/Sweep.pm index da95ae45a..805cac616 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/Sweep.pm +++ b/lib/App/Yath/Schema/PostgreSQL/Sweep.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::Sweep; +package App::Yath::Schema::PostgreSQL::Sweep; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::Sweep; + App::Yath::Schema::Result::Sweep; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -30,13 +32,13 @@ __PACKAGE__->set_primary_key("sweep_id"); __PACKAGE__->add_unique_constraint("sweeps_name_run_id_key", ["name", "run_id"]); __PACKAGE__->belongs_to( "run", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { run_id => "run_id" }, { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -49,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::Sweep - Autogenerated result class for Sweep in PostgreSQL. +App::Yath::Schema::PostgreSQL::Sweep - Autogenerated result class for Sweep in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/TestFile.pm b/lib/App/Yath/Schema/PostgreSQL/TestFile.pm similarity index 77% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/TestFile.pm rename to lib/App/Yath/Schema/PostgreSQL/TestFile.pm index 1a4828472..432d44abc 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/TestFile.pm +++ b/lib/App/Yath/Schema/PostgreSQL/TestFile.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::TestFile; +package App::Yath::Schema::PostgreSQL::TestFile; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::TestFile; + App::Yath::Schema::Result::TestFile; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -28,25 +30,25 @@ __PACKAGE__->set_primary_key("test_file_id"); __PACKAGE__->add_unique_constraint("test_files_filename_key", ["filename"]); __PACKAGE__->has_many( "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", + "App::Yath::Schema::Result::Coverage", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "jobs", - "Test2::Harness::UI::Schema::Result::Job", + "App::Yath::Schema::Result::Job", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.test_file_id" => "self.test_file_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -59,7 +61,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::TestFile - Autogenerated result class for TestFile in PostgreSQL. +App::Yath::Schema::PostgreSQL::TestFile - Autogenerated result class for TestFile in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL/User.pm b/lib/App/Yath/Schema/PostgreSQL/User.pm similarity index 79% rename from lib/Test2/Harness/UI/Schema/PostgreSQL/User.pm rename to lib/App/Yath/Schema/PostgreSQL/User.pm index 582fd2dd8..55b80f460 100644 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL/User.pm +++ b/lib/App/Yath/Schema/PostgreSQL/User.pm @@ -1,7 +1,9 @@ use utf8; -package Test2::Harness::UI::Schema::PostgreSQL::User; +package App::Yath::Schema::PostgreSQL::User; +our $VERSION = '2.000000'; + package - Test2::Harness::UI::Schema::Result::User; + App::Yath::Schema::Result::User; # Created by DBIx::Class::Schema::Loader # DO NOT MODIFY ANY PART OF THIS FILE @@ -9,7 +11,7 @@ package use strict; use warnings; -use base 'Test2::Harness::UI::Schema::ResultBase'; +use parent 'App::Yath::Schema::ResultBase'; __PACKAGE__->load_components( "InflateColumn::DateTime", "InflateColumn::Serializer", @@ -57,55 +59,55 @@ __PACKAGE__->set_primary_key("user_id"); __PACKAGE__->add_unique_constraint("users_username_key", ["username"]); __PACKAGE__->has_many( "api_keys", - "Test2::Harness::UI::Schema::Result::ApiKey", + "App::Yath::Schema::Result::ApiKey", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "emails", - "Test2::Harness::UI::Schema::Result::Email", + "App::Yath::Schema::Result::Email", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "permissions", - "Test2::Harness::UI::Schema::Result::Permission", + "App::Yath::Schema::Result::Permission", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->might_have( "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", + "App::Yath::Schema::Result::PrimaryEmail", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "projects", - "Test2::Harness::UI::Schema::Result::Project", + "App::Yath::Schema::Result::Project", { "foreign.owner" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", + "App::Yath::Schema::Result::Reporting", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "runs", - "Test2::Harness::UI::Schema::Result::Run", + "App::Yath::Schema::Result::Run", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", + "App::Yath::Schema::Result::SessionHost", { "foreign.user_id" => "self.user_id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:41 +# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-28 10:30:23 # DO NOT MODIFY ANY PART OF THIS FILE 1; @@ -118,7 +120,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::PostgreSQL::User - Autogenerated result class for User in PostgreSQL. +App::Yath::Schema::PostgreSQL::User - Autogenerated result class for User in PostgreSQL. =head1 SOURCE diff --git a/lib/Test2/Harness/UI/Queries.pm b/lib/App/Yath/Schema/Queries.pm similarity index 94% rename from lib/Test2/Harness/UI/Queries.pm rename to lib/App/Yath/Schema/Queries.pm index 0df48ca99..67426834c 100644 --- a/lib/Test2/Harness/UI/Queries.pm +++ b/lib/App/Yath/Schema/Queries.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Queries; +package App::Yath::Schema::Queries; use strict; use warnings; @@ -8,7 +8,7 @@ use Carp qw/croak/; use Test2::Harness::Util::HashBase qw/-config/; -use Test2::Harness::UI::UUID qw/uuid_deflate/; +use App::Yath::Schema::UUID qw/uuid_deflate/; sub init { my $self = shift; @@ -61,7 +61,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Queries +App::Yath::Schema::Queries =head1 DESCRIPTION diff --git a/lib/App/Yath/Schema/Result/ApiKey.pm b/lib/App/Yath/Schema/Result/ApiKey.pm new file mode 100644 index 000000000..a294b446c --- /dev/null +++ b/lib/App/Yath/Schema/Result/ApiKey.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::ApiKey; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/ApiKey.pm"; +require "App/Yath/Schema/Overlay/ApiKey.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::ApiKey - Autogenerated result class for ApiKey. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Binary.pm b/lib/App/Yath/Schema/Result/Binary.pm new file mode 100644 index 000000000..01f18b938 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Binary.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Binary; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Binary.pm"; +require "App/Yath/Schema/Overlay/Binary.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Binary - Autogenerated result class for Binary. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Coverage.pm b/lib/App/Yath/Schema/Result/Coverage.pm new file mode 100644 index 000000000..8636435c4 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Coverage.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Coverage; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Coverage.pm"; +require "App/Yath/Schema/Overlay/Coverage.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Coverage - Autogenerated result class for Coverage. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/CoverageManager.pm b/lib/App/Yath/Schema/Result/CoverageManager.pm new file mode 100644 index 000000000..e5c7afb75 --- /dev/null +++ b/lib/App/Yath/Schema/Result/CoverageManager.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::CoverageManager; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/CoverageManager.pm"; +require "App/Yath/Schema/Overlay/CoverageManager.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::CoverageManager - Autogenerated result class for CoverageManager. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Email.pm b/lib/App/Yath/Schema/Result/Email.pm new file mode 100644 index 000000000..d84fe31db --- /dev/null +++ b/lib/App/Yath/Schema/Result/Email.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Email; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Email.pm"; +require "App/Yath/Schema/Overlay/Email.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Email - Autogenerated result class for Email. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/EmailVerificationCode.pm b/lib/App/Yath/Schema/Result/EmailVerificationCode.pm new file mode 100644 index 000000000..a76b67af5 --- /dev/null +++ b/lib/App/Yath/Schema/Result/EmailVerificationCode.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::EmailVerificationCode; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/EmailVerificationCode.pm"; +require "App/Yath/Schema/Overlay/EmailVerificationCode.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::EmailVerificationCode - Autogenerated result class for EmailVerificationCode. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Event.pm b/lib/App/Yath/Schema/Result/Event.pm new file mode 100644 index 000000000..d82f0ce3a --- /dev/null +++ b/lib/App/Yath/Schema/Result/Event.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Event; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Event.pm"; +require "App/Yath/Schema/Overlay/Event.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Event - Autogenerated result class for Event. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Host.pm b/lib/App/Yath/Schema/Result/Host.pm new file mode 100644 index 000000000..c3bad00dd --- /dev/null +++ b/lib/App/Yath/Schema/Result/Host.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Host; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Host.pm"; +require "App/Yath/Schema/Overlay/Host.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Host - Autogenerated result class for Host. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Sweep.pm b/lib/App/Yath/Schema/Result/Job.pm similarity index 64% rename from lib/Test2/Harness/UI/Schema/Result/Sweep.pm rename to lib/App/Yath/Schema/Result/Job.pm index fbd5f43ec..42d60f5d3 100644 --- a/lib/Test2/Harness/UI/Schema/Result/Sweep.pm +++ b/lib/App/Yath/Schema/Result/Job.pm @@ -1,18 +1,19 @@ -package Test2::Harness::UI::Schema::Result::Sweep; +package App::Yath::Schema::Result::Job; use utf8; use strict; use warnings; -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - our $VERSION = '2.000000'; -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Sweep.pm"; -require "Test2/Harness/UI/Schema/Overlay/Sweep.pm"; +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; -with 'Test2::Harness::UI::Schema::Roles::Columns'; +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Job.pm"; +require "App/Yath/Schema/Overlay/Job.pm"; 1; @@ -24,7 +25,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::Result::Sweep - Autogenerated result class for Sweep. +App::Yath::Schema::Result::Job - Autogenerated result class for Job. =head1 SOURCE diff --git a/lib/App/Yath/Schema/Result/JobField.pm b/lib/App/Yath/Schema/Result/JobField.pm new file mode 100644 index 000000000..b764b3877 --- /dev/null +++ b/lib/App/Yath/Schema/Result/JobField.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::JobField; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/JobField.pm"; +require "App/Yath/Schema/Overlay/JobField.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::JobField - Autogenerated result class for JobField. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/LogFile.pm b/lib/App/Yath/Schema/Result/LogFile.pm new file mode 100644 index 000000000..8cde03478 --- /dev/null +++ b/lib/App/Yath/Schema/Result/LogFile.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::LogFile; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/LogFile.pm"; +require "App/Yath/Schema/Overlay/LogFile.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::LogFile - Autogenerated result class for LogFile. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Permission.pm b/lib/App/Yath/Schema/Result/Permission.pm new file mode 100644 index 000000000..0b9c1b940 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Permission.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Permission; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Permission.pm"; +require "App/Yath/Schema/Overlay/Permission.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Permission - Autogenerated result class for Permission. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/PrimaryEmail.pm b/lib/App/Yath/Schema/Result/PrimaryEmail.pm new file mode 100644 index 000000000..96186283a --- /dev/null +++ b/lib/App/Yath/Schema/Result/PrimaryEmail.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::PrimaryEmail; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/PrimaryEmail.pm"; +require "App/Yath/Schema/Overlay/PrimaryEmail.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::PrimaryEmail - Autogenerated result class for PrimaryEmail. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Project.pm b/lib/App/Yath/Schema/Result/Project.pm new file mode 100644 index 000000000..cbe067c35 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Project.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Project; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Project.pm"; +require "App/Yath/Schema/Overlay/Project.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Project - Autogenerated result class for Project. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Reporting.pm b/lib/App/Yath/Schema/Result/Reporting.pm new file mode 100644 index 000000000..fa53a60fa --- /dev/null +++ b/lib/App/Yath/Schema/Result/Reporting.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Reporting; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Reporting.pm"; +require "App/Yath/Schema/Overlay/Reporting.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Reporting - Autogenerated result class for Reporting. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Resource.pm b/lib/App/Yath/Schema/Result/Resource.pm new file mode 100644 index 000000000..066a39123 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Resource.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Resource; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Resource.pm"; +require "App/Yath/Schema/Overlay/Resource.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Resource - Autogenerated result class for Resource. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/ResourceBatch.pm b/lib/App/Yath/Schema/Result/ResourceBatch.pm new file mode 100644 index 000000000..a97ecc1c7 --- /dev/null +++ b/lib/App/Yath/Schema/Result/ResourceBatch.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::ResourceBatch; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/ResourceBatch.pm"; +require "App/Yath/Schema/Overlay/ResourceBatch.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::ResourceBatch - Autogenerated result class for ResourceBatch. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Run.pm b/lib/App/Yath/Schema/Result/Run.pm new file mode 100644 index 000000000..4cdb8b993 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Run.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Run; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Run.pm"; +require "App/Yath/Schema/Overlay/Run.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Run - Autogenerated result class for Run. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/RunField.pm b/lib/App/Yath/Schema/Result/RunField.pm new file mode 100644 index 000000000..9c33a4768 --- /dev/null +++ b/lib/App/Yath/Schema/Result/RunField.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::RunField; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/RunField.pm"; +require "App/Yath/Schema/Overlay/RunField.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::RunField - Autogenerated result class for RunField. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Session.pm b/lib/App/Yath/Schema/Result/Session.pm new file mode 100644 index 000000000..c329d7510 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Session.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Session; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Session.pm"; +require "App/Yath/Schema/Overlay/Session.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Session - Autogenerated result class for Session. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/SessionHost.pm b/lib/App/Yath/Schema/Result/SessionHost.pm new file mode 100644 index 000000000..e332cfecb --- /dev/null +++ b/lib/App/Yath/Schema/Result/SessionHost.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::SessionHost; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/SessionHost.pm"; +require "App/Yath/Schema/Overlay/SessionHost.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::SessionHost - Autogenerated result class for SessionHost. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/SourceFile.pm b/lib/App/Yath/Schema/Result/SourceFile.pm new file mode 100644 index 000000000..1d9f3781a --- /dev/null +++ b/lib/App/Yath/Schema/Result/SourceFile.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::SourceFile; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/SourceFile.pm"; +require "App/Yath/Schema/Overlay/SourceFile.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::SourceFile - Autogenerated result class for SourceFile. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/SourceSub.pm b/lib/App/Yath/Schema/Result/SourceSub.pm new file mode 100644 index 000000000..cb8b013d2 --- /dev/null +++ b/lib/App/Yath/Schema/Result/SourceSub.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::SourceSub; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/SourceSub.pm"; +require "App/Yath/Schema/Overlay/SourceSub.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::SourceSub - Autogenerated result class for SourceSub. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/Sweep.pm b/lib/App/Yath/Schema/Result/Sweep.pm new file mode 100644 index 000000000..aaba92e54 --- /dev/null +++ b/lib/App/Yath/Schema/Result/Sweep.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::Sweep; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/Sweep.pm"; +require "App/Yath/Schema/Overlay/Sweep.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::Sweep - Autogenerated result class for Sweep. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/TestFile.pm b/lib/App/Yath/Schema/Result/TestFile.pm new file mode 100644 index 000000000..b1e3652e4 --- /dev/null +++ b/lib/App/Yath/Schema/Result/TestFile.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::TestFile; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/TestFile.pm"; +require "App/Yath/Schema/Overlay/TestFile.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::TestFile - Autogenerated result class for TestFile. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/App/Yath/Schema/Result/User.pm b/lib/App/Yath/Schema/Result/User.pm new file mode 100644 index 000000000..b82e3050c --- /dev/null +++ b/lib/App/Yath/Schema/Result/User.pm @@ -0,0 +1,60 @@ +package App::Yath::Schema::Result::User; +use utf8; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +# DO NOT MODIFY THIS FILE, GENERATED BY author_tools/regen_schema.pl + + +use Carp qw/confess/; +confess "You must first load a App::Yath::Schema::NAME module" + unless $App::Yath::Schema::LOADED; + +require "App/Yath/Schema/${App::Yath::Schema::LOADED}/User.pm"; +require "App/Yath/Schema/Overlay/User.pm"; + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Result::User - Autogenerated result class for User. + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut diff --git a/lib/Test2/Harness/UI/Schema/ResultBase.pm b/lib/App/Yath/Schema/ResultBase.pm similarity index 85% rename from lib/Test2/Harness/UI/Schema/ResultBase.pm rename to lib/App/Yath/Schema/ResultBase.pm index f40ef8ad7..ef41c5b33 100644 --- a/lib/Test2/Harness/UI/Schema/ResultBase.pm +++ b/lib/App/Yath/Schema/ResultBase.pm @@ -1,8 +1,10 @@ -package Test2::Harness::UI::Schema::ResultBase; +package App::Yath::Schema::ResultBase; use strict; use warnings; -use base 'DBIx::Class::Core'; +our $VERSION = '2.000000'; + +use parent 'DBIx::Class::Core'; sub get_all_fields { my $self = shift; @@ -20,7 +22,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Schema::ResultBase - FIXME +App::Yath::Schema::ResultBase - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Schema/ResultSet.pm b/lib/App/Yath/Schema/ResultSet.pm similarity index 94% rename from lib/Test2/Harness/UI/Schema/ResultSet.pm rename to lib/App/Yath/Schema/ResultSet.pm index af7828bfd..338b2d0de 100644 --- a/lib/Test2/Harness/UI/Schema/ResultSet.pm +++ b/lib/App/Yath/Schema/ResultSet.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Schema::ResultSet; +package App::Yath::Schema::ResultSet; use strict; use warnings; diff --git a/lib/Test2/Harness/UI/RunProcessor.pm b/lib/App/Yath/Schema/RunProcessor.pm similarity index 86% rename from lib/Test2/Harness/UI/RunProcessor.pm rename to lib/App/Yath/Schema/RunProcessor.pm index d22917f94..5243fbf23 100644 --- a/lib/Test2/Harness/UI/RunProcessor.pm +++ b/lib/App/Yath/Schema/RunProcessor.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::RunProcessor; +package App::Yath::Schema::RunProcessor; use strict; use warnings; @@ -6,22 +6,23 @@ our $VERSION = '2.000000'; use DateTime; use Data::GUID; -use Time::HiRes qw/time/; use List::Util qw/first min max/; +use Time::HiRes qw/time/; use MIME::Base64 qw/decode_base64/; +use Sys::Hostname qw/hostname/; use Clone qw/clone/; use Carp qw/croak confess/; use Test2::Util::Facets2Legacy qw/causes_fail/; -use Test2::Harness::UI::Util qw/format_duration is_invalid_subtest_name/; +use App::Yath::Schema::Config; -use Test2::Harness::UI::UUID qw/gen_uuid uuid_inflate uuid_mass_deflate/; +use App::Yath::Schema::Util qw/format_duration is_invalid_subtest_name schema_config_from_settings/; +use App::Yath::Schema::UUID qw/gen_uuid uuid_inflate uuid_mass_deflate/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use JSON::PP(); -use Test2::Harness::UI::Util::ImportModes qw{ +use App::Yath::Schema::ImportModes qw{ %MODES record_all_events event_in_mode @@ -50,8 +51,144 @@ use Test2::Harness::Util::HashBase qw{ process_handle(\*STDIN, $settings); +} + + +sub process_handle { + my $class = shift; + my ($fh, $settings) = @_; + + my $cb = $class->process_lines($settings); + + while (my $line = <$fh>) { + $cb->($line); + } +} + +sub process_lines { + my $class = shift; + my ($settings) = @_; + + my $done = 0; + my ($next, $last); + return sub { + my $line = shift; + + croak "Call to process lines callback after an undef line" if $done; + + if (!defined($line)) { + $done++; + $last->(); + return; + } + elsif ($next) { + $next->($line); + } + else { + $next = $class->_process_first_line($line, $settings); + } + }; +} + +sub _process_first_line { + my $class = shift; + my ($line, $settings) = @_; + + my $run; + my $self; + my $config = schema_config_from_settings($settings); + my $dbh = $config->connect // die "Could not connect to the db"; + + { + no warnings 'once'; + $dbh->{mysql_auto_reconnect} = 1 if $App::Yath::Server::Schema::LOADED =~ m/mysql/i; + } + + my $e = decode_json(scalar $line); + my $f = $e->{facet_data}; + + my $run_id; + if (my $runf = $f->{harness_run}) { + $run_id = uuid_inflate($runf->{run_id}) or die "No run-id?"; + + my $up = $self->settings->prefix('upload') or die "No upload settings"; + + my $proj = $self->settings->yath->project or die "Project is required"; + my $user = $up->user // $ENV{USER}; + + my $p = $config->schema->resultset('Project')->find_or_create({name => $proj, project_id => gen_uuid()}); + my $u = $config->schema->resultset('User')->find_or_create({username => $user, user_id => gen_uuid(), role => 'user'}); + + $run = $config->schema->resultset('Run')->create({ + run_id => $run_id, + mode => $up->mode, + buffer => $up->buffering, + status => 'pending', + user_id => $u->user_id, + project_id => $p->project_id, + }); + + $self = App::Yath::Schema::RunProcessor->new( + config => $config, + run => $run, + interval => $up->flush_interval, + ); + + $self->start(); + $self->process_event($e, $f); + } + else { + die "First event did not contain run data"; + } + + my $links; + if (my $url = $self->settings->server->url) { + $links = "\nThis run can be reviewed at: $url/view/$run_id\n\n"; + print STDOUT $links; + } + + my $int = $SIG{INT}; + my $term = $SIG{TERM}; + + $SIG{INT} = sub { $self->set_signal('INT'); die "Caught Signal 'INT'\n"; }; + $SIG{TERM} = sub { $self->set_signal('TERM'); die "Caught Signal 'TERM'\n"; }; + + return ( + sub { + my $line = shift; + + return if eval { + my $e = decode_json($line); + $self->process_event($e); + 1; + }; + my $err = $@; + + warn "Error sending event(s) to database:\n====\n$err\n====\n"; + + die $err if $self->{+SIGNAL}; + my $run = $self->{+RUN} or return; + $run->update({status => 'canceled', error => $err}); + }, + sub { + $self->finish; + print STDOUT $links if $links; + + $SIG{INT} = $int; + $SIG{TERM} = $term; + } + ); +} + sub trim_error { my ($msg, $err) = @_; @@ -493,7 +630,7 @@ sub get_job { # Prevent duplicate coverage when --retry is used if ($job_try) { - if ($Test2::Harness::UI::Schema::LOADED =~ m/mysql/i) { + if ($App::Yath::Schema::LOADED =~ m/mysql/i) { my $schema = $self->schema; $schema->storage->connected; # Make sure we are connected my $dbh = $schema->storage->dbh; @@ -546,6 +683,11 @@ sub process_event { $self->start unless $self->{+RUNNING}; + if (my $res = delete $f->{db_resources}) { + $self->insert_resources($res); + return unless keys %$f; + } + my $job = $params{job} // $self->get_job(%{$f->{harness} // {}}, queue => $f->{harness_job_queued}); my $e = $self->_process_event($event, $f, %params, job => $job); @@ -568,6 +710,39 @@ sub process_event { return; } +sub host { + my $self = shift; + return $self->{+HOST} //= $self->{+CONFIG}->schema->resultset('Host')->find_or_create({hostname => hostname(), host_id => gen_uuid()}); +} + +sub insert_resources { + my $self = shift; + my ($res) = @_; + + my $stamp = $res->{stamp}; + my $items = $res->{items}; + my $batch_id = $res->{batch_id}; + + my $config = $self->{+CONFIG}; + + my $run_id = $self->run->run_id; + my $host_id = $self->host->host_id; + + my $res_rs = $config->schema->resultset('Resource'); + my $batch_rs = $config->schema->resultset('ResourceBatch'); + + my $dt_stamp = DateTime->from_epoch(epoch => $stamp, time_zone => 'local'); + + my $batch = $batch_rs->create({ + resource_batch_id => $batch_id, + run_id => uuid_inflate($run_id), + host_id => uuid_inflate($host_id), + stamp => $dt_stamp, + }); + + $res_rs->populate($items); +} + sub finish { my $self = shift; my (@errors) = @_; @@ -1104,7 +1279,7 @@ __END__ =head1 NAME -Test2::Harness::UI::RunProcessor +App::Yath::Schema::RunProcessor =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Sweeper.pm b/lib/App/Yath/Schema/Sweeper.pm similarity index 98% rename from lib/Test2/Harness/UI/Sweeper.pm rename to lib/App/Yath/Schema/Sweeper.pm index 0c0e31df2..54f81cbd7 100644 --- a/lib/Test2/Harness/UI/Sweeper.pm +++ b/lib/App/Yath/Schema/Sweeper.pm @@ -1,8 +1,8 @@ -package Test2::Harness::UI::Sweeper; +package App::Yath::Schema::Sweeper; use strict; use warnings; use Time::HiRes qw/time/; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Schema::UUID qw/gen_uuid/; our $VERSION = '2.000000'; @@ -207,7 +207,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Sweeper - FIXME +App::Yath::Schema::Sweeper - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Sync.pm b/lib/App/Yath/Schema/Sync.pm similarity index 98% rename from lib/Test2/Harness/UI/Sync.pm rename to lib/App/Yath/Schema/Sync.pm index 603fd19d1..40a2ad87f 100644 --- a/lib/Test2/Harness/UI/Sync.pm +++ b/lib/App/Yath/Schema/Sync.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Sync; +package App::Yath::Schema::Sync; use strict; use warnings; @@ -6,7 +6,7 @@ use DBI; use Scope::Guard; use Carp qw/croak/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate gen_uuid/; +use App::Yath::Schema::UUID qw/uuid_inflate gen_uuid/; our $VERSION = '2.000000'; @@ -355,7 +355,7 @@ sub _fix_uuids { if (!$type) { return uuid_inflate($in)->$method; } - if ($type eq 'Test2::Harness::UI::UUID') { + if ($type eq 'App::Yath::Schema::UUID') { return $in->$method; } if ($type eq 'HASH') { @@ -645,7 +645,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Sync - Module for dumping, loading, and syncing yathui databases +App::Yath::Schema::Sync - Module for dumping, loading, and syncing yathui databases =head1 DESCRIPTION @@ -660,12 +660,12 @@ Care is taken to preserve the uuids of runs, jobs, events, etc. =head1 SYNOPSIS - use Test2::Harness::UI::Sync; + use App::Yath::Schema::Sync; my $source_dbh = ...; my $dest_dbh = ...; - my $sync = Test2::Harness::UI::Sync->new(); + my $sync = App::Yath::Schema::Sync->new(); my $delta = $sync->run_delta($source_dbh, $dest_dbh); diff --git a/lib/Test2/Harness/UI/UUID.pm b/lib/App/Yath/Schema/UUID.pm similarity index 93% rename from lib/Test2/Harness/UI/UUID.pm rename to lib/App/Yath/Schema/UUID.pm index da4b87f51..e402d5a69 100644 --- a/lib/Test2/Harness/UI/UUID.pm +++ b/lib/App/Yath/Schema/UUID.pm @@ -1,7 +1,9 @@ -package Test2::Harness::UI::UUID; +package App::Yath::Schema::UUID; use strict; use warnings; +our $VERSION = '2.000000'; + use overload( fallback => 1, '""' => sub { $_[0]->magic_stringify }, @@ -96,7 +98,7 @@ sub uuid_inflate { sub magic_stringify { my $self = shift; - return $self->{string} unless $Test2::Harness::UI::Schema::LOADED && $Test2::Harness::UI::Schema::LOADED =~ m/mysql/i; + return $self->{string} unless $App::Yath::Schema::LOADED && $App::Yath::Schema::LOADED =~ m/mysql/i; my $i = 0; while (my @call = caller($i++)) { @@ -112,7 +114,7 @@ sub uuid_deflate { return undef unless $val; $val = uuid_inflate($val) unless blessed($val) && $val->isa(__PACKAGE__); return undef unless $val; - return $val->{binary} if $Test2::Harness::UI::Schema::LOADED && $Test2::Harness::UI::Schema::LOADED =~ m/mysql/i; + return $val->{binary} if $App::Yath::Schema::LOADED && $App::Yath::Schema::LOADED =~ m/mysql/i; return $val->{string}; } @@ -194,7 +196,7 @@ __END__ =head1 NAME -Test2::Harness::UI::UUID - FIXME +App::Yath::Schema::UUID - FIXME =head1 DESCRIPTION diff --git a/lib/App/Yath/Schema/Util.pm b/lib/App/Yath/Schema/Util.pm new file mode 100644 index 000000000..2ba692505 --- /dev/null +++ b/lib/App/Yath/Schema/Util.pm @@ -0,0 +1,242 @@ +package App::Yath::Schema::Util; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Carp qw/croak/; + +use Test2::Harness::Util qw/mod2file/; +use App::Yath::Schema::UUID qw/uuid_inflate/; + +use Importer Importer => 'import'; + +our @EXPORT = qw/qdb_driver dbd_driver schema_config_from_settings find_job format_duration parse_duration is_invalid_subtest_name/; + +my %SCHEMA_TO_QDB_DRIVER = ( + mariadb => 'MySQL', + mysql => 'MySQL', + postgresql => 'PostgreSQL', + pg => 'PostgreSQL', +); + +my %SCHEMA_TO_DBD_DRIVER = ( + mariadb => 'DBD::MariaDB', + mysql => 'DBD::mysql', + postgresql => 'DBD::Pg', + pg => 'DBD::Pg', +); + +my %BAD_ST_NAME = ( + '__ANON__' => 1, + 'unnamed' => 1, + 'unnamed subtest' => 1, + 'unnamed summary' => 1, + '' => 1, +); + +sub is_invalid_subtest_name { + my ($name) = @_; + return $BAD_ST_NAME{$name} // 0; +} + +sub qdb_driver { + my $base = base_name(@_); + return $SCHEMA_TO_QDB_DRIVER{$base}; +} + +sub dbd_driver { + my $base = base_name(@_); + return $SCHEMA_TO_DBD_DRIVER{$base}; +} + +sub schema_config_from_settings { + my ($settings) = @_; + + my $db = $settings->group('db') or die "No DB settings"; + + if (my $cmod = $db->config) { + my $file = mod2file($cmod); + require $file; + + return $cmod->yath_ui_config(%$$db); + } + + my $dsn = $db->dsn; + + unless ($dsn) { + $dsn = ""; + + my $driver = $db->driver; + my $name = $db->name; + + $dsn .= "dbi:$driver" if $driver; + $dsn .= ":dbname=$name" if $name; + + if (my $socket = $db->socket) { + my $ld = lc($driver); + if ($ld eq 'pg') { + $dsn .= ";host=$socket"; + } + else { + $dsn .= ";${ld}_socket=$socket"; + } + } + else { + my $host = $db->host; + my $port = $db->port; + + $dsn .= ";host=$host" if $host; + $dsn .= ";port=$port" if $port; + } + } + + require App::Yath::Schema::Config; + return App::Yath::Schema::Config->new( + dbi_dsn => $dsn, + dbi_user => $db->user // '', + dbi_pass => $db->pass // '', + ); +} + +sub find_job { + my ($schema, $uuid, $try) = @_; + + $uuid = uuid_inflate($uuid) or croak "Invalid job identifier"; + + my $jobs = $schema->resultset('Job'); + + if (length $try) { + return $jobs->search({job_id => $uuid}, {order_by => {'-desc' => 'job_try'}, limit => 1})->first + if $try == -1; + + return $jobs->search({job_id => $uuid, job_try => $try})->first; + } + + return $jobs->search({job_key => $uuid})->first + || $jobs->search({job_id => $uuid}, {order_by => {'-desc' => 'job_try'}, limit => 1})->first; +} + +sub base_name { + my ($in) = @_; + + my $out = lc($in); + $out =~ s/\.sql$//; + $out =~ s/\d+$//g; + + return $out; +} + +sub format_duration { + my $seconds = shift; + + my $minutes = int($seconds / 60); + my $hours = int($minutes / 60); + my $days = int($hours / 24); + + $minutes %= 60; + $hours %= 24; + + $seconds -= $minutes * 60; + $seconds -= $hours * 60 * 60; + $seconds -= $days * 60 * 60 * 24; + + my @dur; + push @dur => sprintf("%02dd", $days) if $days; + push @dur => sprintf("%02dh", $hours) if @dur || $hours; + push @dur => sprintf("%02dm", $minutes) if @dur || $minutes; + push @dur => sprintf("%07.4fs", $seconds); + + return join ':' => @dur; +} + +sub parse_duration { + my $duration = shift; + + return 0 unless $duration; + + return $duration unless $duration =~ m/:?.*[dhms]$/i; + + my $out = 0; + + my (@parts) = split ':' => $duration; + for my $part (@parts) { + my ($num, $type) = ($part =~ m/^([0-9\.]+)([dhms])$/); + + unless ($num && $type) { + warn "invalid duration section '$part'"; + next; + } + + if ($type eq 'd') { + $out += ($num * 60 * 60 * 24); + } + elsif ($type eq 'h') { + $out += ($num * 60 * 60); + } + elsif ($type eq 'm') { + $out += ($num * 60); + } + else { + $out += $num; + } + } + + return $out; +} + + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +App::Yath::Schema::Util - FIXME + +=head1 DESCRIPTION + +=head1 SYNOPSIS + +=head1 EXPORTS + +=over 4 + +=back + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/Test2/Harness/UI.pm b/lib/App/Yath/Server.pm similarity index 53% rename from lib/Test2/Harness/UI.pm rename to lib/App/Yath/Server.pm index dfb4eccd3..a9a1fde92 100644 --- a/lib/Test2/Harness/UI.pm +++ b/lib/App/Yath/Server.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI; +package App::Yath::Server; use strict; use warnings; @@ -9,36 +9,36 @@ use Text::Xslate(qw/mark_raw/); use Scalar::Util qw/blessed/; use DateTime; -use Test2::Harness::UI::Request; -use Test2::Harness::UI::Controller::Upload; -use Test2::Harness::UI::Controller::Recent; -use Test2::Harness::UI::Controller::User; -use Test2::Harness::UI::Controller::Run; -use Test2::Harness::UI::Controller::RunField; -use Test2::Harness::UI::Controller::Job; -use Test2::Harness::UI::Controller::JobField; -use Test2::Harness::UI::Controller::Download; -use Test2::Harness::UI::Controller::Sweeper; -use Test2::Harness::UI::Controller::Project; -use Test2::Harness::UI::Controller::Resources; - -use Test2::Harness::UI::Controller::Stream; -use Test2::Harness::UI::Controller::View; -use Test2::Harness::UI::Controller::Lookup; - -use Test2::Harness::UI::Controller::Query; -use Test2::Harness::UI::Controller::Events; - -use Test2::Harness::UI::Controller::Durations; -use Test2::Harness::UI::Controller::Coverage; -use Test2::Harness::UI::Controller::Files; -use Test2::Harness::UI::Controller::ReRun; - -use Test2::Harness::UI::Controller::Interactions; -use Test2::Harness::UI::Controller::Binary; - -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Request; +use App::Yath::Server::Controller::Upload; +use App::Yath::Server::Controller::Recent; +use App::Yath::Server::Controller::User; +use App::Yath::Server::Controller::Run; +use App::Yath::Server::Controller::RunField; +use App::Yath::Server::Controller::Job; +use App::Yath::Server::Controller::JobField; +use App::Yath::Server::Controller::Download; +use App::Yath::Server::Controller::Sweeper; +use App::Yath::Server::Controller::Project; +use App::Yath::Server::Controller::Resources; + +use App::Yath::Server::Controller::Stream; +use App::Yath::Server::Controller::View; +use App::Yath::Server::Controller::Lookup; + +use App::Yath::Server::Controller::Query; +use App::Yath::Server::Controller::Events; + +use App::Yath::Server::Controller::Durations; +use App::Yath::Server::Controller::Coverage; +use App::Yath::Server::Controller::Files; +use App::Yath::Server::Controller::ReRun; + +use App::Yath::Server::Controller::Interactions; +use App::Yath::Server::Controller::Binary; + +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; @@ -50,99 +50,99 @@ sub init { my $router = $self->{+ROUTER} ||= Router::Simple->new; my $config = $self->{+CONFIG}; - $router->connect('/' => {controller => 'Test2::Harness::UI::Controller::View'}); + $router->connect('/' => {controller => 'App::Yath::Server::Controller::View'}); - $router->connect('/upload' => {controller => 'Test2::Harness::UI::Controller::Upload'}) + $router->connect('/upload' => {controller => 'App::Yath::Server::Controller::Upload'}) unless $config->single_run; - $router->connect('/user' => {controller => 'Test2::Harness::UI::Controller::User'}) + $router->connect('/user' => {controller => 'App::Yath::Server::Controller::User'}) unless $config->single_user; - $router->connect('/resources/data/:id' => {controller => 'Test2::Harness::UI::Controller::Resources', data => 1}); - $router->connect('/resources/data/:id/' => {controller => 'Test2::Harness::UI::Controller::Resources', data => 1}); - $router->connect('/resources/data/:id/:batch' => {controller => 'Test2::Harness::UI::Controller::Resources', data => 1}); - $router->connect('/resources/:id' => {controller => 'Test2::Harness::UI::Controller::Resources'}); - $router->connect('/resources/:id/' => {controller => 'Test2::Harness::UI::Controller::Resources'}); - $router->connect('/resources/:id/:batch' => {controller => 'Test2::Harness::UI::Controller::Resources'}); - - $router->connect('/interactions/:id' => {controller => 'Test2::Harness::UI::Controller::Interactions'}); - $router->connect('/interactions/:id/:context' => {controller => 'Test2::Harness::UI::Controller::Interactions'}); - $router->connect('/interactions/data/:id' => {controller => 'Test2::Harness::UI::Controller::Interactions', data => 1}); - $router->connect('/interactions/data/:id/:context' => {controller => 'Test2::Harness::UI::Controller::Interactions', data => 1}); - - $router->connect('/project/:id' => {controller => 'Test2::Harness::UI::Controller::Project'}); - $router->connect('/project/:id/stats' => {controller => 'Test2::Harness::UI::Controller::Project', stats => 1}); - $router->connect('/project/:id/:n' => {controller => 'Test2::Harness::UI::Controller::Project'}); - $router->connect('/project/:id/:n/:count' => {controller => 'Test2::Harness::UI::Controller::Project'}); - - $router->connect('/recent/:project/:user/:count' => {controller => 'Test2::Harness::UI::Controller::Recent'}); - $router->connect('/recent/:project/:user' => {controller => 'Test2::Harness::UI::Controller::Recent'}); - - $router->connect('/query/:name' => {controller => 'Test2::Harness::UI::Controller::Query'}); - $router->connect('/query/:name/:arg' => {controller => 'Test2::Harness::UI::Controller::Query'}); - - $router->connect('/run/:id' => {controller => 'Test2::Harness::UI::Controller::Run'}); - $router->connect('/run/:id/pin' => {controller => 'Test2::Harness::UI::Controller::Run', action => 'pin_toggle'}); - $router->connect('/run/:id/delete' => {controller => 'Test2::Harness::UI::Controller::Run', action => 'delete'}); - $router->connect('/run/:id/cancel' => {controller => 'Test2::Harness::UI::Controller::Run', action => 'cancel'}); - $router->connect('/run/:id/parameters' => {controller => 'Test2::Harness::UI::Controller::Run', action => 'parameters'}); - - $router->connect('/run/field/:id' => {controller => 'Test2::Harness::UI::Controller::RunField'}); - $router->connect('/run/field/:id/delete' => {controller => 'Test2::Harness::UI::Controller::RunField', action => 'delete'}); - - $router->connect('/job/field/:id' => {controller => 'Test2::Harness::UI::Controller::JobField'}); - $router->connect('/job/field/:id/delete' => {controller => 'Test2::Harness::UI::Controller::JobField', action => 'delete'}); - - $router->connect('/job/:job' => {controller => 'Test2::Harness::UI::Controller::Job'}); - $router->connect('/job/:job/:try' => {controller => 'Test2::Harness::UI::Controller::Job'}); - $router->connect('/event/:id' => {controller => 'Test2::Harness::UI::Controller::Events', from => 'single_event'}); - $router->connect('/event/:id/events' => {controller => 'Test2::Harness::UI::Controller::Events', from => 'event'}); - - $router->connect('/durations/:project' => {controller => 'Test2::Harness::UI::Controller::Durations'}); - $router->connect('/durations/:project/median' => {controller => 'Test2::Harness::UI::Controller::Durations', median => 1}); - $router->connect('/durations/:project/median/:user' => {controller => 'Test2::Harness::UI::Controller::Durations', median => 1}); - $router->connect('/durations/:project/:short/:medium' => {controller => 'Test2::Harness::UI::Controller::Durations'}); - - $router->connect('/coverage/:source' => {controller => 'Test2::Harness::UI::Controller::Coverage'}); - $router->connect('/coverage/:source/:user' => {controller => 'Test2::Harness::UI::Controller::Coverage'}); - $router->connect('/coverage/:source/delete' => {controller => 'Test2::Harness::UI::Controller::Coverage', delete => 1}); - - $router->connect('/failed/:source' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 1}); - $router->connect('/failed/:source/json' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 1, json => 1}); - $router->connect('/failed/:project/:idx' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 1, json => 1}); - $router->connect('/failed/:project/:username/:idx' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 1, json => 1}); - - $router->connect('/files/:source' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 0}); - $router->connect('/files/:source/json' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 0, json => 1}); - $router->connect('/files/:project/:idx' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 0, json => 1}); - $router->connect('/files/:project/:username/:idx' => {controller => 'Test2::Harness::UI::Controller::Files', failed => 0, json => 1}); - - $router->connect('/rerun/:run_id' => {controller => 'Test2::Harness::UI::Controller::ReRun'}); - $router->connect('/rerun/:project/:username' => {controller => 'Test2::Harness::UI::Controller::ReRun'}); - - $router->connect('/binary/:binary_id' => {controller => 'Test2::Harness::UI::Controller::Binary'}); - - $router->connect('/download/:id' => {controller => 'Test2::Harness::UI::Controller::Download'}); - - $router->connect('/lookup' => {controller => 'Test2::Harness::UI::Controller::Lookup'}); - $router->connect('/lookup/:lookup' => {controller => 'Test2::Harness::UI::Controller::Lookup'}); - $router->connect('/lookup/data/:lookup' => {controller => 'Test2::Harness::UI::Controller::Lookup', data => 1}); - - $router->connect('/view' => {controller => 'Test2::Harness::UI::Controller::View'}); - $router->connect('/view/:id' => {controller => 'Test2::Harness::UI::Controller::View'}); - $router->connect('/view/:run_id/:job' => {controller => 'Test2::Harness::UI::Controller::View'}); - $router->connect('/view/:run_id/:job/:try' => {controller => 'Test2::Harness::UI::Controller::View'}); - - $router->connect('/stream/run/:run_id' => {controller => 'Test2::Harness::UI::Controller::Stream', run_only => 1}); - $router->connect('/stream' => {controller => 'Test2::Harness::UI::Controller::Stream'}); - $router->connect('/stream/:id' => {controller => 'Test2::Harness::UI::Controller::Stream'}); - $router->connect('/stream/:run_id/:job' => {controller => 'Test2::Harness::UI::Controller::Stream'}); - $router->connect('/stream/:run_id/:job/:try' => {controller => 'Test2::Harness::UI::Controller::Stream'}); - - $router->connect('/sweeper/:count/days' => {controller => 'Test2::Harness::UI::Controller::Sweeper', units => 'day'}); - $router->connect('/sweeper/:count/hours' => {controller => 'Test2::Harness::UI::Controller::Sweeper', units => 'hour'}); - $router->connect('/sweeper/:count/minutes' => {controller => 'Test2::Harness::UI::Controller::Sweeper', units => 'minute'}); - $router->connect('/sweeper/:count/seconds' => {controller => 'Test2::Harness::UI::Controller::Sweeper', units => 'second'}); + $router->connect('/resources/data/:id' => {controller => 'App::Yath::Server::Controller::Resources', data => 1}); + $router->connect('/resources/data/:id/' => {controller => 'App::Yath::Server::Controller::Resources', data => 1}); + $router->connect('/resources/data/:id/:batch' => {controller => 'App::Yath::Server::Controller::Resources', data => 1}); + $router->connect('/resources/:id' => {controller => 'App::Yath::Server::Controller::Resources'}); + $router->connect('/resources/:id/' => {controller => 'App::Yath::Server::Controller::Resources'}); + $router->connect('/resources/:id/:batch' => {controller => 'App::Yath::Server::Controller::Resources'}); + + $router->connect('/interactions/:id' => {controller => 'App::Yath::Server::Controller::Interactions'}); + $router->connect('/interactions/:id/:context' => {controller => 'App::Yath::Server::Controller::Interactions'}); + $router->connect('/interactions/data/:id' => {controller => 'App::Yath::Server::Controller::Interactions', data => 1}); + $router->connect('/interactions/data/:id/:context' => {controller => 'App::Yath::Server::Controller::Interactions', data => 1}); + + $router->connect('/project/:id' => {controller => 'App::Yath::Server::Controller::Project'}); + $router->connect('/project/:id/stats' => {controller => 'App::Yath::Server::Controller::Project', stats => 1}); + $router->connect('/project/:id/:n' => {controller => 'App::Yath::Server::Controller::Project'}); + $router->connect('/project/:id/:n/:count' => {controller => 'App::Yath::Server::Controller::Project'}); + + $router->connect('/recent/:project/:user/:count' => {controller => 'App::Yath::Server::Controller::Recent'}); + $router->connect('/recent/:project/:user' => {controller => 'App::Yath::Server::Controller::Recent'}); + + $router->connect('/query/:name' => {controller => 'App::Yath::Server::Controller::Query'}); + $router->connect('/query/:name/:arg' => {controller => 'App::Yath::Server::Controller::Query'}); + + $router->connect('/run/:id' => {controller => 'App::Yath::Server::Controller::Run'}); + $router->connect('/run/:id/pin' => {controller => 'App::Yath::Server::Controller::Run', action => 'pin_toggle'}); + $router->connect('/run/:id/delete' => {controller => 'App::Yath::Server::Controller::Run', action => 'delete'}); + $router->connect('/run/:id/cancel' => {controller => 'App::Yath::Server::Controller::Run', action => 'cancel'}); + $router->connect('/run/:id/parameters' => {controller => 'App::Yath::Server::Controller::Run', action => 'parameters'}); + + $router->connect('/run/field/:id' => {controller => 'App::Yath::Server::Controller::RunField'}); + $router->connect('/run/field/:id/delete' => {controller => 'App::Yath::Server::Controller::RunField', action => 'delete'}); + + $router->connect('/job/field/:id' => {controller => 'App::Yath::Server::Controller::JobField'}); + $router->connect('/job/field/:id/delete' => {controller => 'App::Yath::Server::Controller::JobField', action => 'delete'}); + + $router->connect('/job/:job' => {controller => 'App::Yath::Server::Controller::Job'}); + $router->connect('/job/:job/:try' => {controller => 'App::Yath::Server::Controller::Job'}); + $router->connect('/event/:id' => {controller => 'App::Yath::Server::Controller::Events', from => 'single_event'}); + $router->connect('/event/:id/events' => {controller => 'App::Yath::Server::Controller::Events', from => 'event'}); + + $router->connect('/durations/:project' => {controller => 'App::Yath::Server::Controller::Durations'}); + $router->connect('/durations/:project/median' => {controller => 'App::Yath::Server::Controller::Durations', median => 1}); + $router->connect('/durations/:project/median/:user' => {controller => 'App::Yath::Server::Controller::Durations', median => 1}); + $router->connect('/durations/:project/:short/:medium' => {controller => 'App::Yath::Server::Controller::Durations'}); + + $router->connect('/coverage/:source' => {controller => 'App::Yath::Server::Controller::Coverage'}); + $router->connect('/coverage/:source/:user' => {controller => 'App::Yath::Server::Controller::Coverage'}); + $router->connect('/coverage/:source/delete' => {controller => 'App::Yath::Server::Controller::Coverage', delete => 1}); + + $router->connect('/failed/:source' => {controller => 'App::Yath::Server::Controller::Files', failed => 1}); + $router->connect('/failed/:source/json' => {controller => 'App::Yath::Server::Controller::Files', failed => 1, json => 1}); + $router->connect('/failed/:project/:idx' => {controller => 'App::Yath::Server::Controller::Files', failed => 1, json => 1}); + $router->connect('/failed/:project/:username/:idx' => {controller => 'App::Yath::Server::Controller::Files', failed => 1, json => 1}); + + $router->connect('/files/:source' => {controller => 'App::Yath::Server::Controller::Files', failed => 0}); + $router->connect('/files/:source/json' => {controller => 'App::Yath::Server::Controller::Files', failed => 0, json => 1}); + $router->connect('/files/:project/:idx' => {controller => 'App::Yath::Server::Controller::Files', failed => 0, json => 1}); + $router->connect('/files/:project/:username/:idx' => {controller => 'App::Yath::Server::Controller::Files', failed => 0, json => 1}); + + $router->connect('/rerun/:run_id' => {controller => 'App::Yath::Server::Controller::ReRun'}); + $router->connect('/rerun/:project/:username' => {controller => 'App::Yath::Server::Controller::ReRun'}); + + $router->connect('/binary/:binary_id' => {controller => 'App::Yath::Server::Controller::Binary'}); + + $router->connect('/download/:id' => {controller => 'App::Yath::Server::Controller::Download'}); + + $router->connect('/lookup' => {controller => 'App::Yath::Server::Controller::Lookup'}); + $router->connect('/lookup/:lookup' => {controller => 'App::Yath::Server::Controller::Lookup'}); + $router->connect('/lookup/data/:lookup' => {controller => 'App::Yath::Server::Controller::Lookup', data => 1}); + + $router->connect('/view' => {controller => 'App::Yath::Server::Controller::View'}); + $router->connect('/view/:id' => {controller => 'App::Yath::Server::Controller::View'}); + $router->connect('/view/:run_id/:job' => {controller => 'App::Yath::Server::Controller::View'}); + $router->connect('/view/:run_id/:job/:try' => {controller => 'App::Yath::Server::Controller::View'}); + + $router->connect('/stream/run/:run_id' => {controller => 'App::Yath::Server::Controller::Stream', run_only => 1}); + $router->connect('/stream' => {controller => 'App::Yath::Server::Controller::Stream'}); + $router->connect('/stream/:id' => {controller => 'App::Yath::Server::Controller::Stream'}); + $router->connect('/stream/:run_id/:job' => {controller => 'App::Yath::Server::Controller::Stream'}); + $router->connect('/stream/:run_id/:job/:try' => {controller => 'App::Yath::Server::Controller::Stream'}); + + $router->connect('/sweeper/:count/days' => {controller => 'App::Yath::Server::Controller::Sweeper', units => 'day'}); + $router->connect('/sweeper/:count/hours' => {controller => 'App::Yath::Server::Controller::Sweeper', units => 'hour'}); + $router->connect('/sweeper/:count/minutes' => {controller => 'App::Yath::Server::Controller::Sweeper', units => 'minute'}); + $router->connect('/sweeper/:count/seconds' => {controller => 'App::Yath::Server::Controller::Sweeper', units => 'second'}); } sub to_app { @@ -153,7 +153,7 @@ sub to_app { return sub { my $env = shift; - my $req = Test2::Harness::UI::Request->new(env => $env, config => $self->{+CONFIG}); + my $req = App::Yath::Server::Request->new(env => $env, config => $self->{+CONFIG}); my $r = $router->match($env) || {}; @@ -182,7 +182,7 @@ sub wrap { my $err = $@ || 'Internal Error'; unless ($ok && $res) { - if (blessed($err) && $err->isa('Test2::Harness::UI::Response')) { + if (blessed($err) && $err->isa('App::Yath::Server::Response')) { $res = $err; } else { @@ -250,7 +250,7 @@ __END__ =head1 NAME -Test2::Harness::UI - Web interface for viewing and inspecting yath test logs +App::Yath::Server - Web interface for viewing and inspecting yath test logs =head1 EARLY VERSION WARNING diff --git a/lib/Test2/Harness/UI/Config.pm b/lib/App/Yath/Server/Config.pm similarity index 86% rename from lib/Test2/Harness/UI/Config.pm rename to lib/App/Yath/Server/Config.pm index 4123e2b73..3dc18aead 100644 --- a/lib/Test2/Harness/UI/Config.pm +++ b/lib/App/Yath/Server/Config.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Config; +package App::Yath::Server::Config; use strict; use warnings; @@ -52,14 +52,14 @@ sub schema { return $self->{+_SCHEMA} if $self->{+_SCHEMA}; - unless ($Test2::Harness::UI::Schema::LOADED) { + unless ($App::Yath::Server::Schema::LOADED) { my $schema = $ENV{YATH_UI_SCHEMA} //= $self->guess_db_driver; - require(pkg_to_file("Test2::Harness::UI::Schema::$schema")); + require(pkg_to_file("App::Yath::Server::Schema::$schema")); } - require Test2::Harness::UI::Schema; + require App::Yath::Server::Schema; - return $self->{+_SCHEMA} = Test2::Harness::UI::Schema->connect( + return $self->{+_SCHEMA} = App::Yath::Server::Schema->connect( $self->dbi_dsn, $self->dbi_user, $self->dbi_pass, @@ -77,7 +77,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Config - UI configuration +App::Yath::Server::Config - UI configuration =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller.pm b/lib/App/Yath/Server/Controller.pm similarity index 90% rename from lib/Test2/Harness/UI/Controller.pm rename to lib/App/Yath/Server/Controller.pm index 6c5ec818b..dc281c1f2 100644 --- a/lib/Test2/Harness/UI/Controller.pm +++ b/lib/App/Yath/Server/Controller.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller; +package App::Yath::Server::Controller; use strict; use warnings; @@ -6,7 +6,7 @@ our $VERSION = '2.000000'; use Carp qw/croak/; -use Test2::Harness::UI::Response qw/error/; +use App::Yath::Server::Response qw/error/; use Test2::Harness::Util::HashBase qw/-request -config/; @@ -34,7 +34,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller +App::Yath::Server::Controller =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Binary.pm b/lib/App/Yath/Server/Controller/Binary.pm similarity index 87% rename from lib/Test2/Harness/UI/Controller/Binary.pm rename to lib/App/Yath/Server/Controller/Binary.pm index 33653f741..9d7d027d5 100644 --- a/lib/Test2/Harness/UI/Controller/Binary.pm +++ b/lib/App/Yath/Server/Controller/Binary.pm @@ -1,14 +1,14 @@ -package Test2::Harness::UI::Controller::Binary; +package App::Yath::Server::Controller::Binary; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; sub title { 'Binary' } @@ -54,7 +54,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Binary +App::Yath::Server::Controller::Binary =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Coverage.pm b/lib/App/Yath/Server/Controller/Coverage.pm similarity index 91% rename from lib/Test2/Harness/UI/Controller/Coverage.pm rename to lib/App/Yath/Server/Controller/Coverage.pm index d1e8f2c0d..ed52b0342 100644 --- a/lib/Test2/Harness/UI/Controller/Coverage.pm +++ b/lib/App/Yath/Server/Controller/Coverage.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Coverage; +package App::Yath::Server::Controller::Coverage; use strict; use warnings; @@ -6,11 +6,11 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json encode_pretty_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Coverage' } @@ -88,7 +88,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Coverage +App::Yath::Server::Controller::Coverage =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Download.pm b/lib/App/Yath/Server/Controller/Download.pm similarity index 86% rename from lib/Test2/Harness/UI/Controller/Download.pm rename to lib/App/Yath/Server/Controller/Download.pm index 11a71684b..610fd5571 100644 --- a/lib/Test2/Harness/UI/Controller/Download.pm +++ b/lib/App/Yath/Server/Controller/Download.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Download; +package App::Yath::Server::Controller::Download; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -58,7 +58,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Download +App::Yath::Server::Controller::Download =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Durations.pm b/lib/App/Yath/Server/Controller/Durations.pm similarity index 91% rename from lib/Test2/Harness/UI/Controller/Durations.pm rename to lib/App/Yath/Server/Controller/Durations.pm index 05f45ddb4..21eb5ec25 100644 --- a/lib/Test2/Harness/UI/Controller/Durations.pm +++ b/lib/App/Yath/Server/Controller/Durations.pm @@ -1,14 +1,14 @@ -package Test2::Harness::UI::Controller::Durations; +package App::Yath::Server::Controller::Durations; use strict; use warnings; our $VERSION = '2.000000'; use Data::GUID; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json encode_pretty_json/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Durations' } @@ -66,7 +66,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Durations +App::Yath::Server::Controller::Durations =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Events.pm b/lib/App/Yath/Server/Controller/Events.pm similarity index 93% rename from lib/Test2/Harness/UI/Controller/Events.pm rename to lib/App/Yath/Server/Controller/Events.pm index dd4d6bb92..4b02e1230 100644 --- a/lib/Test2/Harness/UI/Controller/Events.pm +++ b/lib/App/Yath/Server/Controller/Events.pm @@ -1,15 +1,15 @@ -package Test2::Harness::UI::Controller::Events; +package App::Yath::Server::Controller::Events; use strict; use warnings; our $VERSION = '2.000000'; use List::Util qw/max/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Events' } @@ -105,7 +105,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Events +App::Yath::Server::Controller::Events =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Files.pm b/lib/App/Yath/Server/Controller/Files.pm similarity index 94% rename from lib/Test2/Harness/UI/Controller/Files.pm rename to lib/App/Yath/Server/Controller/Files.pm index cd0e04fab..07977c9b8 100644 --- a/lib/Test2/Harness/UI/Controller/Files.pm +++ b/lib/App/Yath/Server/Controller/Files.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Files; +package App::Yath::Server::Controller::Files; use strict; use warnings; @@ -6,11 +6,11 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json encode_pretty_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Files' } @@ -145,7 +145,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Files +App::Yath::Server::Controller::Files =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Interactions.pm b/lib/App/Yath/Server/Controller/Interactions.pm similarity index 95% rename from lib/Test2/Harness/UI/Controller/Interactions.pm rename to lib/App/Yath/Server/Controller/Interactions.pm index 8c42954f5..5077d20c2 100644 --- a/lib/Test2/Harness/UI/Controller/Interactions.pm +++ b/lib/App/Yath/Server/Controller/Interactions.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Interactions; +package App::Yath::Server::Controller::Interactions; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use DateTime; use Data::GUID; use Scalar::Util qw/blessed/; -use Test2::Harness::UI::Response qw/resp error/; -use Test2::Harness::UI::Util qw/share_dir find_job/; +use App::Yath::Server::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir find_job/; use Test2::Harness::Util::JSON qw/encode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -198,7 +198,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Interactions +App::Yath::Server::Controller::Interactions =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Job.pm b/lib/App/Yath/Server/Controller/Job.pm similarity index 86% rename from lib/Test2/Harness/UI/Controller/Job.pm rename to lib/App/Yath/Server/Controller/Job.pm index e6b0db47c..568ed6d58 100644 --- a/lib/Test2/Harness/UI/Controller/Job.pm +++ b/lib/App/Yath/Server/Controller/Job.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Job; +package App::Yath::Server::Controller::Job; use strict; use warnings; @@ -7,11 +7,11 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir find_job/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir find_job/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -48,7 +48,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Job +App::Yath::Server::Controller::Job =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/JobField.pm b/lib/App/Yath/Server/Controller/JobField.pm similarity index 84% rename from lib/Test2/Harness/UI/Controller/JobField.pm rename to lib/App/Yath/Server/Controller/JobField.pm index d905fe810..37aaf0bb2 100644 --- a/lib/Test2/Harness/UI/Controller/JobField.pm +++ b/lib/App/Yath/Server/Controller/JobField.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::JobField; +package App::Yath::Server::Controller::JobField; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -52,7 +52,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Run +App::Yath::Server::Controller::Run =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Lookup.pm b/lib/App/Yath/Server/Controller/Lookup.pm similarity index 94% rename from lib/Test2/Harness/UI/Controller/Lookup.pm rename to lib/App/Yath/Server/Controller/Lookup.pm index e3285b2b7..ef35b90ef 100644 --- a/lib/Test2/Harness/UI/Controller/Lookup.pm +++ b/lib/App/Yath/Server/Controller/Lookup.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Lookup; +package App::Yath::Server::Controller::Lookup; use strict; use warnings; @@ -6,11 +6,11 @@ our $VERSION = '2.000000'; use Data::GUID; use Scalar::Util qw/blessed/; -use Test2::Harness::UI::Response qw/resp error/; -use Test2::Harness::UI::Util qw/share_dir find_job/; +use App::Yath::Server::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir find_job/; use Test2::Harness::Util::JSON qw/encode_json/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -177,7 +177,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Lookup +App::Yath::Server::Controller::Lookup =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Project.pm b/lib/App/Yath/Server/Controller/Project.pm similarity index 98% rename from lib/Test2/Harness/UI/Controller/Project.pm rename to lib/App/Yath/Server/Controller/Project.pm index 2aef4cee3..12aa7dddc 100644 --- a/lib/Test2/Harness/UI/Controller/Project.pm +++ b/lib/App/Yath/Server/Controller/Project.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Project; +package App::Yath::Server::Controller::Project; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use Time::Elapsed qw/elapsed/; use List::Util qw/sum/; use Text::Xslate(); -use Test2::Harness::UI::Util qw/share_dir format_duration parse_duration is_invalid_subtest_name/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir format_duration parse_duration is_invalid_subtest_name/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_deflate uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_deflate uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub display_duration { @@ -630,7 +630,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Project +App::Yath::Server::Controller::Project =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Query.pm b/lib/App/Yath/Server/Controller/Query.pm similarity index 87% rename from lib/Test2/Harness/UI/Controller/Query.pm rename to lib/App/Yath/Server/Controller/Query.pm index 9c78fd8c3..f748ee16b 100644 --- a/lib/Test2/Harness/UI/Controller/Query.pm +++ b/lib/App/Yath/Server/Controller/Query.pm @@ -1,13 +1,13 @@ -package Test2::Harness::UI::Controller::Query; +package App::Yath::Server::Controller::Query; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Query' } @@ -35,7 +35,7 @@ sub handle { my $arg = $route->{arg}; die error(400 => 'Missing Argument') if $spec->{args} && !defined($arg); - my $q = Test2::Harness::UI::Queries->new(config => $self->{+CONFIG}); + my $q = App::Yath::Schema::Queries->new(config => $self->{+CONFIG}); my $data = $q->$it($arg); $res->stream( @@ -62,7 +62,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Query +App::Yath::Server::Controller::Query =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/ReRun.pm b/lib/App/Yath/Server/Controller/ReRun.pm similarity index 89% rename from lib/Test2/Harness/UI/Controller/ReRun.pm rename to lib/App/Yath/Server/Controller/ReRun.pm index 7cf348213..b82fc8d6d 100644 --- a/lib/Test2/Harness/UI/Controller/ReRun.pm +++ b/lib/App/Yath/Server/Controller/ReRun.pm @@ -1,14 +1,14 @@ -package Test2::Harness::UI::Controller::ReRun; +package App::Yath::Server::Controller::ReRun; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json encode_pretty_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Rerun' } @@ -69,7 +69,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Files +App::Yath::Server::Controller::Files =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Recent.pm b/lib/App/Yath/Server/Controller/Recent.pm similarity index 89% rename from lib/Test2/Harness/UI/Controller/Recent.pm rename to lib/App/Yath/Server/Controller/Recent.pm index 0686e67d8..9c5756fd9 100644 --- a/lib/Test2/Harness/UI/Controller/Recent.pm +++ b/lib/App/Yath/Server/Controller/Recent.pm @@ -1,14 +1,14 @@ -package Test2::Harness::UI::Controller::Recent; +package App::Yath::Server::Controller::Recent; use strict; use warnings; our $VERSION = '2.000000'; use Data::GUID; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -55,7 +55,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Recent +App::Yath::Server::Controller::Recent =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Resources.pm b/lib/App/Yath/Server/Controller/Resources.pm similarity index 95% rename from lib/Test2/Harness/UI/Controller/Resources.pm rename to lib/App/Yath/Server/Controller/Resources.pm index ed05aa952..d24b39eb1 100644 --- a/lib/Test2/Harness/UI/Controller/Resources.pm +++ b/lib/App/Yath/Server/Controller/Resources.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Resources; +package App::Yath::Server::Controller::Resources; use strict; use warnings; @@ -6,14 +6,14 @@ our $VERSION = '2.000000'; use DateTime; use Scalar::Util qw/blessed/; -use Test2::Harness::UI::Response qw/resp error/; -use Test2::Harness::UI::Util qw/share_dir find_job/; -use Test2::Harness::UI::Util::DateTimeFormat qw/DTF/; +use App::Yath::Server::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir find_job/; +use App::Yath::Schema::DateTimeFormat qw/DTF/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; use Test2::Util::Times qw/render_duration/; -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; +use App::Yath::Schema::UUID qw/uuid_inflate uuid_deflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -274,7 +274,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Resources +App::Yath::Server::Controller::Resources =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Run.pm b/lib/App/Yath/Server/Controller/Run.pm similarity index 91% rename from lib/Test2/Harness/UI/Controller/Run.pm rename to lib/App/Yath/Server/Controller/Run.pm index 49a67f1bf..d7e19076e 100644 --- a/lib/Test2/Harness/UI/Controller/Run.pm +++ b/lib/App/Yath/Server/Controller/Run.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Run; +package App::Yath::Server::Controller::Run; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -97,7 +97,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Run +App::Yath::Server::Controller::Run =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/RunField.pm b/lib/App/Yath/Server/Controller/RunField.pm similarity index 84% rename from lib/Test2/Harness/UI/Controller/RunField.pm rename to lib/App/Yath/Server/Controller/RunField.pm index 4b66f6731..fc3413ef1 100644 --- a/lib/Test2/Harness/UI/Controller/RunField.pm +++ b/lib/App/Yath/Server/Controller/RunField.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::RunField; +package App::Yath::Server::Controller::RunField; use strict; use warnings; @@ -7,12 +7,12 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json decode_json/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -51,7 +51,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Run +App::Yath::Server::Controller::Run =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Stream.pm b/lib/App/Yath/Server/Controller/Stream.pm similarity index 97% rename from lib/Test2/Harness/UI/Controller/Stream.pm rename to lib/App/Yath/Server/Controller/Stream.pm index 10b9d86da..46c302746 100644 --- a/lib/Test2/Harness/UI/Controller/Stream.pm +++ b/lib/App/Yath/Server/Controller/Stream.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Stream; +package App::Yath::Server::Controller::Stream; use strict; use warnings; @@ -7,14 +7,14 @@ our $VERSION = '2.000000'; use Data::GUID; use List::Util qw/max/; use Scalar::Util qw/blessed/; -use Test2::Harness::UI::Util qw/find_job/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/find_job/; +use App::Yath::Schema::UUID qw/uuid_inflate/; +use App::Yath::Server::Response qw/resp error/; use Test2::Harness::Util::JSON qw/encode_json/; use JSON::PP(); use Carp qw/croak/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw{ new( + my $sweeper = App::Yath::Schema::Sweeper->new( interval => $interval, config => $self->{+CONFIG}, ); @@ -56,7 +56,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Sweeper +App::Yath::Server::Controller::Sweeper =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/Upload.pm b/lib/App/Yath/Server/Controller/Upload.pm similarity index 89% rename from lib/Test2/Harness/UI/Controller/Upload.pm rename to lib/App/Yath/Server/Controller/Upload.pm index 553cf7eaf..a6b86306d 100644 --- a/lib/Test2/Harness/UI/Controller/Upload.pm +++ b/lib/App/Yath/Server/Controller/Upload.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::Upload; +package App::Yath::Server::Controller::Upload; use strict; use warnings; @@ -6,16 +6,16 @@ our $VERSION = '2.000000'; use Text::Xslate(); -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; use Test2::Harness::Util::JSON qw/decode_json/; use Test2::Harness::Util qw/open_file/; -use Test2::Harness::UI::Queries(); +use App::Yath::Schema::Queries(); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase; sub title { 'Upload A Test Log' } @@ -46,7 +46,7 @@ sub handle { base_uri => $req->base->as_string, single_user => $self->{+CONFIG}->single_user, user => $user, - projects => Test2::Harness::UI::Queries->new(config => $self->{+CONFIG})->projects, + projects => App::Yath::Schema::Queries->new(config => $self->{+CONFIG})->projects, } ); @@ -136,7 +136,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::Upload +App::Yath::Server::Controller::Upload =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/User.pm b/lib/App/Yath/Server/Controller/User.pm similarity index 96% rename from lib/Test2/Harness/UI/Controller/User.pm rename to lib/App/Yath/Server/Controller/User.pm index e9dd5b820..cf5c6fcd8 100644 --- a/lib/Test2/Harness/UI/Controller/User.pm +++ b/lib/App/Yath/Server/Controller/User.pm @@ -1,19 +1,19 @@ -package Test2::Harness::UI::Controller::User; +package App::Yath::Server::Controller::User; use strict; use warnings; our $VERSION = '2.000000'; use Text::Xslate(); -use Test2::Harness::UI::Util qw/share_dir/; -use Test2::Harness::UI::Response qw/resp error/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Server::Util qw/share_dir/; +use App::Yath::Server::Response qw/resp error/; +use App::Yath::Schema::UUID qw/uuid_inflate/; use Email::Sender::Simple qw(sendmail); use Email::Simple; use Email::Simple::Creator; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -229,7 +229,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::User +App::Yath::Server::Controller::User =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Controller/View.pm b/lib/App/Yath/Server/Controller/View.pm similarity index 91% rename from lib/Test2/Harness/UI/Controller/View.pm rename to lib/App/Yath/Server/Controller/View.pm index 6539645a2..3e1c2eda7 100644 --- a/lib/Test2/Harness/UI/Controller/View.pm +++ b/lib/App/Yath/Server/Controller/View.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Controller::View; +package App::Yath::Server::Controller::View; use strict; use warnings; @@ -6,11 +6,11 @@ our $VERSION = '2.000000'; use Data::GUID; use Text::Xslate(qw/mark_raw/); -use Test2::Harness::UI::Util qw/share_dir find_job/; -use Test2::Harness::UI::Response qw/resp error/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Server::Util qw/share_dir find_job/; +use App::Yath::Server::Response qw/resp error/; +use App::Yath::Schema::UUID qw/uuid_inflate/; -use parent 'Test2::Harness::UI::Controller'; +use parent 'App::Yath::Server::Controller'; use Test2::Harness::Util::HashBase qw/-title/; sub handle { @@ -101,7 +101,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Controller::View +App::Yath::Server::Controller::View =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Request.pm b/lib/App/Yath/Server/Request.pm similarity index 95% rename from lib/Test2/Harness/UI/Request.pm rename to lib/App/Yath/Server/Request.pm index 595d86f40..142fd1080 100644 --- a/lib/Test2/Harness/UI/Request.pm +++ b/lib/App/Yath/Server/Request.pm @@ -1,10 +1,10 @@ -package Test2::Harness::UI::Request; +package App::Yath::Server::Request; use strict; use warnings; our $VERSION = '2.000000'; -use Test2::Harness::UI::UUID qw/gen_uuid uuid_inflate/; +use App::Yath::Schema::UUID qw/gen_uuid uuid_inflate/; use Data::GUID; use Carp qw/croak/; @@ -104,7 +104,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Request - web request +App::Yath::Server::Request - web request =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Response.pm b/lib/App/Yath/Server/Response.pm similarity index 98% rename from lib/Test2/Harness/UI/Response.pm rename to lib/App/Yath/Server/Response.pm index c9374472f..2ce612113 100644 --- a/lib/Test2/Harness/UI/Response.pm +++ b/lib/App/Yath/Server/Response.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Response; +package App::Yath::Server::Response; use strict; use warnings; @@ -210,7 +210,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Response - Web Response +App::Yath::Server::Response - Web Response =head1 DESCRIPTION diff --git a/lib/App/Yath/Tester/UI.pm b/lib/App/Yath/Server/Tester.pm similarity index 91% rename from lib/App/Yath/Tester/UI.pm rename to lib/App/Yath/Server/Tester.pm index 0ac686a77..6211d9921 100644 --- a/lib/App/Yath/Tester/UI.pm +++ b/lib/App/Yath/Server/Tester.pm @@ -1,11 +1,13 @@ -package App::Yath::Tester::UI; +package App::Yath::Tester::Server; use strict; use warnings; +our $VERSION = '2.000000'; + BEGIN { $ENV{T2_HARNESS_UI_ENV} = 'dev' } use DBIx::QuickDB; -use Test2::Harness::UI::Config; +use App::Yath::Server::Config; use Test2::AsyncSubtest; use Test2::API qw/context/; @@ -15,8 +17,8 @@ use Test2::Tools::Basic qw/note/; use Carp qw/croak/; use Time::HiRes qw/sleep/; use Test2::Util qw/pkg_to_file/; -use Test2::Harness::UI::Util qw/dbd_driver qdb_driver share_dir share_file/; -use Test2::Harness::UI::UUID qw/gen_uuid/; +use App::Yath::Server::Util qw/dbd_driver qdb_driver share_dir share_file/; +use App::Yath::Schema::UUID qw/gen_uuid/; use Scope::Guard qw/guard/; use File::Temp qw/tempfile/; @@ -63,7 +65,7 @@ sub init { my $dsn = $db->connect_string('harness_ui'); $self->{+DSN} = $dsn; - my $config = Test2::Harness::UI::Config->new( + my $config = App::Yath::Server::Config->new( dbi_dsn => $dsn, dbi_user => '', dbi_pass => '', @@ -84,7 +86,7 @@ sub init { local $ENV{HARNESS_UI_DSN} = $dsn; local $ENV{YATH_UI_SCHEMA} = $schema; - require(pkg_to_file("Test2::Harness::UI::Schema::$schema")); + require(pkg_to_file("App::Yath::Server::Schema::$schema")); my $user = $config->schema->resultset('User')->create({username => 'root', password => 'root', realname => 'root', user_id => gen_uuid()}); my $project = $config->schema->resultset('Project')->create({name => 'test', project_id => gen_uuid()}); @@ -143,7 +145,7 @@ __END__ =head1 NAME -App::Yath::Tester::UI - FIXME +App::Yath::Tester::Server - FIXME =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Util.pm b/lib/App/Yath/Server/Util.pm similarity index 96% rename from lib/Test2/Harness/UI/Util.pm rename to lib/App/Yath/Server/Util.pm index f4e671dd9..1d66bc792 100644 --- a/lib/Test2/Harness/UI/Util.pm +++ b/lib/App/Yath/Server/Util.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Util; +package App::Yath::Server::Util; use strict; use warnings; @@ -9,7 +9,7 @@ use Carp qw/croak/; use File::ShareDir(); use Test2::Harness::Util qw/mod2file/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; +use App::Yath::Schema::UUID qw/uuid_inflate/; use Importer Importer => 'import'; @@ -149,8 +149,8 @@ sub config_from_settings { } } - require Test2::Harness::UI::Config; - return Test2::Harness::UI::Config->new( + require App::Yath::Server::Config; + return App::Yath::Server::Config->new( dbi_dsn => $dsn, dbi_user => $db->user // '', dbi_pass => $db->pass // '', @@ -226,7 +226,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Util - General Utilities +App::Yath::Server::Util - General Utilities =head1 DESCRIPTION diff --git a/lib/Test2/Harness/UI/Util/Errors.pm b/lib/App/Yath/Server/Util/Errors.pm similarity index 93% rename from lib/Test2/Harness/UI/Util/Errors.pm rename to lib/App/Yath/Server/Util/Errors.pm index 630e54dc3..c2fed6b2f 100644 --- a/lib/Test2/Harness/UI/Util/Errors.pm +++ b/lib/App/Yath/Server/Util/Errors.pm @@ -1,4 +1,4 @@ -package Test2::Harness::UI::Util::Errors; +package App::Yath::Server::Util::Errors; use strict; use warnings; @@ -39,7 +39,7 @@ __END__ =head1 NAME -Test2::Harness::UI::Util::Errors +App::Yath::Server::Util::Errors =head1 DESCRIPTION diff --git a/lib/Getopt/Yath/Settings.pm b/lib/Getopt/Yath/Settings.pm index e01efb550..bc6cb0f07 100644 --- a/lib/Getopt/Yath/Settings.pm +++ b/lib/Getopt/Yath/Settings.pm @@ -4,9 +4,12 @@ use warnings; our $VERSION = '2.000000'; -use Getopt::Yath::Settings::Group; use Carp(); +use Getopt::Yath::Settings::Group; + +use Test2::Harness::Util::JSON qw/decode_json/; + sub new { my $class = shift; my $self = @_ == 1 ? $_[0] : { @_ }; @@ -73,6 +76,14 @@ sub AUTOLOAD { $this->group($group); } +sub FROM_JSON { + my $class = shift; + my ($json) = @_; + + my $data = decode_json($json); + $class->new($data); +} + sub TO_JSON { my $self = shift; return {%$self}; diff --git a/lib/Test2/Harness/Renderer/DB.pm b/lib/Test2/Harness/Renderer/DB.pm new file mode 100644 index 000000000..2d2a46e97 --- /dev/null +++ b/lib/Test2/Harness/Renderer/DB.pm @@ -0,0 +1,64 @@ +package Test2::Harness::Renderer::DB; +use strict; +use warnings; + +our $VERSION = '2.000000'; + +use Test2::Harness::Util::Deprecated( + delegate => 'App::Yath::Renderer::DB', +); + +1; + +__END__ + +=pod + +=encoding UTF-8 + +=head1 NAME + +Test2::Harness::Renderer::DB - FIXME + +=head1 DESCRIPTION + +=head1 SYNOPSIS + +=head1 EXPORTS + +=over 4 + +=back + +=head1 SOURCE + +The source code repository for Test2-Harness can be found at +L. + +=head1 MAINTAINERS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 AUTHORS + +=over 4 + +=item Chad Granum Eexodist@cpan.orgE + +=back + +=head1 COPYRIGHT + +Copyright Chad Granum Eexodist7@gmail.comE. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +See L + +=cut + diff --git a/lib/Test2/Harness/Renderer/UI.pm b/lib/Test2/Harness/Renderer/UI.pm index fed49c6b1..3671ca0db 100644 --- a/lib/Test2/Harness/Renderer/UI.pm +++ b/lib/Test2/Harness/Renderer/UI.pm @@ -2,8 +2,10 @@ package Test2::Harness::Renderer::UI; use strict; use warnings; +our $VERSION = '2.000000'; + use Test2::Harness::Util::Deprecated( - delegate => 'App::Yath::Renderer::UI', + delegate => 'App::Yath::Renderer::Server', ); __END__ diff --git a/lib/Test2/Harness/Resource/JobCount.pm b/lib/Test2/Harness/Resource/JobCount.pm index 9c16798fe..6e970fd81 100644 --- a/lib/Test2/Harness/Resource/JobCount.pm +++ b/lib/Test2/Harness/Resource/JobCount.pm @@ -41,7 +41,7 @@ sub available { my ($id, $job) = @_; my $run_count = $self->{+JOB_SLOTS}; - my $min_slots = $job->test_file->check_min_slots // 1; + my $min_slots = $job->test_file->check_min_slots || 1; my $max_slots = $job->test_file->check_max_slots // $min_slots; return -1 if $run_count < $min_slots; @@ -51,6 +51,8 @@ sub available { return 0 if $free < 1; return 0 if $free < $min_slots; + $max_slots = $free if $max_slots < 1; + return min($max_slots, $free); } diff --git a/lib/Test2/Harness/Run.pm b/lib/Test2/Harness/Run.pm index 795fa1c40..108e4e2f3 100644 --- a/lib/Test2/Harness/Run.pm +++ b/lib/Test2/Harness/Run.pm @@ -170,7 +170,7 @@ sub data_no_jobs { my $self = shift; my %data = %$self; - delete $data{$_} for $self->no_json, 'jobs'; + delete $data{$_} for $self->no_json, qw/jobs job_lookup/; return \%data; } diff --git a/lib/Test2/Harness/TestFile.pm b/lib/Test2/Harness/TestFile.pm index fa614238b..1515ff699 100644 --- a/lib/Test2/Harness/TestFile.pm +++ b/lib/Test2/Harness/TestFile.pm @@ -360,9 +360,9 @@ sub _scan { $headers{timeout}->{$type} = $num; } - elsif ($dir eq 'job' && $rest =~ m/slots\s+(\d+)(?:\s+(\d+))?$/i) { - $headers{min_slots} //= $1; - $headers{max_slots} //= $2 ? $2 : $1; + elsif ($dir eq 'job' && $rest =~ m/slots(\s+(\d+)(?:\s+(\d+))?)?$/i) { + $headers{min_slots} //= $1 // 1; + $headers{max_slots} //= $2 ? $2 : -1; } else { warn "Unknown harness directive '$dir' at $self->{+FILE} line $ln.\n"; diff --git a/lib/Test2/Harness/UI/BackFill.pm b/lib/Test2/Harness/UI/BackFill.pm deleted file mode 100644 index fdfa08be9..000000000 --- a/lib/Test2/Harness/UI/BackFill.pm +++ /dev/null @@ -1,179 +0,0 @@ -package Test2::Harness::UI::BackFill; -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Data::Dumper; -use Test2::Harness::UI::UUID qw/gen_uuid/; -use Test2::Harness::UI::Util qw/parse_duration is_invalid_subtest_name/; - -use Test2::Harness::Util::HashBase qw{ - config->schema->resultset('Run')->search( - {status => {'-in' => [qw/complete canceled/]}}, - {order_by => 'run_ord',} - ); - - while (my $run = $runs->next) { - if ($run->reportings->count) { - print "Run " . $run->run_id . " is already populated with durations data.\n"; - next; - } - - my $buffer = []; - print "Starting run " . $run->run_id . "...\n"; - - my %run_data = ( - project_id => $run->project_id, - run_id => $run->run_id, - run_ord => $run->run_ord, - user_id => $run->user_id, - ); - - if (my $duration = $run->duration) { - my $fail = $run->failed ? 1 : 0; - my $pass = $run->failed ? 0 : 1; - my $abort = $run->status ne 'complete' ? 1 : 0; - $fail = 0 if $abort; - $pass = 0 if $abort; - - push @$buffer => { - %run_data, - reporting_id => gen_uuid(), - duration => parse_duration($duration), - retry => 0, - pass => $pass, - fail => $fail, - abort => $abort, - }; - } - - my $jobs = $run->jobs; - while (my $job = $jobs->next) { - next unless $job->test_file_id; - - print " Starting job " . $job->test_file->filename . " " . ($job->job_try || 0) . "...\n"; - my %job_data = ( - %run_data, - job_try => $job->job_try // 0, - job_key => $job->job_key, - test_file_id => $job->test_file_id, - ); - - if (my $duration = $job->duration) { - my $fail = $job->fail ? 1 : 0; - my $pass = $job->fail ? 0 : 1; - my $retry = $job->retry ? 1 : 0; - my $abort = $job->ended ? 0 : 1; - - push @$buffer => { - %job_data, - reporting_id => gen_uuid(), - duration => parse_duration($duration), - pass => $pass, - fail => $fail, - retry => $retry, - abort => $abort, - }; - } - - my $events = $job->events->search({is_subtest => 1, nested => 0}); - while (my $e = $events->next()) { - my $f = $e->facets or next; - next if $f->{hubs}->[0]->{nested}; - - my $parent = $f->{parent} // next; - my $assert = $f->{assert} // next; - my $st = $assert->{details} // next; - next if is_invalid_subtest_name($st); - - my $start = $parent->{start_stamp} // next; - my $stop = $parent->{stop_stamp} // next; - my $duration = $stop - $start // next; - - print " Adding subtest '$st'\n"; - push @$buffer => { - %job_data, - reporting_id => gen_uuid(), - duration => $duration, - subtest => $st, - event_id => $e->event_id, - abort => 0, - retry => 0, - $assert->{pass} ? (pass => 1, fail => 0) : (fail => 1, pass => 0), - }; - } - } - - unless (@$buffer) { - print "No durations to add.\n\n"; - next; - } - - local $ENV{DBIC_DT_SEARCH_OK} = 1; - unless (eval { $self->config->schema->resultset('Reporting')->populate($buffer); 1 }) { - warn "Failed to populate reporting!\n$@\n" . Dumper($buffer); - } - } -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::BackFill - FIXME - -=head1 DESCRIPTION - -=head1 SYNOPSIS - -=head1 EXPORTS - -=over 4 - -=back - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut - diff --git a/lib/Test2/Harness/UI/CPANImporter.pm b/lib/Test2/Harness/UI/CPANImporter.pm deleted file mode 100644 index db9dee247..000000000 --- a/lib/Test2/Harness/UI/CPANImporter.pm +++ /dev/null @@ -1,146 +0,0 @@ -package Test2::Harness::UI::CPANImporter; -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Carp qw/croak/; - -use HTTP::Tiny; -use File::Temp qw/tempdir/; -use IO::Uncompress::Gunzip qw/gunzip/; - -use Test2::Harness::Util::HashBase qw/-config -dir/; -use Test2::Harness::UI::UUID qw/uuid_inflate/; - -sub init { - my $self = shift; - - croak "'config' is a required attribute" - unless $self->{+CONFIG}; - - my $dir = tempdir(); - $self->{+DIR} = $dir; -} - -sub run { - my $self = shift; - - my $batch = int(time); - - my $schema = $self->{+CONFIG}->schema; - my $details = $self->download('02packages.details.txt'); - my $perms = $self->download('06perms.txt'); - - my $mod_pkg_map = {}; - open(my $dfh, '<', $details) or die "Could not open $details for reading: $!"; - my $header = 1; - while(my $line = <$dfh>) { - chomp($line); - next if $header && $line; - $header = 0; - next unless $line; - - my ($mod, $ver, $pkg) = split /\s+/, $line; - $pkg =~ s{^.*/}{}g; - $pkg =~ s{-[^A-Za-z_].*$}{}g; - - $mod_pkg_map->{$mod} = $pkg; - } - close($dfh); - - open(my $pfh, '<', $perms) or die "Could not open $perms for reading: $!"; - $header = 1; - while(my $line = <$pfh>) { - chomp($line); - next if $header && $line; - $header = 0; - - my ($mod, $id) = split /,/, $line; - - if (my $email = $schema->resultset('Email')->find({local => $id, domain => 'cpan.org'})) { - next unless $email->verified; - my $user = $email->user; - - my $project_name = $mod_pkg_map->{$mod} or next; - my $project = $schema->resultset('Project')->find_or_create({name => $project_name}); - - $schema->resultset('Permission')->update_or_create({ - project_id => uuid_inflate($project->project_id), - user_id => uuid_inflate($user->user_id), - updated => \'NOW()', - cpan_batch => $batch, - }) or die "Could not add permissions for $id on $project"; - } - } - close($dfh); - - my $dbh = $self->{+CONFIG}->connect; - my $sth = $dbh->prepare('DELETE FROM permissions WHERE cpan_batch IS NOT NULL AND cpan_batch != ?'); - $sth->execute($batch) or die $sth->errstr; -} - -sub download { - my $self = shift; - my ($file) = @_; - - my $path = $self->{+DIR} . '/' . $file; - - my $resp = HTTP::Tiny->new->get("http://www.cpan.org/modules/${file}.gz"); - die "Could not download ${file}.gz" unless $resp->{success}; - open(my $fh, '>', $path) or die "Could not open $path for writing: $!"; - gunzip(\($resp->{content}) => $fh); - close($fh); - - return $path; -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::CPANImporter - Import permissions from CPAN - -=head1 DESCRIPTION - -=head1 SYNOPSIS - -TODO - -=head1 SOURCE - -The source code repository for Test2-Harness-UI can be found at -F. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL.pm b/lib/Test2/Harness/UI/Schema/MySQL.pm deleted file mode 100644 index 2ce87ae1e..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL.pm +++ /dev/null @@ -1,60 +0,0 @@ -package Test2::Harness::UI::Schema::MySQL; -use utf8; -use strict; -use warnings; -use Carp(); - -our $VERSION = '2.000000'; - -# DO NOT MODIFY THIS FILE, GENERATED BY ./author_tools/regen_schema.pl - - -Carp::confess("Already loaded schema '$Test2::Harness::UI::Schema::LOADED'") if $Test2::Harness::UI::Schema::LOADED; - -$Test2::Harness::UI::Schema::LOADED = "MySQL"; - -require Test2::Harness::UI::Schema; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL - Autogenerated schema file for MySQL. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56.pm b/lib/Test2/Harness/UI/Schema/MySQL56.pm deleted file mode 100644 index 5c843d362..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56.pm +++ /dev/null @@ -1,60 +0,0 @@ -package Test2::Harness::UI::Schema::MySQL56; -use utf8; -use strict; -use warnings; -use Carp(); - -our $VERSION = '2.000000'; - -# DO NOT MODIFY THIS FILE, GENERATED BY ./author_tools/regen_schema.pl - - -Carp::confess("Already loaded schema '$Test2::Harness::UI::Schema::LOADED'") if $Test2::Harness::UI::Schema::LOADED; - -$Test2::Harness::UI::Schema::LOADED = "MySQL56"; - -require Test2::Harness::UI::Schema; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56 - Autogenerated schema file for MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/ApiKey.pm b/lib/Test2/Harness/UI/Schema/MySQL56/ApiKey.pm deleted file mode 100644 index 9d1e78d7f..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/ApiKey.pm +++ /dev/null @@ -1,95 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::ApiKey; -package - Test2::Harness::UI::Schema::Result::ApiKey; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("api_keys"); -__PACKAGE__->add_columns( - "api_key_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "name", - { data_type => "varchar", is_nullable => 0, size => 128 }, - "value", - { data_type => "varchar", is_nullable => 0, size => 16 }, - "status", - { - data_type => "enum", - extra => { list => ["active", "disabled", "revoked"] }, - is_nullable => 0, - }, -); -__PACKAGE__->set_primary_key("api_key_id"); -__PACKAGE__->add_unique_constraint("value", ["value"]); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('api_key_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::ApiKey - Autogenerated result class for ApiKey in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Binary.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Binary.pm deleted file mode 100644 index 740f0e8ec..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Binary.pm +++ /dev/null @@ -1,92 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Binary; -package - Test2::Harness::UI::Schema::Result::Binary; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("binaries"); -__PACKAGE__->add_columns( - "binary_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "event_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "filename", - { data_type => "varchar", is_nullable => 0, size => 512 }, - "description", - { data_type => "text", is_nullable => 1 }, - "is_image", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "data", - { data_type => "longblob", is_nullable => 0 }, -); -__PACKAGE__->set_primary_key("binary_id"); -__PACKAGE__->belongs_to( - "event", - "Test2::Harness::UI::Schema::Result::Event", - { event_id => "event_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('binary_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Binary - Autogenerated result class for Binary in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Coverage.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Coverage.pm deleted file mode 100644 index d96f8e53d..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Coverage.pm +++ /dev/null @@ -1,151 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Coverage; -package - Test2::Harness::UI::Schema::Result::Coverage; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("coverage"); -__PACKAGE__->add_columns( - "coverage_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "test_file_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "source_file_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "source_sub_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "coverage_manager_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "job_key", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "metadata", - { data_type => "longtext", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("coverage_id"); -__PACKAGE__->add_unique_constraint( - "run_id", - [ - "run_id", - "test_file_id", - "source_file_id", - "source_sub_id", - "job_key", - ], -); -__PACKAGE__->belongs_to( - "coverage_manager", - "Test2::Harness::UI::Schema::Result::CoverageManager", - { coverage_manager_id => "coverage_manager_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "job_key", - "Test2::Harness::UI::Schema::Result::Job", - { job_key => "job_key" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "source_file", - "Test2::Harness::UI::Schema::Result::SourceFile", - { source_file_id => "source_file_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "source_sub", - "Test2::Harness::UI::Schema::Result::SourceSub", - { source_sub_id => "source_sub_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", - { test_file_id => "test_file_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('coverage_manager_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('coverage_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('source_sub_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('source_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Coverage - Autogenerated result class for Coverage in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/CoverageManager.pm b/lib/Test2/Harness/UI/Schema/MySQL56/CoverageManager.pm deleted file mode 100644 index 18ee771ab..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/CoverageManager.pm +++ /dev/null @@ -1,84 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::CoverageManager; -package - Test2::Harness::UI::Schema::Result::CoverageManager; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("coverage_manager"); -__PACKAGE__->add_columns( - "coverage_manager_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "package", - { data_type => "varchar", is_nullable => 0, size => 256 }, -); -__PACKAGE__->set_primary_key("coverage_manager_id"); -__PACKAGE__->add_unique_constraint("package", ["package"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.coverage_manager_id" => "self.coverage_manager_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('coverage_manager_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::CoverageManager - Autogenerated result class for CoverageManager in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Email.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Email.pm deleted file mode 100644 index 571a6d18c..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Email.pm +++ /dev/null @@ -1,103 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Email; -package - Test2::Harness::UI::Schema::Result::Email; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("email"); -__PACKAGE__->add_columns( - "email_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "local", - { data_type => "varchar", is_nullable => 0, size => 128 }, - "domain", - { data_type => "varchar", is_nullable => 0, size => 128 }, - "verified", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, -); -__PACKAGE__->set_primary_key("email_id"); -__PACKAGE__->add_unique_constraint("local", ["local", "domain"]); -__PACKAGE__->might_have( - "email_verification_code", - "Test2::Harness::UI::Schema::Result::EmailVerificationCode", - { "foreign.email_id" => "self.email_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->might_have( - "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", - { "foreign.email_id" => "self.email_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Email - Autogenerated result class for Email in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/EmailVerificationCode.pm b/lib/Test2/Harness/UI/Schema/MySQL56/EmailVerificationCode.pm deleted file mode 100644 index 10902a70d..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/EmailVerificationCode.pm +++ /dev/null @@ -1,85 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::EmailVerificationCode; -package - Test2::Harness::UI::Schema::Result::EmailVerificationCode; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("email_verification_codes"); -__PACKAGE__->add_columns( - "evcode_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "email_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, -); -__PACKAGE__->set_primary_key("evcode_id"); -__PACKAGE__->add_unique_constraint("email_id", ["email_id"]); -__PACKAGE__->belongs_to( - "email", - "Test2::Harness::UI::Schema::Result::Email", - { email_id => "email_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('evcode_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::EmailVerificationCode - Autogenerated result class for EmailVerificationCode in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Event.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Event.pm deleted file mode 100644 index c87f2eb73..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Event.pm +++ /dev/null @@ -1,132 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Event; -package - Test2::Harness::UI::Schema::Result::Event; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("events"); -__PACKAGE__->add_columns( - "event_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "job_key", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "event_ord", - { data_type => "bigint", is_nullable => 0 }, - "insert_ord", - { data_type => "bigint", is_auto_increment => 1, is_nullable => 0 }, - "has_binary", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "is_subtest", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "is_diag", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "is_harness", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "is_time", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "stamp", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - is_nullable => 1, - }, - "parent_id", - { data_type => "binary", is_nullable => 1, size => 16 }, - "trace_id", - { data_type => "char", is_nullable => 1, size => 36 }, - "nested", - { data_type => "integer", default_value => 0, is_nullable => 1 }, - "facets", - { data_type => "longtext", is_nullable => 1 }, - "facets_line", - { data_type => "bigint", is_nullable => 1 }, - "orphan", - { data_type => "longtext", is_nullable => 1 }, - "orphan_line", - { data_type => "bigint", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("event_id"); -__PACKAGE__->add_unique_constraint("insert_ord", ["insert_ord", "job_key"]); -__PACKAGE__->has_many( - "binaries", - "Test2::Harness::UI::Schema::Result::Binary", - { "foreign.event_id" => "self.event_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "job_key", - "Test2::Harness::UI::Schema::Result::Job", - { job_key => "job_key" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.event_id" => "self.event_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('parent_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Event - Autogenerated result class for Event in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Host.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Host.pm deleted file mode 100644 index a965a2a06..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Host.pm +++ /dev/null @@ -1,84 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Host; -package - Test2::Harness::UI::Schema::Result::Host; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("hosts"); -__PACKAGE__->add_columns( - "host_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "hostname", - { data_type => "varchar", is_nullable => 0, size => 512 }, -); -__PACKAGE__->set_primary_key("host_id"); -__PACKAGE__->add_unique_constraint("hostname", ["hostname"]); -__PACKAGE__->has_many( - "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", - { "foreign.host_id" => "self.host_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Host - Autogenerated result class for Host in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Job.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Job.pm deleted file mode 100644 index be14b7ff9..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Job.pm +++ /dev/null @@ -1,182 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Job; -package - Test2::Harness::UI::Schema::Result::Job; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("jobs"); -__PACKAGE__->add_columns( - "job_key", - { data_type => "binary", is_nullable => 0, size => 16 }, - "job_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "job_try", - { data_type => "integer", default_value => 0, is_nullable => 0 }, - "job_ord", - { data_type => "bigint", is_nullable => 0 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "is_harness_out", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "status", - { - data_type => "enum", - extra => { - list => ["pending", "running", "complete", "broken", "canceled"], - }, - is_nullable => 0, - }, - "parameters", - { data_type => "longtext", is_nullable => 1 }, - "fields", - { data_type => "longtext", is_nullable => 1 }, - "test_file_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "name", - { data_type => "text", is_nullable => 1 }, - "fail", - { data_type => "tinyint", is_nullable => 1 }, - "retry", - { data_type => "tinyint", is_nullable => 1 }, - "exit_code", - { data_type => "integer", is_nullable => 1 }, - "launch", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - is_nullable => 1, - }, - "start", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - is_nullable => 1, - }, - "ended", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - is_nullable => 1, - }, - "duration", - { data_type => "double precision", is_nullable => 1 }, - "pass_count", - { data_type => "bigint", is_nullable => 1 }, - "fail_count", - { data_type => "bigint", is_nullable => 1 }, - "coverage_manager", - { data_type => "text", is_nullable => 1 }, - "stdout", - { data_type => "longtext", is_nullable => 1 }, - "stderr", - { data_type => "longtext", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("job_key"); -__PACKAGE__->add_unique_constraint("job_id", ["job_id", "job_try"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.job_key" => "self.job_key" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "events", - "Test2::Harness::UI::Schema::Result::Event", - { "foreign.job_key" => "self.job_key" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "job_fields", - "Test2::Harness::UI::Schema::Result::JobField", - { "foreign.job_key" => "self.job_key" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.job_key" => "self.job_key" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", - { test_file_id => "test_file_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('job_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Job - Autogenerated result class for Job in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/JobField.pm b/lib/Test2/Harness/UI/Schema/MySQL56/JobField.pm deleted file mode 100644 index 6dc1bf2ed..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/JobField.pm +++ /dev/null @@ -1,95 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::JobField; -package - Test2::Harness::UI::Schema::Result::JobField; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("job_fields"); -__PACKAGE__->add_columns( - "job_field_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "job_key", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "name", - { data_type => "varchar", is_nullable => 0, size => 255 }, - "data", - { data_type => "longtext", is_nullable => 1 }, - "details", - { data_type => "text", is_nullable => 1 }, - "raw", - { data_type => "text", is_nullable => 1 }, - "link", - { data_type => "text", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("job_field_id"); -__PACKAGE__->add_unique_constraint("job_key", ["job_key", "name"]); -__PACKAGE__->belongs_to( - "job_key", - "Test2::Harness::UI::Schema::Result::Job", - { job_key => "job_key" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('job_field_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::JobField - Autogenerated result class for JobField in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/LogFile.pm b/lib/Test2/Harness/UI/Schema/MySQL56/LogFile.pm deleted file mode 100644 index d5c1c20f5..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/LogFile.pm +++ /dev/null @@ -1,87 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::LogFile; -package - Test2::Harness::UI::Schema::Result::LogFile; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("log_files"); -__PACKAGE__->add_columns( - "log_file_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "name", - { data_type => "text", is_nullable => 0 }, - "local_file", - { data_type => "text", is_nullable => 1 }, - "data", - { data_type => "longblob", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("log_file_id"); -__PACKAGE__->has_many( - "runs", - "Test2::Harness::UI::Schema::Result::Run", - { "foreign.log_file_id" => "self.log_file_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('log_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::LogFile - Autogenerated result class for LogFile in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Permission.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Permission.pm deleted file mode 100644 index cdbf9d865..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Permission.pm +++ /dev/null @@ -1,103 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Permission; -package - Test2::Harness::UI::Schema::Result::Permission; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("permissions"); -__PACKAGE__->add_columns( - "permission_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "project_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "updated", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", - is_nullable => 0, - }, - "cpan_batch", - { data_type => "bigint", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("permission_id"); -__PACKAGE__->add_unique_constraint("project_id", ["project_id", "user_id"]); -__PACKAGE__->belongs_to( - "project", - "Test2::Harness::UI::Schema::Result::Project", - { project_id => "project_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('permission_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Permission - Autogenerated result class for Permission in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/PrimaryEmail.pm b/lib/Test2/Harness/UI/Schema/MySQL56/PrimaryEmail.pm deleted file mode 100644 index 2e1b54b00..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/PrimaryEmail.pm +++ /dev/null @@ -1,91 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::PrimaryEmail; -package - Test2::Harness::UI::Schema::Result::PrimaryEmail; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("primary_email"); -__PACKAGE__->add_columns( - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "email_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, -); -__PACKAGE__->set_primary_key("user_id"); -__PACKAGE__->add_unique_constraint("email_id", ["email_id"]); -__PACKAGE__->belongs_to( - "email", - "Test2::Harness::UI::Schema::Result::Email", - { email_id => "email_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('email_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::PrimaryEmail - Autogenerated result class for PrimaryEmail in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Project.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Project.pm deleted file mode 100644 index 1d4f99e60..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Project.pm +++ /dev/null @@ -1,110 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Project; -package - Test2::Harness::UI::Schema::Result::Project; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("projects"); -__PACKAGE__->add_columns( - "project_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "name", - { data_type => "varchar", is_nullable => 0, size => 128 }, - "owner", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, -); -__PACKAGE__->set_primary_key("project_id"); -__PACKAGE__->add_unique_constraint("name", ["name"]); -__PACKAGE__->belongs_to( - "owner", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "owner" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->has_many( - "permissions", - "Test2::Harness::UI::Schema::Result::Permission", - { "foreign.project_id" => "self.project_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.project_id" => "self.project_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "runs", - "Test2::Harness::UI::Schema::Result::Run", - { "foreign.project_id" => "self.project_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('owner' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Project - Autogenerated result class for Project in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Reporting.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Reporting.pm deleted file mode 100644 index e4c5fbe7d..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Reporting.pm +++ /dev/null @@ -1,160 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Reporting; -package - Test2::Harness::UI::Schema::Result::Reporting; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("reporting"); -__PACKAGE__->add_columns( - "reporting_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "run_ord", - { data_type => "bigint", is_nullable => 0 }, - "job_try", - { data_type => "integer", is_nullable => 1 }, - "subtest", - { data_type => "varchar", is_nullable => 1, size => 512 }, - "duration", - { data_type => "double precision", is_nullable => 0 }, - "fail", - { data_type => "smallint", default_value => 0, is_nullable => 0 }, - "pass", - { data_type => "smallint", default_value => 0, is_nullable => 0 }, - "retry", - { data_type => "smallint", default_value => 0, is_nullable => 0 }, - "abort", - { data_type => "smallint", default_value => 0, is_nullable => 0 }, - "project_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "job_key", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "test_file_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "event_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, -); -__PACKAGE__->set_primary_key("reporting_id"); -__PACKAGE__->belongs_to( - "event", - "Test2::Harness::UI::Schema::Result::Event", - { event_id => "event_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "job_key", - "Test2::Harness::UI::Schema::Result::Job", - { job_key => "job_key" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "project", - "Test2::Harness::UI::Schema::Result::Project", - { project_id => "project_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "test_file", - "Test2::Harness::UI::Schema::Result::TestFile", - { test_file_id => "test_file_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('reporting_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('event_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('job_key' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Reporting - Autogenerated result class for Reporting in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Resource.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Resource.pm deleted file mode 100644 index ddbdae446..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Resource.pm +++ /dev/null @@ -1,91 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Resource; -package - Test2::Harness::UI::Schema::Result::Resource; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("resources"); -__PACKAGE__->add_columns( - "resource_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "resource_batch_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "batch_ord", - { data_type => "integer", is_nullable => 0 }, - "module", - { data_type => "varchar", is_nullable => 0, size => 512 }, - "data", - { data_type => "longtext", is_nullable => 0 }, -); -__PACKAGE__->set_primary_key("resource_id"); -__PACKAGE__->add_unique_constraint("resource_batch_id", ["resource_batch_id", "batch_ord"]); -__PACKAGE__->belongs_to( - "resource_batch", - "Test2::Harness::UI::Schema::Result::ResourceBatch", - { resource_batch_id => "resource_batch_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('resource_batch_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('resource_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Resource - Autogenerated result class for Resource in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/ResourceBatch.pm b/lib/Test2/Harness/UI/Schema/MySQL56/ResourceBatch.pm deleted file mode 100644 index d5f037b1f..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/ResourceBatch.pm +++ /dev/null @@ -1,105 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::ResourceBatch; -package - Test2::Harness::UI::Schema::Result::ResourceBatch; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("resource_batch"); -__PACKAGE__->add_columns( - "resource_batch_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "host_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "stamp", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - is_nullable => 0, - }, -); -__PACKAGE__->set_primary_key("resource_batch_id"); -__PACKAGE__->belongs_to( - "host", - "Test2::Harness::UI::Schema::Result::Host", - { host_id => "host_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->has_many( - "resources", - "Test2::Harness::UI::Schema::Result::Resource", - { "foreign.resource_batch_id" => "self.resource_batch_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('resource_batch_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::ResourceBatch - Autogenerated result class for ResourceBatch in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Run.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Run.pm deleted file mode 100644 index 99707cd5d..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Run.pm +++ /dev/null @@ -1,194 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Run; -package - Test2::Harness::UI::Schema::Result::Run; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("runs"); -__PACKAGE__->add_columns( - "run_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "run_ord", - { data_type => "bigint", is_auto_increment => 1, is_nullable => 0 }, - "status", - { - data_type => "enum", - extra => { - list => ["pending", "running", "complete", "broken", "canceled"], - }, - is_nullable => 0, - }, - "worker_id", - { data_type => "text", is_nullable => 1 }, - "error", - { data_type => "text", is_nullable => 1 }, - "project_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "pinned", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "has_coverage", - { data_type => "tinyint", default_value => 0, is_nullable => 0 }, - "added", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", - is_nullable => 0, - }, - "duration", - { data_type => "text", is_nullable => 1 }, - "log_file_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "mode", - { - data_type => "enum", - extra => { list => ["qvfds", "qvfd", "qvf", "summary", "complete"] }, - is_nullable => 0, - }, - "buffer", - { - data_type => "enum", - default_value => "job", - extra => { list => ["none", "diag", "job", "run"] }, - is_nullable => 0, - }, - "passed", - { data_type => "integer", is_nullable => 1 }, - "failed", - { data_type => "integer", is_nullable => 1 }, - "retried", - { data_type => "integer", is_nullable => 1 }, - "concurrency", - { data_type => "integer", is_nullable => 1 }, - "parameters", - { data_type => "longtext", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("run_id"); -__PACKAGE__->add_unique_constraint("run_ord", ["run_ord"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "jobs", - "Test2::Harness::UI::Schema::Result::Job", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "log_file", - "Test2::Harness::UI::Schema::Result::LogFile", - { log_file_id => "log_file_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); -__PACKAGE__->belongs_to( - "project", - "Test2::Harness::UI::Schema::Result::Project", - { project_id => "project_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "resource_batches", - "Test2::Harness::UI::Schema::Result::ResourceBatch", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "run_fields", - "Test2::Harness::UI::Schema::Result::RunField", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "sweeps", - "Test2::Harness::UI::Schema::Result::Sweep", - { "foreign.run_id" => "self.run_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('project_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('log_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Run - Autogenerated result class for Run in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/RunField.pm b/lib/Test2/Harness/UI/Schema/MySQL56/RunField.pm deleted file mode 100644 index 2d38ee0ba..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/RunField.pm +++ /dev/null @@ -1,95 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::RunField; -package - Test2::Harness::UI::Schema::Result::RunField; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("run_fields"); -__PACKAGE__->add_columns( - "run_field_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "name", - { data_type => "varchar", is_nullable => 0, size => 255 }, - "data", - { data_type => "longtext", is_nullable => 1 }, - "details", - { data_type => "text", is_nullable => 1 }, - "raw", - { data_type => "text", is_nullable => 1 }, - "link", - { data_type => "text", is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("run_field_id"); -__PACKAGE__->add_unique_constraint("run_id", ["run_id", "name"]); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('run_field_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::RunField - Autogenerated result class for RunField in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Session.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Session.pm deleted file mode 100644 index de938e189..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Session.pm +++ /dev/null @@ -1,83 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Session; -package - Test2::Harness::UI::Schema::Result::Session; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("sessions"); -__PACKAGE__->add_columns( - "session_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "active", - { data_type => "tinyint", default_value => 1, is_nullable => 1 }, -); -__PACKAGE__->set_primary_key("session_id"); -__PACKAGE__->has_many( - "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", - { "foreign.session_id" => "self.session_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('session_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Session - Autogenerated result class for Session in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/SessionHost.pm b/lib/Test2/Harness/UI/Schema/MySQL56/SessionHost.pm deleted file mode 100644 index 46b596389..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/SessionHost.pm +++ /dev/null @@ -1,117 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::SessionHost; -package - Test2::Harness::UI::Schema::Result::SessionHost; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("session_hosts"); -__PACKAGE__->add_columns( - "session_host_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "session_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "user_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 1, size => 16 }, - "created", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", - is_nullable => 0, - }, - "accessed", - { - data_type => "timestamp", - datetime_undef_if_invalid => 1, - default_value => \"current_timestamp", - is_nullable => 0, - }, - "address", - { data_type => "varchar", is_nullable => 0, size => 128 }, - "agent", - { data_type => "varchar", is_nullable => 0, size => 128 }, -); -__PACKAGE__->set_primary_key("session_host_id"); -__PACKAGE__->add_unique_constraint("session_id", ["session_id", "address", "agent"]); -__PACKAGE__->belongs_to( - "session", - "Test2::Harness::UI::Schema::Result::Session", - { session_id => "session_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); -__PACKAGE__->belongs_to( - "user", - "Test2::Harness::UI::Schema::Result::User", - { user_id => "user_id" }, - { - is_deferrable => 1, - join_type => "LEFT", - on_delete => "RESTRICT", - on_update => "RESTRICT", - }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('session_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('session_host_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::SessionHost - Autogenerated result class for SessionHost in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/SourceFile.pm b/lib/Test2/Harness/UI/Schema/MySQL56/SourceFile.pm deleted file mode 100644 index f7bdd9458..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/SourceFile.pm +++ /dev/null @@ -1,84 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::SourceFile; -package - Test2::Harness::UI::Schema::Result::SourceFile; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("source_files"); -__PACKAGE__->add_columns( - "source_file_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "filename", - { data_type => "varchar", is_nullable => 0, size => 512 }, -); -__PACKAGE__->set_primary_key("source_file_id"); -__PACKAGE__->add_unique_constraint("filename", ["filename"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.source_file_id" => "self.source_file_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('source_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::SourceFile - Autogenerated result class for SourceFile in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/SourceSub.pm b/lib/Test2/Harness/UI/Schema/MySQL56/SourceSub.pm deleted file mode 100644 index 2574ddbe7..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/SourceSub.pm +++ /dev/null @@ -1,84 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::SourceSub; -package - Test2::Harness::UI::Schema::Result::SourceSub; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("source_subs"); -__PACKAGE__->add_columns( - "source_sub_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "subname", - { data_type => "varchar", is_nullable => 0, size => 512 }, -); -__PACKAGE__->set_primary_key("source_sub_id"); -__PACKAGE__->add_unique_constraint("subname", ["subname"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.source_sub_id" => "self.source_sub_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('source_sub_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::SourceSub - Autogenerated result class for SourceSub in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/Sweep.pm b/lib/Test2/Harness/UI/Schema/MySQL56/Sweep.pm deleted file mode 100644 index 78d693ee1..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/Sweep.pm +++ /dev/null @@ -1,87 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::Sweep; -package - Test2::Harness::UI::Schema::Result::Sweep; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("sweeps"); -__PACKAGE__->add_columns( - "sweep_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "run_id", - { data_type => "binary", is_foreign_key => 1, is_nullable => 0, size => 16 }, - "name", - { data_type => "varchar", is_nullable => 0, size => 255 }, -); -__PACKAGE__->set_primary_key("sweep_id"); -__PACKAGE__->add_unique_constraint("run_id", ["run_id", "name"]); -__PACKAGE__->belongs_to( - "run", - "Test2::Harness::UI::Schema::Result::Run", - { run_id => "run_id" }, - { is_deferrable => 1, on_delete => "RESTRICT", on_update => "RESTRICT" }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('run_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -__PACKAGE__->inflate_column('sweep_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::Sweep - Autogenerated result class for Sweep in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/TestFile.pm b/lib/Test2/Harness/UI/Schema/MySQL56/TestFile.pm deleted file mode 100644 index 920cfcdbf..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/TestFile.pm +++ /dev/null @@ -1,96 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::TestFile; -package - Test2::Harness::UI::Schema::Result::TestFile; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("test_files"); -__PACKAGE__->add_columns( - "test_file_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "filename", - { data_type => "varchar", is_nullable => 0, size => 512 }, -); -__PACKAGE__->set_primary_key("test_file_id"); -__PACKAGE__->add_unique_constraint("filename", ["filename"]); -__PACKAGE__->has_many( - "coverages", - "Test2::Harness::UI::Schema::Result::Coverage", - { "foreign.test_file_id" => "self.test_file_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "jobs", - "Test2::Harness::UI::Schema::Result::Job", - { "foreign.test_file_id" => "self.test_file_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.test_file_id" => "self.test_file_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('test_file_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::TestFile - Autogenerated result class for TestFile in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/MySQL56/User.pm b/lib/Test2/Harness/UI/Schema/MySQL56/User.pm deleted file mode 100644 index 114ed187b..000000000 --- a/lib/Test2/Harness/UI/Schema/MySQL56/User.pm +++ /dev/null @@ -1,138 +0,0 @@ -use utf8; -package Test2::Harness::UI::Schema::MySQL56::User; -package - Test2::Harness::UI::Schema::Result::User; - -# Created by DBIx::Class::Schema::Loader -# DO NOT MODIFY ANY PART OF THIS FILE - -use strict; -use warnings; - -use base 'Test2::Harness::UI::Schema::ResultBase'; -__PACKAGE__->load_components( - "InflateColumn::DateTime", - "InflateColumn::Serializer", - "InflateColumn::Serializer::JSON", - "Tree::AdjacencyList", - "UUIDColumns", -); -__PACKAGE__->table("users"); -__PACKAGE__->add_columns( - "user_id", - { data_type => "binary", is_nullable => 0, size => 16 }, - "username", - { data_type => "varchar", is_nullable => 0, size => 64 }, - "pw_hash", - { data_type => "varchar", is_nullable => 1, size => 31 }, - "pw_salt", - { data_type => "varchar", is_nullable => 1, size => 22 }, - "realname", - { data_type => "varchar", is_nullable => 1, size => 64 }, - "role", - { - data_type => "enum", - extra => { list => ["admin", "user"] }, - is_nullable => 0, - }, -); -__PACKAGE__->set_primary_key("user_id"); -__PACKAGE__->add_unique_constraint("username", ["username"]); -__PACKAGE__->has_many( - "api_keys", - "Test2::Harness::UI::Schema::Result::ApiKey", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "emails", - "Test2::Harness::UI::Schema::Result::Email", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "permissions", - "Test2::Harness::UI::Schema::Result::Permission", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->might_have( - "primary_email", - "Test2::Harness::UI::Schema::Result::PrimaryEmail", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "projects", - "Test2::Harness::UI::Schema::Result::Project", - { "foreign.owner" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "reportings", - "Test2::Harness::UI::Schema::Result::Reporting", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "runs", - "Test2::Harness::UI::Schema::Result::Run", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -__PACKAGE__->has_many( - "session_hosts", - "Test2::Harness::UI::Schema::Result::SessionHost", - { "foreign.user_id" => "self.user_id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - - -# Created by DBIx::Class::Schema::Loader v0.07052 @ 2024-04-16 16:29:40 -use Test2::Harness::UI::UUID qw/uuid_inflate uuid_deflate/; -__PACKAGE__->inflate_column('user_id' => { inflate => \&uuid_inflate, deflate => \&uuid_deflate }); -# DO NOT MODIFY ANY PART OF THIS FILE - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::MySQL56::User - Autogenerated result class for User in MySQL56. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/PostgreSQL.pm b/lib/Test2/Harness/UI/Schema/PostgreSQL.pm deleted file mode 100644 index b5f720b21..000000000 --- a/lib/Test2/Harness/UI/Schema/PostgreSQL.pm +++ /dev/null @@ -1,60 +0,0 @@ -package Test2::Harness::UI::Schema::PostgreSQL; -use utf8; -use strict; -use warnings; -use Carp(); - -our $VERSION = '2.000000'; - -# DO NOT MODIFY THIS FILE, GENERATED BY ./author_tools/regen_schema.pl - - -Carp::confess("Already loaded schema '$Test2::Harness::UI::Schema::LOADED'") if $Test2::Harness::UI::Schema::LOADED; - -$Test2::Harness::UI::Schema::LOADED = "PostgreSQL"; - -require Test2::Harness::UI::Schema; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::PostgreSQL - Autogenerated schema file for PostgreSQL. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/ApiKey.pm b/lib/Test2/Harness/UI/Schema/Result/ApiKey.pm deleted file mode 100644 index ffb276ba0..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/ApiKey.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::ApiKey; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/ApiKey.pm"; -require "Test2/Harness/UI/Schema/Overlay/ApiKey.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::ApiKey - Autogenerated result class for ApiKey. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Binary.pm b/lib/Test2/Harness/UI/Schema/Result/Binary.pm deleted file mode 100644 index b60e67871..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Binary.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Binary; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Binary.pm"; -require "Test2/Harness/UI/Schema/Overlay/Binary.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Binary - Autogenerated result class for Binary. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Coverage.pm b/lib/Test2/Harness/UI/Schema/Result/Coverage.pm deleted file mode 100644 index f79dfa435..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Coverage.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Coverage; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Coverage.pm"; -require "Test2/Harness/UI/Schema/Overlay/Coverage.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Coverage - Autogenerated result class for Coverage. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/CoverageManager.pm b/lib/Test2/Harness/UI/Schema/Result/CoverageManager.pm deleted file mode 100644 index 2ec6fae7c..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/CoverageManager.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::CoverageManager; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/CoverageManager.pm"; -require "Test2/Harness/UI/Schema/Overlay/CoverageManager.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::CoverageManager - Autogenerated result class for CoverageManager. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Email.pm b/lib/Test2/Harness/UI/Schema/Result/Email.pm deleted file mode 100644 index 5b3a3b17a..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Email.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Email; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Email.pm"; -require "Test2/Harness/UI/Schema/Overlay/Email.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Email - Autogenerated result class for Email. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/EmailVerificationCode.pm b/lib/Test2/Harness/UI/Schema/Result/EmailVerificationCode.pm deleted file mode 100644 index f6b797c42..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/EmailVerificationCode.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::EmailVerificationCode; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/EmailVerificationCode.pm"; -require "Test2/Harness/UI/Schema/Overlay/EmailVerificationCode.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::EmailVerificationCode - Autogenerated result class for EmailVerificationCode. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Event.pm b/lib/Test2/Harness/UI/Schema/Result/Event.pm deleted file mode 100644 index 89e5b95df..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Event.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Event; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Event.pm"; -require "Test2/Harness/UI/Schema/Overlay/Event.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Event - Autogenerated result class for Event. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Host.pm b/lib/Test2/Harness/UI/Schema/Result/Host.pm deleted file mode 100644 index 62d448e4b..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Host.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Host; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Host.pm"; -require "Test2/Harness/UI/Schema/Overlay/Host.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Host - Autogenerated result class for Host. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Job.pm b/lib/Test2/Harness/UI/Schema/Result/Job.pm deleted file mode 100644 index 9d806f6d3..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Job.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Job; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Job.pm"; -require "Test2/Harness/UI/Schema/Overlay/Job.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Job - Autogenerated result class for Job. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/JobField.pm b/lib/Test2/Harness/UI/Schema/Result/JobField.pm deleted file mode 100644 index 47da8d10d..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/JobField.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::JobField; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/JobField.pm"; -require "Test2/Harness/UI/Schema/Overlay/JobField.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::JobField - Autogenerated result class for JobField. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/LogFile.pm b/lib/Test2/Harness/UI/Schema/Result/LogFile.pm deleted file mode 100644 index 8d50ac00f..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/LogFile.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::LogFile; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/LogFile.pm"; -require "Test2/Harness/UI/Schema/Overlay/LogFile.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::LogFile - Autogenerated result class for LogFile. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Permission.pm b/lib/Test2/Harness/UI/Schema/Result/Permission.pm deleted file mode 100644 index da6eb15a3..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Permission.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Permission; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Permission.pm"; -require "Test2/Harness/UI/Schema/Overlay/Permission.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Permission - Autogenerated result class for Permission. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/PrimaryEmail.pm b/lib/Test2/Harness/UI/Schema/Result/PrimaryEmail.pm deleted file mode 100644 index 5c6d8c796..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/PrimaryEmail.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::PrimaryEmail; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/PrimaryEmail.pm"; -require "Test2/Harness/UI/Schema/Overlay/PrimaryEmail.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::PrimaryEmail - Autogenerated result class for PrimaryEmail. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Project.pm b/lib/Test2/Harness/UI/Schema/Result/Project.pm deleted file mode 100644 index 092e06470..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Project.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Project; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Project.pm"; -require "Test2/Harness/UI/Schema/Overlay/Project.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Project - Autogenerated result class for Project. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Reporting.pm b/lib/Test2/Harness/UI/Schema/Result/Reporting.pm deleted file mode 100644 index a8cba651e..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Reporting.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Reporting; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Reporting.pm"; -require "Test2/Harness/UI/Schema/Overlay/Reporting.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Reporting - Autogenerated result class for Reporting. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Resource.pm b/lib/Test2/Harness/UI/Schema/Result/Resource.pm deleted file mode 100644 index 73f630738..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Resource.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Resource; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Resource.pm"; -require "Test2/Harness/UI/Schema/Overlay/Resource.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Resource - Autogenerated result class for Resource. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/ResourceBatch.pm b/lib/Test2/Harness/UI/Schema/Result/ResourceBatch.pm deleted file mode 100644 index 21ec0497a..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/ResourceBatch.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::ResourceBatch; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/ResourceBatch.pm"; -require "Test2/Harness/UI/Schema/Overlay/ResourceBatch.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::ResourceBatch - Autogenerated result class for ResourceBatch. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Run.pm b/lib/Test2/Harness/UI/Schema/Result/Run.pm deleted file mode 100644 index 58a96fd46..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Run.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Run; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Run.pm"; -require "Test2/Harness/UI/Schema/Overlay/Run.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Run - Autogenerated result class for Run. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/RunField.pm b/lib/Test2/Harness/UI/Schema/Result/RunField.pm deleted file mode 100644 index 5827b4901..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/RunField.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::RunField; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/RunField.pm"; -require "Test2/Harness/UI/Schema/Overlay/RunField.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::RunField - Autogenerated result class for RunField. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/Session.pm b/lib/Test2/Harness/UI/Schema/Result/Session.pm deleted file mode 100644 index 85c4aa8b5..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/Session.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::Session; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/Session.pm"; -require "Test2/Harness/UI/Schema/Overlay/Session.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::Session - Autogenerated result class for Session. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/SessionHost.pm b/lib/Test2/Harness/UI/Schema/Result/SessionHost.pm deleted file mode 100644 index 4c5719378..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/SessionHost.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::SessionHost; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/SessionHost.pm"; -require "Test2/Harness/UI/Schema/Overlay/SessionHost.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::SessionHost - Autogenerated result class for SessionHost. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/SourceFile.pm b/lib/Test2/Harness/UI/Schema/Result/SourceFile.pm deleted file mode 100644 index c835db539..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/SourceFile.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::SourceFile; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/SourceFile.pm"; -require "Test2/Harness/UI/Schema/Overlay/SourceFile.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::SourceFile - Autogenerated result class for SourceFile. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/SourceSub.pm b/lib/Test2/Harness/UI/Schema/Result/SourceSub.pm deleted file mode 100644 index 811ff24d3..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/SourceSub.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::SourceSub; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/SourceSub.pm"; -require "Test2/Harness/UI/Schema/Overlay/SourceSub.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::SourceSub - Autogenerated result class for SourceSub. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/TestFile.pm b/lib/Test2/Harness/UI/Schema/Result/TestFile.pm deleted file mode 100644 index ed82a12fe..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/TestFile.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::TestFile; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/TestFile.pm"; -require "Test2/Harness/UI/Schema/Overlay/TestFile.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::TestFile - Autogenerated result class for TestFile. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/lib/Test2/Harness/UI/Schema/Result/User.pm b/lib/Test2/Harness/UI/Schema/Result/User.pm deleted file mode 100644 index 9181293b5..000000000 --- a/lib/Test2/Harness/UI/Schema/Result/User.pm +++ /dev/null @@ -1,59 +0,0 @@ -package Test2::Harness::UI::Schema::Result::User; -use utf8; -use strict; -use warnings; - -use Carp qw/confess/; -confess "You must first load a Test2::Harness::UI::Schema::NAME module" - unless $Test2::Harness::UI::Schema::LOADED; - -our $VERSION = '2.000000'; - -require "Test2/Harness/UI/Schema/${Test2::Harness::UI::Schema::LOADED}/User.pm"; -require "Test2/Harness/UI/Schema/Overlay/User.pm"; - -with 'Test2::Harness::UI::Schema::Roles::Columns'; - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test2::Harness::UI::Schema::Result::User - Autogenerated result class for User. - -=head1 SOURCE - -The source code repository for Test2-Harness can be found at -L. - -=head1 MAINTAINERS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 AUTHORS - -=over 4 - -=item Chad Granum Eexodist@cpan.orgE - -=back - -=head1 COPYRIGHT - -Copyright Chad Granum Eexodist7@gmail.comE. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L - -=cut diff --git a/scripts/yath-ui-backfill.pl b/scripts/yath-ui-backfill.pl deleted file mode 100644 index bb8b3030a..000000000 --- a/scripts/yath-ui-backfill.pl +++ /dev/null @@ -1,27 +0,0 @@ -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Test2::Harness::UI::Config; -use Test2::Harness::UI::BackFill; - -if (grep { m/^-+(h(?:elp)?|\?)$/ } @ARGV) { - print "Usage: $0 'DSN' 'METHOD' ['USER'] ['PASSWORD']\nDSN is required, sql username and password are optional.\n"; - exit 0; -} - -my $dsn = shift @ARGV // die "Must provide a DSN as the first command line argument"; - -my ($meth, $user, $pass) = @ARGV; - -my $config = Test2::Harness::UI::Config->new( - dbi_dsn => $dsn, - dbi_user => $user // '', - dbi_pass => $pass // '', - single_user => 1, - show_user => 0, -); - -my $backfill = Test2::Harness::UI::BackFill->new(config => $config); -$backfill->$meth(); diff --git a/scripts/yath-ui-dumper.pl b/scripts/yath-ui-dumper.pl deleted file mode 100644 index 8e12e7752..000000000 --- a/scripts/yath-ui-dumper.pl +++ /dev/null @@ -1,31 +0,0 @@ -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Test2::Harness::UI::Config; -use Test2::Harness::UI::Dumper; - -if (grep { m/^-+(h(?:elp)?|\?)$/ } @ARGV) { - print "Usage: $0 outputfile 'DSN' ['USER'] ['PASSWORD']\nDSN is required, sql username and password are optional.\n"; - exit 0; -} - -my $dsn = shift @ARGV // die "Must provide a DSN as the first command line argument"; - -my ($user, $pass) = @ARGV; - -my $config = Test2::Harness::UI::Config->new( - dbi_dsn => $dsn, - dbi_user => $user // '', - dbi_pass => $pass // '', - single_user => 1, - show_user => 0, -); - -my $dumper = Test2::Harness::UI::Dumper->new( - config => $config, - procs => $ENV{DUMP_PROCS} // 1, -); - -$dumper->dump(); diff --git a/scripts/yath-ui-importer.pl b/scripts/yath-ui-importer.pl deleted file mode 100644 index 018684b8f..000000000 --- a/scripts/yath-ui-importer.pl +++ /dev/null @@ -1,26 +0,0 @@ -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Test2::Harness::UI; -use Test2::Harness::UI::Config; -use Test2::Harness::UI::Importer; - -my ($dsn, $user, $pass, $seed) = @ARGV; - -$user ||= ''; -$pass ||= ''; - -srand($seed) if $seed; - -my $config = Test2::Harness::UI::Config->new( - dbi_dsn => $dsn, - dbi_user => $user, - dbi_pass => $pass, -); - -$SIG{INT} = sub { exit 0 }; -$SIG{TERM} = sub { exit 0 }; - -Test2::Harness::UI::Importer->new(config => $config)->run; diff --git a/scripts/yath-ui-loader.pl b/scripts/yath-ui-loader.pl deleted file mode 100644 index f3e44f9d3..000000000 --- a/scripts/yath-ui-loader.pl +++ /dev/null @@ -1,31 +0,0 @@ -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Test2::Harness::UI::Config; -use Test2::Harness::UI::Loader; - -if (grep { m/^-+(h(?:elp)?|\?)$/ } @ARGV) { - print "Usage: $0 outputfile 'DSN' ['USER'] ['PASSWORD']\nDSN is required, sql username and password are optional.\n"; - exit 0; -} - -my $dsn = shift @ARGV // die "Must provide a DSN as the first command line argument"; - -my ($user, $pass) = @ARGV; - -my $config = Test2::Harness::UI::Config->new( - dbi_dsn => $dsn, - dbi_user => $user // '', - dbi_pass => $pass // '', - single_user => 1, - show_user => 0, -); - -my $loader = Test2::Harness::UI::Loader->new( - config => $config, - procs => $ENV{LOAD_PROCS} // 1, -); - -$loader->load(); diff --git a/scripts/yath-ui-sweeper.pl b/scripts/yath-ui-sweeper.pl deleted file mode 100755 index 5f9dc3828..000000000 --- a/scripts/yath-ui-sweeper.pl +++ /dev/null @@ -1,34 +0,0 @@ -use strict; -use warnings; - -our $VERSION = '2.000000'; - -use Test2::Harness::UI::Config; -use Test2::Harness::UI::Sweeper; - -if (grep { m/^-+(h(?:elp)?|\?)$/ } @ARGV) { - print "Usage: $0 'DSN' ['USER'] ['PASSWORD'] 'INTERVAL'\nDSN and Interval are required, sql username and password are optional.\n"; - exit 0; -} - -my $dsn = shift @ARGV // die "Must provide a DSN as the first command line argument"; -my $interval = pop @ARGV // die "Must provide an sql interval value (Example: '2 day') as the final command line argument"; - -my ($user, $pass) = @ARGV; - -$interval //= "10 day"; - -my $config = Test2::Harness::UI::Config->new( - dbi_dsn => $dsn, - dbi_user => $user // '', - dbi_pass => $pass // '', - single_user => 1, - show_user => 0, -); - -my $sweeper = Test2::Harness::UI::Sweeper->new( - config => $config, - interval => $interval, -); - -$sweeper->sweep(coverage => 0); diff --git a/share/schema/MySQL56.sql b/share/schema/MySQL56.sql deleted file mode 100644 index 7cac8f03c..000000000 --- a/share/schema/MySQL56.sql +++ /dev/null @@ -1,393 +0,0 @@ -CREATE TABLE users ( - user_id BINARY(16) NOT NULL PRIMARY KEY, - username VARCHAR(64) NOT NULL, - pw_hash VARCHAR(31) DEFAULT NULL, - pw_salt VARCHAR(22) DEFAULT NULL, - realname VARCHAR(64) DEFAULT NULL, - role ENUM( - 'admin', -- Can add users and set permissions - 'user' -- Can manage reports for their projects - ) NOT NULL, - - UNIQUE(username) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE email ( - email_id BINARY(16) NOT NULL PRIMARY KEY, - user_id BINARY(16) NOT NULL, - local VARCHAR(128) NOT NULL, - domain VARCHAR(128) NOT NULL, - verified BOOL NOT NULL DEFAULT FALSE, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - UNIQUE(local, domain) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE primary_email ( - user_id BINARY(16) NOT NULL PRIMARY KEY, - email_id BINARY(16) NOT NULL, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - FOREIGN KEY (email_id) REFERENCES email(email_id), - unique(email_id) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE hosts ( - host_id BINARY(16) NOT NULL PRIMARY KEY, - hostname VARCHAR(512) NOT NULL, - - unique(hostname) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE email_verification_codes ( - evcode_id BINARY(16) NOT NULL PRIMARY KEY, - email_id BINARY(16) NOT NULL, - - FOREIGN KEY (email_id) REFERENCES email(email_id), - - unique(email_id) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE sessions ( - session_id BINARY(16) NOT NULL PRIMARY KEY, - active BOOL DEFAULT TRUE -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE session_hosts ( - session_host_id BINARY(16) NOT NULL PRIMARY KEY, - session_id BINARY(16) NOT NULL, - user_id BINARY(16), - - created TIMESTAMP NOT NULL DEFAULT now(), - accessed TIMESTAMP NOT NULL DEFAULT now(), - - address VARCHAR(128) NOT NULL, - agent VARCHAR(128) NOT NULL, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - FOREIGN KEY (session_id) REFERENCES sessions(session_id), - - UNIQUE(session_id, address, agent) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX session_hosts_session ON session_hosts(session_id); - -CREATE TABLE api_keys ( - api_key_id BINARY(16) NOT NULL PRIMARY KEY, - user_id BINARY(16) NOT NULL, - name VARCHAR(128) NOT NULL, - value VARCHAR(16) NOT NULL, - - status ENUM( 'active', 'disabled', 'revoked') NOT NULL, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - - UNIQUE(value) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX api_key_user ON api_keys(user_id); - -CREATE TABLE log_files ( - log_file_id BINARY(16) NOT NULL PRIMARY KEY, - name TEXT NOT NULL, - - local_file TEXT, - data LONGBLOB -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE projects ( - project_id BINARY(16) NOT NULL PRIMARY KEY, - name VARCHAR(128) NOT NULL, - owner BINARY(16) DEFAULT NULL, - - FOREIGN KEY (owner) REFERENCES users(user_id), - UNIQUE(name) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE permissions ( - permission_id BINARY(16) NOT NULL PRIMARY KEY, - project_id BINARY(16) NOT NULL, - user_id BINARY(16) NOT NULL, - updated TIMESTAMP NOT NULL DEFAULT now(), - - cpan_batch BIGINT DEFAULT NULL, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - FOREIGN KEY (project_id) REFERENCES projects(project_id), - UNIQUE(project_id, user_id) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE runs ( - run_id BINARY(16) NOT NULL PRIMARY KEY, - user_id BINARY(16) NOT NULL, - - run_ord BIGINT NOT NULL AUTO_INCREMENT, - - status ENUM('pending', 'running', 'complete', 'broken', 'canceled') NOT NULL, - worker_id TEXT DEFAULT NULL, - - error TEXT DEFAULT NULL, - project_id BINARY(16) NOT NULL, - - pinned BOOL NOT NULL DEFAULT FALSE, - has_coverage BOOL NOT NULL DEFAULT FALSE, - - -- User Input - added TIMESTAMP NOT NULL DEFAULT now(), - duration TEXT DEFAULT NULL, - log_file_id BINARY(16) DEFAULT NULL, - - mode ENUM('qvfds', 'qvfd', 'qvf', 'summary', 'complete') NOT NULL, - buffer ENUM('none', 'diag', 'job', 'run') DEFAULT 'job' NOT NULL, - - -- From Log - passed INTEGER DEFAULT NULL, - failed INTEGER DEFAULT NULL, - retried INTEGER DEFAULT NULL, - concurrency INTEGER DEFAULT NULL, - parameters LONGTEXT DEFAULT NULL, - - FOREIGN KEY (user_id) REFERENCES users(user_id), - FOREIGN KEY (project_id) REFERENCES projects(project_id), - FOREIGN KEY (log_file_id) REFERENCES log_files(log_file_id), - UNIQUE(run_ord) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX run_projects ON runs(project_id); -CREATE INDEX run_status ON runs(status); -CREATE INDEX run_user ON runs(user_id); - -CREATE TABLE sweeps ( - sweep_id BINARY(16) NOT NULL PRIMARY KEY, - run_id BINARY(16) NOT NULL, - name VARCHAR(255) NOT NULL, - - FOREIGN KEY (run_id) REFERENCES runs(run_id), - - UNIQUE(run_id, name) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX sweep_runs ON sweeps(run_id); - -CREATE TABLE run_fields ( - run_field_id BINARY(16) NOT NULL PRIMARY KEY, - run_id BINARY(16) NOT NULL, - name VARCHAR(255) NOT NULL, - data LONGTEXT DEFAULT NULL, - details TEXT DEFAULT NULL, - raw TEXT DEFAULT NULL, - link TEXT DEFAULT NULL, - - FOREIGN KEY (run_id) REFERENCES runs(run_id), - - UNIQUE(run_id, name) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE test_files ( - test_file_id BINARY(16) NOT NULL PRIMARY KEY, - filename VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - - UNIQUE(filename) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE jobs ( - job_key BINARY(16) NOT NULL PRIMARY KEY, - - job_id BINARY(16) NOT NULL, - job_try INT NOT NULL DEFAULT 0, - job_ord BIGINT NOT NULL, - run_id BINARY(16) NOT NULL, - - is_harness_out BOOL NOT NULL DEFAULT 0, - - status ENUM('pending', 'running', 'complete', 'broken', 'canceled') NOT NULL, - - parameters LONGTEXT DEFAULT NULL, - fields LONGTEXT DEFAULT NULL, - - test_file_id BINARY(16) DEFAULT NULL, - - -- Summaries - name TEXT DEFAULT NULL, - fail BOOL DEFAULT NULL, - retry BOOL DEFAULT NULL, - exit_code INT DEFAULT NULL, - launch TIMESTAMP, - start TIMESTAMP, - ended TIMESTAMP, - - duration DOUBLE PRECISION DEFAULT NULL, - - pass_count BIGINT DEFAULT NULL, - fail_count BIGINT DEFAULT NULL, - - -- Coverage - coverage_manager TEXT DEFAULT NULL, - - -- Output data - stdout LONGTEXT DEFAULT NULL, - stderr LONGTEXT DEFAULT NULL, - - FOREIGN KEY (run_id) REFERENCES runs(run_id), - FOREIGN KEY (test_file_id) REFERENCES test_files(test_file_id), - - UNIQUE(job_id, job_try) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX job_runs ON jobs(run_id); -CREATE INDEX job_fail ON jobs(fail); -CREATE INDEX job_file ON jobs(test_file_id); - -CREATE TABLE job_fields ( - job_field_id BINARY(16) NOT NULL PRIMARY KEY, - job_key BINARY(16) NOT NULL, - name VARCHAR(255) NOT NULL, - data LONGTEXT DEFAULT NULL, - details TEXT DEFAULT NULL, - raw TEXT DEFAULT NULL, - link TEXT DEFAULT NULL, - - FOREIGN KEY (job_key) REFERENCES jobs(job_key), - - UNIQUE(job_key, name) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE events ( - event_id BINARY(16) NOT NULL PRIMARY KEY, - - job_key BINARY(16) NOT NULL, - - event_ord BIGINT NOT NULL, - insert_ord BIGINT NOT NULL AUTO_INCREMENT, - - has_binary BOOL NOT NULL DEFAULT FALSE, - is_subtest BOOL NOT NULL DEFAULT FALSE, - is_diag BOOL NOT NULL DEFAULT FALSE, - is_harness BOOL NOT NULL DEFAULT FALSE, - is_time BOOL NOT NULL DEFAULT FALSE, - - stamp TIMESTAMP, - - parent_id BINARY(16) DEFAULT NULL, - trace_id CHAR(36) DEFAULT NULL, - nested INT DEFAULT 0, - - facets LONGTEXT DEFAULT NULL, - facets_line BIGINT DEFAULT NULL, - - orphan LONGTEXT DEFAULT NULL, - orphan_line BIGINT DEFAULT NULL, - - UNIQUE(insert_ord, job_key), - FOREIGN KEY (job_key) REFERENCES jobs(job_key) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX event_job ON events(job_key); -CREATE INDEX event_trace ON events(trace_id); -CREATE INDEX event_parent ON events(parent_id); -CREATE INDEX is_subtest ON events(is_subtest); - -CREATE TABLE binaries ( - binary_id BINARY(16) NOT NULL PRIMARY KEY, - event_id BINARY(16) NOT NULL, - filename VARCHAR(512) NOT NULL, - description TEXT DEFAULT NULL, - is_image BOOL NOT NULL DEFAULT FALSE, - data LONGBLOB NOT NULL, - - FOREIGN KEY (event_id) REFERENCES events(event_id) -); - -CREATE TABLE source_files ( - source_file_id BINARY(16) NOT NULL PRIMARY KEY, - filename VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - - UNIQUE(filename) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE source_subs ( - source_sub_id BINARY(16) NOT NULL PRIMARY KEY, - subname VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - - UNIQUE(subname) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE coverage_manager ( - coverage_manager_id BINARY(16) NOT NULL PRIMARY KEY, - package VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - - UNIQUE(package) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE coverage ( - coverage_id BINARY(16) NOT NULL PRIMARY KEY, - - run_id BINARY(16) NOT NULL, - test_file_id BINARY(16) NOT NULL, - source_file_id BINARY(16) NOT NULL, - source_sub_id BINARY(16) NOT NULL, - coverage_manager_id BINARY(16) DEFAULT NULL, - job_key BINARY(16) DEFAULT NULL, - - metadata LONGTEXT DEFAULT NULL, - - FOREIGN KEY (run_id) REFERENCES runs(run_id), - FOREIGN KEY (test_file_id) REFERENCES test_files(test_file_id), - FOREIGN KEY (source_file_id) REFERENCES source_files(source_file_id), - FOREIGN KEY (source_sub_id) REFERENCES source_subs(source_sub_id), - FOREIGN KEY (coverage_manager_id) REFERENCES coverage_manager(coverage_manager_id), - FOREIGN KEY (job_key) REFERENCES jobs(job_key), - - UNIQUE(run_id, test_file_id, source_file_id, source_sub_id, job_key) -) ROW_FORMAT=COMPRESSED; -CREATE INDEX coverage_from_source ON coverage(source_file_id, source_sub_id); -CREATE INDEX coverage_from_run_source ON coverage(run_id, source_file_id, source_sub_id); -CREATE INDEX coverage_from_job ON coverage(job_key); - -CREATE TABLE reporting ( - reporting_id BINARY(16) NOT NULL PRIMARY KEY, - run_ord BIGINT NOT NULL, - job_try INT DEFAULT NULL, - subtest VARCHAR(512) DEFAULT NULL, - duration DOUBLE PRECISION NOT NULL, - - fail SMALLINT NOT NULL DEFAULT 0, - pass SMALLINT NOT NULL DEFAULT 0, - retry SMALLINT NOT NULL DEFAULT 0, - abort SMALLINT NOT NULL DEFAULT 0, - - project_id BINARY(16) NOT NULL, - run_id BINARY(16) NOT NULL, - user_id BINARY(16) NOT NULL, - job_key BINARY(16) DEFAULT NULL, - test_file_id BINARY(16) DEFAULT NULL, - event_id BINARY(16) DEFAULT NULL, - - FOREIGN KEY (project_id) REFERENCES projects(project_id), - FOREIGN KEY (run_id) REFERENCES runs(run_id), - FOREIGN KEY (user_id) REFERENCES users(user_id), - FOREIGN KEY (job_key) REFERENCES jobs(job_key), - FOREIGN KEY (test_file_id) REFERENCES test_files(test_file_id), - FOREIGN KEY (event_id) REFERENCES events(event_id) -); -CREATE INDEX reporting_user ON reporting(user_id); -CREATE INDEX reporting_a ON reporting(project_id); -CREATE INDEX reporting_b ON reporting(project_id, user_id); -CREATE INDEX reporting_c ON reporting(project_id, test_file_id, subtest); -CREATE INDEX reporting_d ON reporting(project_id, test_file_id, subtest, user_id); -CREATE INDEX reporting_e ON reporting(project_id, test_file_id, subtest, user_id, run_ord); - -CREATE TABLE resource_batch ( - resource_batch_id BINARY(16) NOT NULL PRIMARY KEY, - run_id BINARY(16) NOT NULL, - host_id BINARY(16) NOT NULL, - stamp TIMESTAMP(4) NOT NULL, - - FOREIGN KEY (run_id) REFERENCES runs(run_id), - FOREIGN KEY (host_id) REFERENCES hosts(host_id) -) ROW_FORMAT=COMPRESSED; - -CREATE TABLE resources ( - resource_id BINARY(16) NOT NULL PRIMARY KEY, - resource_batch_id BINARY(16) NOT NULL, - batch_ord INT NOT NULL, - module VARCHAR(512) NOT NULL, - data LONGTEXT NOT NULL, - - FOREIGN KEY (resource_batch_id) REFERENCES resource_batch(resource_batch_id), - UNIQUE(resource_batch_id, batch_ord) -) ROW_FORMAT=COMPRESSED; diff --git a/t/0-load_all.t b/t/0-load_all.t index daad2a896..242837ab0 100644 --- a/t/0-load_all.t +++ b/t/0-load_all.t @@ -1,9 +1,11 @@ use Test2::V0; -use Test2::IPC; +use Test2::IPC qw/cull/; +# HARNESS-JOB-SLOTS use File::Find; use Test2::Harness; use Test2::Harness::Util qw/file2mod/; +use Parallel::Runner; use Test2::Harness::Util::Deprecated(); $Test2::Harness::Util::Deprecated::IGNORE_IMPORT = 1; @@ -15,6 +17,11 @@ my %SKIP = ( 'lib/Test2/Harness/IPC/Protocol/UnixSocket/Connection.pm' => 1, ); +my $runner = Parallel::Runner->new( + $ENV{T2_HARNESS_MY_JOB_CONCURRENCY} // 2, + iteration_callback => sub { cull() }, +); + my $pid = $$; find({wanted => \&wanted, no_chdir => 1}, 'lib/'); @@ -25,30 +32,24 @@ sub wanted { return if $SKIP{$file}; - my $pid = fork; - if ($pid) { - waitpid($pid, 0); - ok(!$?, "Subprocess exited cleanly"); - return; - } - else { + $runner->run(sub { local $ENV{T2_HARNESS_PIPE_COUNT} = -1; subtest $file => sub { $file =~ s{^.*lib/}{}g; my @warnings; - if ($file =~ m{Schema/(MySQL|PostgreSQL|SQLite)/}) { - ok(eval { require "Test2/Harness/UI/Schema/$1.pm" }, "Load necessary schema '$1'", $@); + if ($file =~ m{(MySQL|PostgreSQL|SQLite)}) { + ok(eval { require "App/Yath/Schema/$1.pm" }, "Load necessary schema '$1'", $@); } - elsif ($file =~ m{UI/Schema\.pm$} || $file =~ m{Schema/(Overlay|Result)}) { - ok(eval { require Test2::Harness::UI::Schema::PostgreSQL }, "Load schema"); + elsif ($file =~ m{App/Yath/Schema\.pm$} || $file =~ m{Schema/(Overlay|Result)}) { + ok(eval { require App::Yath::Schema::PostgreSQL }, "Load schema"); } my $ok = eval { local $SIG{__WARN__} = sub { push @warnings => @_ }; require($file); 1 }; my $err = $@; { no warnings 'once'; - ok($ok, "require $file (" . ($Test2::Harness::UI::Schema::LOADED // 'undef') . ")", $ok ? () : $err); + ok($ok, "require $file (" . ($App::Yath::Schema::LOADED // 'undef') . ")", $ok ? () : $err); } ok(!@warnings, "No Warnings", @warnings); @@ -57,9 +58,9 @@ sub wanted { no strict 'refs'; is($$sym, $Test2::Harness::VERSION, "Package $mod ($file) has the version number"); }; - - exit(0); - } + }, 1); }; +$runner->finish(); + done_testing; diff --git a/t/UI/MySQL56.t b/t/UI/MySQL56.t deleted file mode 100644 index 201190305..000000000 --- a/t/UI/MySQL56.t +++ /dev/null @@ -1,5 +0,0 @@ -use Test2::V0 -target => 'Test2::Harness::UI::Schema::MySQL56'; - -use ok $CLASS; - -done_testing;