#!/usr/bin/perl use strict; BEGIN { $| = 1; $^W = 1; } use Test::More; use t::lib::Test; use YAML::Tiny; plan tests => 20 * 2; foreach my $command ('', "build_subdirs 'bar';") { SCOPE: { ok( create_dist('Foo', { 'Makefile.PL' => <<"END_DSL" }), 'create_dist Foo'); use inc::Module::Install; name 'Foo'; perl_version '5.005'; all_from 'lib/Foo.pm'; $command WriteAll; END_DSL ok( mkdir(dir('bar'), 0777), 'created bar directory'); ok( mkdir(dir('bar/lib'), 0777), 'created bar/lib directory'); ok( mkdir(dir('bar/t'), 0777), 'created bar/t directory'); ok( add_file('bar/MANIFEST', <<'END_MANIFEST'), 'created MANIFEST'); MANIFEST Makefile.PL lib/Bar.pm t/load.t END_MANIFEST ok( add_file('bar/Makefile.PL', <<'END_DSL'), 'created Makefile.PL'); use inc::Module::Install; name 'Bar'; abstract 'bar'; author 'foobar'; perl_version '5.005'; version_from 'lib/Bar.pm'; WriteAll; END_DSL ok( add_file('bar/lib/Bar.pm', <<'END_PERL'), 'created Bar.pm'); package Bar; $VERSION = '0.01'; 1; END_PERL ok( add_file('bar/t/load.t', <<'END_T'), 'created load.t'); use Test::More tests => 1; use_ok('Bar'); END_T ok( supports_capture() ? capture_build_dist() : build_dist(), 'build_dist' ); my $makefile_foo = makefile(); ok( -f $makefile_foo, 'has Makefile for Foo' ); my $content_foo = _read($makefile_foo); ok( $content_foo =~ /DISTNAME\s*=>\s*q\[Foo\]/, 'content is correct'); my $meta_yml_foo = file('META.yml'); ok( -f $meta_yml_foo, 'has META.yml for Foo'); my $meta_foo = YAML::Tiny::LoadFile($meta_yml_foo); ok( $meta_foo->{name} eq 'Foo', 'META.yml is correct' ); ok( $meta_foo->{version} eq '3.21', 'META.yml is correct' ); my $makefile_bar = file('bar/Makefile'); ok( -f $makefile_bar, 'has Makefile for Bar' ); my $content_bar = _read($makefile_bar); ok( $content_bar =~ /DISTNAME\s*=>\s*q\[Bar\]/, 'content is correct'); my $meta_yml_bar = file('bar/META.yml'); ok( -f $meta_yml_bar, 'has META.yml for Bar'); my $meta_bar = YAML::Tiny::LoadFile($meta_yml_bar); ok( $meta_bar->{name} eq 'Bar', 'META.yml is correct' ); ok( $meta_bar->{version} eq '0.01', 'META.yml is correct' ); ok( kill_dist(), 'kill_dist' ); } }