Tests: build-products: use is for good errors on failures

This commit is contained in:
Graham Christensen 2021-02-23 14:44:23 -05:00
parent 0df9c68422
commit 371826f931
No known key found for this signature in database
GPG key ID: FE918C3A98C1030F

View file

@ -18,21 +18,26 @@ hydra_setup($db);
my $jobset = createBaseJobset("build-products", "build-products.nix"); my $jobset = createBaseJobset("build-products", "build-products.nix");
ok(evalSucceeds($jobset), "Evaluating jobs/build-products.nix should exit with return code 0"); ok(evalSucceeds($jobset), "Evaluating jobs/build-products.nix should exit with return code 0");
ok(nrQueuedBuildsForJobset($jobset) == 2 , "Evaluating jobs/build-products.nix should result in 2 builds"); is(nrQueuedBuildsForJobset($jobset), 2, "Evaluating jobs/build-products.nix should result in 2 builds");
for my $build (queuedBuildsForJobset($jobset)) { for my $build (queuedBuildsForJobset($jobset)) {
ok(runBuild($build), "Build '".$build->job."' from jobs/build-products.nix should exit with code 0"); subtest "For the build job '" . $build->job . "'" => sub {
ok(runBuild($build), "Build should exit with code 0");
my $newbuild = $db->resultset('Builds')->find($build->id); my $newbuild = $db->resultset('Builds')->find($build->id);
ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job."' from jobs/build-products.nix should have buildstatus 0");
is($newbuild->finished, 1, "Build should have finished");
is($newbuild->buildstatus, 0, "Build should have buildstatus 0");
my $buildproducts = $db->resultset('BuildProducts')->search({ build => $build->id }); my $buildproducts = $db->resultset('BuildProducts')->search({ build => $build->id });
my $buildproduct = $buildproducts->next; my $buildproduct = $buildproducts->next;
if($build->job eq "simple") { if($build->job eq "simple") {
ok($buildproduct->name eq "text.txt", "We should have text.txt, but found: ".$buildproduct->name."\n"); is($buildproduct->name, "text.txt", "We should have \"text.txt\"");
} elsif ($build->job eq "with_spaces") { } elsif ($build->job eq "with_spaces") {
ok($buildproduct->name eq "some text.txt", "We should have: \"some text.txt\", but found: ".$buildproduct->name."\n"); is($buildproduct->name, "some text.txt", "We should have: \"some text.txt\"");
} }
};
} }
done_testing; done_testing;