1 | diff --git a/config/init/hints/darwin.pm b/config/init/hints/darwin.pm |
---|
2 | index 82820fd..ea9fbfd 100644 |
---|
3 | --- a/config/init/hints/darwin.pm |
---|
4 | +++ b/config/init/hints/darwin.pm |
---|
5 | @@ -91,9 +91,11 @@ sub runstep { |
---|
6 | libparrot_shared_alias => "libparrot$share_ext", |
---|
7 | rpath => "-L", |
---|
8 | libparrot_soname => "-install_name " |
---|
9 | - . '"'. $lib_dir |
---|
10 | + . '"' |
---|
11 | + . $conf->data->get('libdir') |
---|
12 | . '/libparrot' |
---|
13 | - . $conf->data->get('share_ext') . '"' |
---|
14 | + . $conf->data->get('share_ext') |
---|
15 | + . '"' |
---|
16 | ); |
---|
17 | } |
---|
18 | |
---|
19 | diff --git a/t/tools/mk_language_shell.t b/t/tools/mk_language_shell.t |
---|
20 | index 91b025c..f556934 100644 |
---|
21 | --- a/t/tools/mk_language_shell.t |
---|
22 | +++ b/t/tools/mk_language_shell.t |
---|
23 | @@ -20,6 +20,7 @@ use warnings; |
---|
24 | use lib qw(lib); |
---|
25 | |
---|
26 | use Test::More; |
---|
27 | +use Carp; |
---|
28 | use IO::File (); |
---|
29 | use Parrot::Config; |
---|
30 | use Parrot::Test; |
---|
31 | @@ -47,22 +48,35 @@ my $lang_dir = "test_parrot_language_$$"; |
---|
32 | my $test_dir = catfile($lang_dir, "t"); |
---|
33 | my $src_dir = catfile($lang_dir, "src"); |
---|
34 | my $setup = catfile($lang_dir, "setup.pir"); |
---|
35 | -my $parrot_exe = catfile($PConfig{build_dir}, $PConfig{test_prog}); |
---|
36 | +my $installed_parrot = catfile($PConfig{bindir}, $PConfig{test_prog}); |
---|
37 | +my $build_parrot = catfile($PConfig{build_dir}, $PConfig{test_prog}); |
---|
38 | +my $parrot_exe = (-e $installed_parrot) |
---|
39 | + ? $installed_parrot |
---|
40 | + : $build_parrot; |
---|
41 | my $to_dev_null = $^O =~ /Win/ ? "1> NUL 2>&1" : ">/dev/null 2>&1"; |
---|
42 | ok(-e $lang_dir, "$lang_dir dir exists"); |
---|
43 | ok(-e $test_dir, "$test_dir dir exists"); |
---|
44 | ok(-e $src_dir, "$src_dir dir exists"); |
---|
45 | ok(-s $setup, "$setup exists and has nonzero size"); |
---|
46 | |
---|
47 | -my $build_status = system("cd $lang_dir && \"$parrot_exe\" setup.pir $to_dev_null"); |
---|
48 | -my $build_error = $!; |
---|
49 | -diag("Faild to execute $parrot_exe setup.pir : $build_error") if $build_status == - 1; |
---|
50 | -ok($build_status == 0, "language builds, exit code = " . ($build_status >> 8) ); |
---|
51 | - |
---|
52 | -my $test_status = system("cd $lang_dir && \"$parrot_exe\" setup.pir test $to_dev_null"); |
---|
53 | -my $test_error = $!; |
---|
54 | -diag("Faild to execute $parrot_exe setup.pir test: $test_error") if $test_status == - 1; |
---|
55 | -ok($test_status == 0, "language passes all tests, exit code = " . ($test_status >> 8) ); |
---|
56 | +SKIP: { |
---|
57 | + my $reason = "tools/dev/mk_language_shell.pl requires installed parrot on Darwin"; |
---|
58 | + skip $reason, 2 if ( |
---|
59 | + ($PConfig{osname} eq 'darwin') and |
---|
60 | + ($parrot_exe eq $build_parrot) |
---|
61 | + ); |
---|
62 | + my $build_status = |
---|
63 | + system("cd $lang_dir && \"$parrot_exe\" setup.pir $to_dev_null") |
---|
64 | + and croak "Unable to execute setup.pir"; |
---|
65 | + is($build_status, 0, |
---|
66 | + "system call to execute setup.pir completed successfully"); |
---|
67 | + |
---|
68 | + my $test_status = |
---|
69 | + system("cd $lang_dir && \"$parrot_exe\" setup.pir test $to_dev_null") |
---|
70 | + and croak "Unable to execute setup.pir test"; |
---|
71 | + is($test_status, 0, |
---|
72 | + "system call to execute setup.pir test completed successfully"); |
---|
73 | +} |
---|
74 | |
---|
75 | =head1 HELPER SUBROUTINES |
---|
76 | |
---|