use Test2::V0 -no_srand => 1;

sub require_ok ($);

require_ok 'Alien::Base';
require_ok 'Alien::Base::PkgConfig';
require_ok 'Alien::Base::Wrapper';
require_ok 'Alien::Build';
require_ok 'Alien::Build::CommandSequence';
require_ok 'Alien::Build::Interpolate';
require_ok 'Alien::Build::Interpolate::Default';
require_ok 'Alien::Build::Log';
require_ok 'Alien::Build::Log::Abbreviate';
require_ok 'Alien::Build::Log::Default';
require_ok 'Alien::Build::MM';
require_ok 'Alien::Build::Plugin';
require_ok 'Alien::Build::Plugin::Build::Autoconf';
require_ok 'Alien::Build::Plugin::Build::CMake';
require_ok 'Alien::Build::Plugin::Build::Copy';
require_ok 'Alien::Build::Plugin::Build::MSYS';
require_ok 'Alien::Build::Plugin::Build::Make';
require_ok 'Alien::Build::Plugin::Build::SearchDep';
require_ok 'Alien::Build::Plugin::Core::CleanInstall';
require_ok 'Alien::Build::Plugin::Core::Download';
require_ok 'Alien::Build::Plugin::Core::FFI';
require_ok 'Alien::Build::Plugin::Core::Gather';
require_ok 'Alien::Build::Plugin::Core::Legacy';
require_ok 'Alien::Build::Plugin::Core::Override';
require_ok 'Alien::Build::Plugin::Core::Setup';
require_ok 'Alien::Build::Plugin::Core::Tail';
require_ok 'Alien::Build::Plugin::Decode::DirListing';
require_ok 'Alien::Build::Plugin::Decode::DirListingFtpcopy';
require_ok 'Alien::Build::Plugin::Decode::HTML';
require_ok 'Alien::Build::Plugin::Decode::Mojo';
require_ok 'Alien::Build::Plugin::Download::Negotiate';
require_ok 'Alien::Build::Plugin::Extract::ArchiveTar';
require_ok 'Alien::Build::Plugin::Extract::ArchiveZip';
require_ok 'Alien::Build::Plugin::Extract::CommandLine';
require_ok 'Alien::Build::Plugin::Extract::Directory';
require_ok 'Alien::Build::Plugin::Extract::Negotiate';
require_ok 'Alien::Build::Plugin::Fetch::CurlCommand';
require_ok 'Alien::Build::Plugin::Fetch::HTTPTiny';
require_ok 'Alien::Build::Plugin::Fetch::LWP';
require_ok 'Alien::Build::Plugin::Fetch::Local';
require_ok 'Alien::Build::Plugin::Fetch::LocalDir';
require_ok 'Alien::Build::Plugin::Fetch::NetFTP';
require_ok 'Alien::Build::Plugin::Fetch::Wget';
require_ok 'Alien::Build::Plugin::Gather::IsolateDynamic';
require_ok 'Alien::Build::Plugin::PkgConfig::CommandLine';
require_ok 'Alien::Build::Plugin::PkgConfig::LibPkgConf';
require_ok 'Alien::Build::Plugin::PkgConfig::MakeStatic';
require_ok 'Alien::Build::Plugin::PkgConfig::Negotiate';
require_ok 'Alien::Build::Plugin::PkgConfig::PP';
require_ok 'Alien::Build::Plugin::Prefer::BadVersion';
require_ok 'Alien::Build::Plugin::Prefer::GoodVersion';
require_ok 'Alien::Build::Plugin::Prefer::SortVersions';
require_ok 'Alien::Build::Plugin::Probe::CBuilder';
require_ok 'Alien::Build::Plugin::Probe::CommandLine';
require_ok 'Alien::Build::Plugin::Probe::Vcpkg';
require_ok 'Alien::Build::Plugin::Test::Mock';
require_ok 'Alien::Build::Temp';
require_ok 'Alien::Build::Util';
require_ok 'Alien::Build::Version::Basic';
require_ok 'Alien::Build::rc';
require_ok 'Alien::Role';
require_ok 'Alien::Util';
require_ok 'Test::Alien';
require_ok 'Test::Alien::Build';
require_ok 'Test::Alien::CanCompile';
require_ok 'Test::Alien::CanPlatypus';
require_ok 'Test::Alien::Diag';
require_ok 'Test::Alien::Run';
require_ok 'Test::Alien::Synthetic';
require_ok 'alienfile';
ok -f 't/alien_base.t',                                       'test for Alien::Base';
ok -f 't/alien_base_pkgconfig.t',                             'test for Alien::Base::PkgConfig';
ok -f 't/alien_base_wrapper.t',                               'test for Alien::Base::Wrapper';
ok -f 't/alien_build.t',                                      'test for Alien::Build';
ok -f 't/alien_build_commandsequence.t',                      'test for Alien::Build::CommandSequence';
ok -f 't/alien_build_interpolate.t',                          'test for Alien::Build::Interpolate';
ok -f 't/alien_build_interpolate_default.t',                  'test for Alien::Build::Interpolate::Default';
ok -f 't/alien_build_log.t',                                  'test for Alien::Build::Log';
ok -f 't/alien_build_log_abbreviate.t',                       'test for Alien::Build::Log::Abbreviate';
ok -f 't/alien_build_log_default.t',                          'test for Alien::Build::Log::Default';
ok -f 't/alien_build_mm.t',                                   'test for Alien::Build::MM';
ok -f 't/alien_build_plugin.t',                               'test for Alien::Build::Plugin';
ok -f 't/alien_build_plugin_build_autoconf.t',                'test for Alien::Build::Plugin::Build::Autoconf';
ok -f 't/alien_build_plugin_build_cmake.t',                   'test for Alien::Build::Plugin::Build::CMake';
ok -f 't/alien_build_plugin_build_copy.t',                    'test for Alien::Build::Plugin::Build::Copy';
ok -f 't/alien_build_plugin_build_msys.t',                    'test for Alien::Build::Plugin::Build::MSYS';
ok -f 't/alien_build_plugin_build_make.t',                    'test for Alien::Build::Plugin::Build::Make';
ok -f 't/alien_build_plugin_build_searchdep.t',               'test for Alien::Build::Plugin::Build::SearchDep';
ok -f 't/alien_build_plugin_core_cleaninstall.t',             'test for Alien::Build::Plugin::Core::CleanInstall';
ok -f 't/alien_build_plugin_core_download.t',                 'test for Alien::Build::Plugin::Core::Download';
ok -f 't/alien_build_plugin_core_ffi.t',                      'test for Alien::Build::Plugin::Core::FFI';
ok -f 't/alien_build_plugin_core_gather.t',                   'test for Alien::Build::Plugin::Core::Gather';
ok -f 't/alien_build_plugin_core_legacy.t',                   'test for Alien::Build::Plugin::Core::Legacy';
ok -f 't/alien_build_plugin_core_override.t',                 'test for Alien::Build::Plugin::Core::Override';
ok -f 't/alien_build_plugin_core_setup.t',                    'test for Alien::Build::Plugin::Core::Setup';
ok -f 't/alien_build_plugin_core_tail.t',                     'test for Alien::Build::Plugin::Core::Tail';
ok -f 't/alien_build_plugin_decode_dirlisting.t',             'test for Alien::Build::Plugin::Decode::DirListing';
ok -f 't/alien_build_plugin_decode_dirlistingftpcopy.t',      'test for Alien::Build::Plugin::Decode::DirListingFtpcopy';
ok -f 't/alien_build_plugin_decode_html.t',                   'test for Alien::Build::Plugin::Decode::HTML';
ok -f 't/alien_build_plugin_decode_mojo.t',                   'test for Alien::Build::Plugin::Decode::Mojo';
ok -f 't/alien_build_plugin_download_negotiate.t',            'test for Alien::Build::Plugin::Download::Negotiate';
ok -f 't/alien_build_plugin_extract_archivetar.t',            'test for Alien::Build::Plugin::Extract::ArchiveTar';
ok -f 't/alien_build_plugin_extract_archivezip.t',            'test for Alien::Build::Plugin::Extract::ArchiveZip';
ok -f 't/alien_build_plugin_extract_commandline.t',           'test for Alien::Build::Plugin::Extract::CommandLine';
ok -f 't/alien_build_plugin_extract_directory.t',             'test for Alien::Build::Plugin::Extract::Directory';
ok -f 't/alien_build_plugin_extract_negotiate.t',             'test for Alien::Build::Plugin::Extract::Negotiate';
ok -f 't/alien_build_plugin_fetch_curlcommand.t',             'test for Alien::Build::Plugin::Fetch::CurlCommand';
ok -f 't/alien_build_plugin_fetch_httptiny.t',                'test for Alien::Build::Plugin::Fetch::HTTPTiny';
ok -f 't/alien_build_plugin_fetch_lwp.t',                     'test for Alien::Build::Plugin::Fetch::LWP';
ok -f 't/alien_build_plugin_fetch_local.t',                   'test for Alien::Build::Plugin::Fetch::Local';
ok -f 't/alien_build_plugin_fetch_localdir.t',                'test for Alien::Build::Plugin::Fetch::LocalDir';
ok -f 't/alien_build_plugin_fetch_netftp.t',                  'test for Alien::Build::Plugin::Fetch::NetFTP';
ok -f 't/alien_build_plugin_fetch_wget.t',                    'test for Alien::Build::Plugin::Fetch::Wget';
ok -f 't/alien_build_plugin_gather_isolatedynamic.t',         'test for Alien::Build::Plugin::Gather::IsolateDynamic';
ok -f 't/alien_build_plugin_pkgconfig_commandline.t',         'test for Alien::Build::Plugin::PkgConfig::CommandLine';
ok -f 't/alien_build_plugin_pkgconfig_libpkgconf.t',          'test for Alien::Build::Plugin::PkgConfig::LibPkgConf';
ok -f 't/alien_build_plugin_pkgconfig_makestatic.t',          'test for Alien::Build::Plugin::PkgConfig::MakeStatic';
ok -f 't/alien_build_plugin_pkgconfig_negotiate.t',           'test for Alien::Build::Plugin::PkgConfig::Negotiate';
ok -f 't/alien_build_plugin_pkgconfig_pp.t',                  'test for Alien::Build::Plugin::PkgConfig::PP';
ok -f 't/alien_build_plugin_prefer_badversion.t',             'test for Alien::Build::Plugin::Prefer::BadVersion';
ok -f 't/alien_build_plugin_prefer_goodversion.t',            'test for Alien::Build::Plugin::Prefer::GoodVersion';
ok -f 't/alien_build_plugin_prefer_sortversions.t',           'test for Alien::Build::Plugin::Prefer::SortVersions';
ok -f 't/alien_build_plugin_probe_cbuilder.t',                'test for Alien::Build::Plugin::Probe::CBuilder';
ok -f 't/alien_build_plugin_probe_commandline.t',             'test for Alien::Build::Plugin::Probe::CommandLine';
ok -f 't/alien_build_plugin_probe_vcpkg.t',                   'test for Alien::Build::Plugin::Probe::Vcpkg';
ok -f 't/alien_build_plugin_test_mock.t',                     'test for Alien::Build::Plugin::Test::Mock';
ok -f 't/alien_build_temp.t',                                 'test for Alien::Build::Temp';
ok -f 't/alien_build_util.t',                                 'test for Alien::Build::Util';
ok -f 't/alien_build_version_basic.t',                        'test for Alien::Build::Version::Basic';
ok -f 't/alien_build_rc.t',                                   'test for Alien::Build::rc';
ok -f 't/alien_role.t',                                       'test for Alien::Role';
ok -f 't/alien_util.t',                                       'test for Alien::Util';
ok -f 't/test_alien.t',                                       'test for Test::Alien';
ok -f 't/test_alien_build.t',                                 'test for Test::Alien::Build';
ok -f 't/test_alien_cancompile.t',                            'test for Test::Alien::CanCompile';
ok -f 't/test_alien_canplatypus.t',                           'test for Test::Alien::CanPlatypus';
ok -f 't/test_alien_diag.t',                                  'test for Test::Alien::Diag';
ok -f 't/test_alien_run.t',                                   'test for Test::Alien::Run';
ok -f 't/test_alien_synthetic.t',                             'test for Test::Alien::Synthetic';
ok -f 't/alienfile.t',                                        'test for alienfile';
done_testing;

sub require_ok ($)
{
  # special case of when I really do want require_ok.
  # I just want a test that checks that the modules
  # will compile okay.  I won't be trying to use them.
  my($mod) = @_;
  my $ctx = context();
  {
    my $pm = "$mod.pm";
    $pm =~ s/::/\//g;
    eval { require $pm };
  }
  my $error = $@;
  my $ok = !$error;
  $ctx->ok($ok, "require $mod");
  $ctx->diag("error: $error") if $error ne '';
  $ctx->release;
}
