]>
iEval git - gruntmaster-daemon.git/blob - t/02-send-results-request.t
6 use Gruntmaster
::Daemon qw
/process/;
9 use File
::Slurp qw
/read_file/;
10 use File
::Temp qw
/tempdir/;
12 use Hash
::Merge qw
/merge/;
13 use JSON qw
/encode_json decode_json/;
15 use Test
::HTTP
::LocalServer
;
16 use Test
::More tests
=> 3;
17 use YAML
::Tiny qw
/LoadFile/;
19 my $server = Test
::HTTP
::LocalServer
->spawn;
20 my $response = HTTP
::Tiny
->new->get( $server->url );
21 $ENV{REMOTE_ADDRESS
} = $server->url;
23 my $loglevel = $ENV{TEST_LOG_LEVEL
} // ($ENV{TEST_VERBOSE
} ?
'TRACE' : 'OFF');
24 my $log_conf = <<CONF;
25 log4perl.category.Gruntmaster.Daemon = $loglevel, stderr
27 log4perl.appender.stderr = Log::Log4perl::Appender::Screen
28 log4perl.appender.stderr.layout = Log::Log4perl::Layout::PatternLayout
29 log4perl.appender.stderr.layout.ConversionPattern = [\%d] [\%F{1}:\%M{1}:\%L] [\%p] \%m\%n
31 Log
::Log4perl
->init(\
$log_conf);
33 $ENV{PATH
} = getcwd
. ':' . $ENV{PATH
};
34 my $tempdir = tempdir
"gruntmasterd-testingXXXX", TMPDIR
=> 1, CLEANUP
=> 1;
38 my $pbmeta = LoadFile
"t/problems/aplusb/meta.yml";
39 for (1 .. $pbmeta->{testcnt
}) {
40 $pbmeta->{infile
}[$_ - 1] = read_file
"t/problems/aplusb/$_.in"
41 if $pbmeta->{generator
} eq 'File';
42 $pbmeta->{okfile
}[$_ - 1] = read_file
"t/problems/aplusb/$_.ok"
43 if $pbmeta->{runner
} && $pbmeta->{runner
} eq 'File';
45 my $source = <t
/problems/aplusb
/tests/40>;
46 my $meta = LoadFile
"$source/meta.yml";
47 $meta->{files
}{prog
}{content
} = read_file
"$source/$meta->{files}{prog}{name}";
48 $meta = merge
$meta, $pbmeta;
49 my $savedcwd = getcwd
;
52 Gruntmaster
::Daemon
::process
($meta);
59 my $requests = $server->get_log;
60 is
$requests =~ qr/"result_text":"40 points"/, 1;
61 is
$requests =~ qr/"result":10/, 1;
62 is
$requests =~ qr/"gm_id":1/, 1;
This page took 0.054709 seconds and 4 git commands to generate.