Add an explanation to compile errors
[gruntmaster-daemon.git] / lib / Gruntmaster / Daemon / Format.pm
index 529931fbf8d88827ca8dc25abd0a746583ec29e9..2b60139327f827366b965b48a4854dc29021518a 100644 (file)
@@ -65,19 +65,6 @@ sub execlist {
        die [$excode, $exmsg] if $excode > 0; ## no critic (RequireCarping)
 }
 
-sub command_and_args{
-       my ($format, $basename) = @_;
-
-       given($format) {
-               "./$basename" when [qw/C CPP GCCGO GOLANG HASKELL PASCAL/];
-               "./$basename.exe" when 'MONO';
-               java => $basename when 'JAVA';
-               perl => $basename when 'PERL';
-               python => $basename when 'PYTHON';
-               default { die "Don't know how to execute format $format\n" }
-       }
-}
-
 sub mkrun{
        my $format = shift;
        sub{
@@ -86,6 +73,7 @@ sub mkrun{
                get_logger->trace("Running $name...");
                my $basename = fileparse $name, qr/[.][^.]*/s;
                my @args = ('--nobody');
+               push @args, '--no-close' if $ENV{TEST_VERBOSE};
                push @args, '--timeout', $args{timeout} if $args{timeout};
                push @args, '--mlimit',  $args{mlimit}  if $args{mlimit};
                push @args, '--olimit',  $args{olimit}  if $args{olimit};
@@ -94,7 +82,7 @@ sub mkrun{
                while (my ($fd, $file) = $it->()) {
                        push @args, "--fd=$fd $file";
                }
-               execlist $basename, @args, command_and_args($format, $basename);
+               execlist $basename, @args, '--', "./$basename", @{$args{args}}
        }
 }
 
@@ -105,10 +93,11 @@ sub prepare{
        try {
                execlist prog => '--fd=1 >>errors', '--fd=2 >>errors', 'gruntmaster-compile', $format, $name;
        } catch {
-               die "Compile error\n"
+               my $exmsg = $_->[1];
+               die "Compile error ($exmsg)\n"
        } finally {
                $Gruntmaster::Daemon::errors .= read_file 'errors';
-               $Gruntmaster::Daemon::errors .= "\n";
+               $Gruntmaster::Daemon::errors .= "\n" if -s 'errors';
                unlink 'errors';
        };
 }
This page took 0.01028 seconds and 4 git commands to generate.