@@ -5,7 +5,7 @@ use lib 't/lib';
55use MBTest;
66use DistGen;
77
8- plan tests => 19 ;
8+ plan tests => 27 ;
99
1010# Ensure any Module::Build modules are loaded from correct directory
1111blib_load(' Module::Build' );
@@ -24,7 +24,7 @@ ok( ! exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
2424);
2525
2626# --------------------------------------------------------------------------#
27- # try with c_source
27+ # try with c_source as a string
2828# --------------------------------------------------------------------------#
2929$dist -> change_build_pl({
3030 module_name => $dist -> name,
@@ -34,7 +34,7 @@ $dist->change_build_pl({
3434$dist -> regen;
3535stderr_of(sub {
3636 ok( $mb = $dist -> new_from_context,
37- " Build.PL with c_source"
37+ " Build.PL with string c_source"
3838 );
3939});
4040is( $mb -> c_source, ' src' , " c_source is set" );
@@ -43,6 +43,46 @@ ok( exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
4343 " ExtUtils::CBuilder was added to build_requires"
4444);
4545
46+ # --------------------------------------------------------------------------#
47+ # try with c_source as an array
48+ # --------------------------------------------------------------------------#
49+ $dist -> change_build_pl({
50+ module_name => $dist -> name,
51+ license => ' perl' ,
52+ c_source => [' src' ],
53+ });
54+ $dist -> regen;
55+ stderr_of(sub {
56+ ok( $mb = $dist -> new_from_context,
57+ " Build.PL with non-empty array c_source"
58+ );
59+ });
60+ is_deeply( $mb -> c_source, [' src' ], " c_source is set" );
61+ ok( $mb -> needs_compiler, " needs_compiler is true" );
62+ ok( exists $mb -> {properties }{build_requires }{' ExtUtils::CBuilder' },
63+ " ExtUtils::CBuilder was added to build_requires"
64+ );
65+
66+ # --------------------------------------------------------------------------#
67+ # try with c_source as an empty array
68+ # --------------------------------------------------------------------------#
69+ $dist -> change_build_pl({
70+ module_name => $dist -> name,
71+ license => ' perl' ,
72+ c_source => [],
73+ });
74+ $dist -> regen;
75+ stderr_of(sub {
76+ ok( $mb = $dist -> new_from_context,
77+ " Build.PL with empty array c_source"
78+ );
79+ });
80+ is_deeply( $mb -> c_source, [], " c_source is set" );
81+ ok( ! $mb -> needs_compiler, " needs_compiler is false" );
82+ ok( ! exists $mb -> {properties }{build_requires }{' ExtUtils::CBuilder' },
83+ " ExtUtils::CBuilder is not in build_requires"
84+ );
85+
4686# --------------------------------------------------------------------------#
4787# try with xs files
4888# --------------------------------------------------------------------------#
0 commit comments