X-Git-Url: http://git.ieval.ro/?p=gruntmaster-daemon.git;a=blobdiff_plain;f=t%2F01-jobs.t;h=16a88247a67010d64ba9c56e9dcf6cff9cc6c13d;hp=23a6c35b1280b6b6035490e2aefde735b047f31a;hb=7be5f05486dc972422c0243f7e0affe7c0dad523;hpb=513eadc35a570c8e971f3cc2c2eaede340f4895d diff --git a/t/01-jobs.t b/t/01-jobs.t index 23a6c35..16a8824 100644 --- a/t/01-jobs.t +++ b/t/01-jobs.t @@ -11,6 +11,7 @@ use Cwd qw/cwd/; use File::Basename qw/fileparse/; use File::Slurp qw/read_file/; use File::Temp qw/tempdir/; +use Hash::Merge qw/merge/; use List::Util qw/sum/; use Log::Log4perl; use Test::More; @@ -31,12 +32,7 @@ Log::Log4perl->init(\$log_conf); $ENV{PATH}.=':' . cwd; sub check_job{ - my $job = shift; - my $jobh = get_job $job; - my $meta = job_inmeta $job; - $meta->{result} = $jobh->{result}; - $meta->{result_text} = $jobh->{result_text}; - $meta->{results} = $jobh->{results}; + my $meta = shift; if (defined $meta->{results}) { delete $meta->{results}[$_]{time} for keys $meta->{results}; } @@ -54,32 +50,29 @@ my $tempdir = tempdir CLEANUP => 1; my $job = 0; for my $problem (@problems) { - my $meta = LoadFile "$problem/meta.yml"; - for (1 .. $meta->{testcnt}) { - $meta->{infile}[$_ - 1] = read_file "$problem/$_.in" if $meta->{generator} eq 'File'; - $meta->{okfile}[$_ - 1] = read_file "$problem/$_.ok" if $meta->{runner} eq 'File'; + my $pbmeta = LoadFile "$problem/meta.yml"; + for (1 .. $pbmeta->{testcnt}) { + $pbmeta->{infile}[$_ - 1] = read_file "$problem/$_.in" if $pbmeta->{generator} eq 'File'; + $pbmeta->{okfile}[$_ - 1] = read_file "$problem/$_.ok" if $pbmeta->{runner} eq 'File'; } - if (exists $meta->{files}) { - $_->{content} = read_file "$problem/$_->{name}" for values $meta->{files} + if (exists $pbmeta->{files}) { + $_->{content} = read_file "$problem/$_->{name}" for values $pbmeta->{files} } - set_problem_meta scalar fileparse($problem), $meta; TODO: { - local $TODO = $meta->{todo} if exists $meta->{todo}; - note "Now testing problem $meta->{name} ($meta->{description})"; + local $TODO = $pbmeta->{todo} if exists $pbmeta->{todo}; + note "Now testing problem $pbmeta->{name} ($pbmeta->{description})"; for my $source (<$problem/tests/*>) { my $meta = LoadFile "$source/meta.yml"; $meta->{files}{prog}{content} = read_file "$source/$meta->{files}{prog}{name}"; - $job++; - set_job_inmeta $job, $meta; - set_job_problem $job, scalar fileparse $problem; + $meta = merge $meta, $pbmeta; note "Running $meta->{test_name} ($meta->{test_description})..."; my $savedcwd = cwd; chdir $tempdir; - Gruntmaster::Daemon::process $job; - check_job $job; + Gruntmaster::Daemon::process $meta; chdir $savedcwd; + check_job $meta; } } }