From 2d93fc86662a3783cf92c6044d006995a98e78ac Mon Sep 17 00:00:00 2001 From: hitode909 Date: Fri, 19 Jul 2019 20:32:51 +0900 Subject: [PATCH 1/2] add test data --- t/data/with_build_pl/Build.PL | 1 + t/data/with_cpanfile/cpanfile | 1 + t/data/with_makefile_pl/Makefile.PL | 1 + 3 files changed, 3 insertions(+) create mode 100644 t/data/with_build_pl/Build.PL create mode 100644 t/data/with_cpanfile/cpanfile create mode 100644 t/data/with_makefile_pl/Makefile.PL diff --git a/t/data/with_build_pl/Build.PL b/t/data/with_build_pl/Build.PL new file mode 100644 index 0000000..9074bbc --- /dev/null +++ b/t/data/with_build_pl/Build.PL @@ -0,0 +1 @@ +print "Hello, World!\n"; diff --git a/t/data/with_cpanfile/cpanfile b/t/data/with_cpanfile/cpanfile new file mode 100644 index 0000000..bb3ca9c --- /dev/null +++ b/t/data/with_cpanfile/cpanfile @@ -0,0 +1 @@ +requires 'perl', '5.010001'; \ No newline at end of file diff --git a/t/data/with_makefile_pl/Makefile.PL b/t/data/with_makefile_pl/Makefile.PL new file mode 100644 index 0000000..9074bbc --- /dev/null +++ b/t/data/with_makefile_pl/Makefile.PL @@ -0,0 +1 @@ +print "Hello, World!\n"; From f1e85e713e6a33fd2c346a4864cde6e9c23818b8 Mon Sep 17 00:00:00 2001 From: hitode909 Date: Fri, 19 Jul 2019 20:33:32 +0900 Subject: [PATCH 2/2] Check existence of cpanfile, Makefile.PL, Build.PL to detect root directory --- lib/App/PRT/Collector/AllFiles.pm | 6 ++++-- t/App-PRT-Collector-AllFiles.t | 14 ++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/App/PRT/Collector/AllFiles.pm b/lib/App/PRT/Collector/AllFiles.pm index 657df7e..3d4d035 100644 --- a/lib/App/PRT/Collector/AllFiles.pm +++ b/lib/App/PRT/Collector/AllFiles.pm @@ -17,8 +17,10 @@ sub find_project_root_directory { my $current = dir($directory); while (1) { - if (-e $current->file('cpanfile')) { - return $current->stringify; + for my $file (qw(cpanfile Makefile.PL Build.PL)) { + if (-e $current->file($file)) { + return $current->stringify; + } } if ($current eq $current->parent) { diff --git a/t/App-PRT-Collector-AllFiles.t b/t/App-PRT-Collector-AllFiles.t index d494a72..1484f8b 100644 --- a/t/App-PRT-Collector-AllFiles.t +++ b/t/App-PRT-Collector-AllFiles.t @@ -20,10 +20,16 @@ sub find_project_root_directory: Tests { }; subtest 'directory with cpanfile' => sub { - my $directory = t::test::prepare_test_code('contain_ignores'); - - is App::PRT::Collector::AllFiles->find_project_root_directory($directory), $directory, 'found from root directory'; - is App::PRT::Collector::AllFiles->find_project_root_directory("$directory/lib"), $directory, 'found from sub directory'; + for my $name (qw(with_cpanfile with_build_pl with_makefile_pl contain_ignores)) { + subtest $name => sub { + my $directory = t::test::prepare_test_code($name); + + is App::PRT::Collector::AllFiles->find_project_root_directory($directory), $directory, 'found from root directory'; + if (-e "$directory/lib") { + is App::PRT::Collector::AllFiles->find_project_root_directory("$directory/lib"), $directory, 'found from sub directory'; + } + }; + }; }; subtest 'not existing directory' => sub {