X-Git-Url: http://git.ieval.ro/?p=gruntmaster-daemon.git;a=blobdiff_plain;f=t%2F01-jobs.t;h=c37e081b368c74df76c63049f9ca2e7196cc2d05;hp=f44a1e893c631878f0578d865d5de3a2aa4de96f;hb=HEAD;hpb=ee638edb8ce97aeb5b6e76921cf63a0cc995f786 diff --git a/t/01-jobs.t b/t/01-jobs.t index f44a1e8..c37e081 100644 --- a/t/01-jobs.t +++ b/t/01-jobs.t @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w use v5.14; use strict; use warnings; @@ -10,6 +9,7 @@ use File::Basename qw/fileparse/; use File::Slurp qw/read_file/; use File::Temp qw/tempdir/; use File::Which qw/which/; +use FindBin; use Hash::Merge qw/merge/; use List::Util qw/sum/; use Log::Log4perl; @@ -19,16 +19,29 @@ use YAML::Tiny qw/LoadFile/; ################################################## use constant COMPILER => { - qw/C gcc + qw/BRAINFUCK bfc + C gcc CPP g++ + D dmd + GOLFSCRIPT golfscript MONO gmcs JAVA javac + JAVASCRIPT node + JULIA julia PASCAL fpc GOLANG go GCCGO gccgo HASKELL ghc PERL perl - PYTHON python/}; + PHP php + PYTHON python2.7 + RUBY ruby + RUST rustc + OBERON obc + OCAML ocaml + SBCL sbcl/}; + +my %needs_fork = map { $_ => 1 } qw/GOLANG GOLFSCRIPT GCCGO JAVA JAVASCRIPT JULIA RUBY SBCL/; my $loglevel = $ENV{TEST_LOG_LEVEL} // ($ENV{TEST_VERBOSE} ? 'TRACE' : 'OFF'); my $log_conf = <init(\$log_conf); $ENV{PATH} = getcwd . ':' . $ENV{PATH}; +$ENV{PATH} = "$FindBin::Bin/../blib/script:" . $ENV{PATH}; umask 0022; sub check_job{ @@ -85,7 +99,7 @@ for my $problem (@problems) { my $format = $meta->{files}{prog}{format}; my $compiler = COMPILER->{$format}; skip "$compiler not found in path", 3 unless $ENV{GRUNTMASTER_VM} || which $compiler; - skip "$format requires multiple processes. Set GRUNTMASTER_KILL_USER and GRUNTMASTER_SUDO to allow multiple processes.", 3 if !$ENV{GRUNTMASTER_KILL_USER} && $format eq 'JAVA' || $format eq 'GOLANG' || $format eq 'GCCGO'; + skip "$format requires multiple processes. Set GRUNTMASTER_KILL_USER and GRUNTMASTER_SUDO to allow multiple processes.", 3 if !$ENV{GRUNTMASTER_KILL_USER} && $needs_fork{$format}; $meta->{files}{prog}{content} = read_file "$source/$meta->{files}{prog}{name}"; } $meta = merge $meta, $pbmeta;