Skip to content

Commit

Permalink
[backend] Introduce tests for workers code
Browse files Browse the repository at this point in the history
Test the `bs_worker` code with `require_ok`.

Add the following tests for the `getsources` subroutine:
- Return result.
- Add 'materials' key to $buildinfo variable (used in the SLSA
  provenance generation).
  • Loading branch information
eduardoj committed Apr 6, 2022
1 parent a0fe5f3 commit 91fce6f
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/backend/bs_worker
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ my $exitrestart;
my $exitrestart_timeout = 300; # wait max 5 minuntes

exit(0) if @ARGV == 1 && $ARGV[0] eq '--selftest';
return 1 if @ARGV == 1 && $ARGV[0] eq '--testcase';

while (@ARGV) {
usage(0) if $ARGV[0] eq '--help';
Expand Down
57 changes: 57 additions & 0 deletions src/backend/t/1000-bs_worker.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env perl

use strict;
use warnings;

use Test::More tests => 3;


use FindBin;
use lib "$FindBin::Bin/lib/";

use BSUtil;
use Test::Mock::BSConfig;
use Test::Mock::BSRPC;


@::ARGV = ('--testcase');
require_ok('./bs_worker');

$BSConfig::bsdir = $FindBin::Bin;
my $tmpdir = "$FindBin::Bin/tmp/1000";
mkdir($tmpdir);

my $buildinfo = {
srcserver => $BSConfig::srcserver,
project => 'project1',
package => 'package1',
srcmd5 => 'f157738ddea737a2b7479996175a6cec',
verifymd5 => 'f157738ddea737a2b7479996175a6cec',
};

$Test::Mock::BSRPC::fixtures_map = {
"srcserver/getsources?project=project1&package=package1&srcmd5=$buildinfo->{srcmd5}"
=> 'data/1000/srcserver/getsources',
};

my (@got, @expected);


# getsources

@got = getsources($buildinfo, $tmpdir);
@expected = ('f157738ddea737a2b7479996175a6cec package1');
is_deeply(\@got, \@expected, 'getsources - Return value');

my $expected = [
{
'digest' => {
'sha256' => 'e237d5c5ea2b4dd327d2e103afd09572286609fbc9bf43cc9609f1371b4c8dd2'
},
'uri' => 'srcserver/source/project1/package1/hello_world.spec?rev=f157738ddea737a2b7479996175a6cec'
}
];
is_deeply($buildinfo->{'materials'}, $expected, "getsources - Add 'materials' key to \$buildinfo");

BSUtil::cleandir($tmpdir);
rmdir($tmpdir);
Binary file added src/backend/t/data/1000/srcserver/getsources
Binary file not shown.
2 changes: 1 addition & 1 deletion src/backend/t/lib/Test/Mock/BSRPC.pm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ BEGIN {

my $receiver = $param->{'receiver'};
if ($receiver) {
$ret = $receiver->(BSHTTP::str2req($ret), $param, $xmlargs || $param->{'receiverarg'}) if $receiver;
$ret = $receiver->(BSHTTP::str2req($ret), $param, $xmlargs || $param->{'receiverarg'});
} elsif ($xmlargs) {
$ret = BSUtil::fromxml($ret, $xmlargs);
}
Expand Down

0 comments on commit 91fce6f

Please sign in to comment.