use strict; use Setup; my %ctx = test_init(); require Hydra::Schema; require Hydra::Model::DB; use Test2::V0; my $db = Hydra::Model::DB->new; hydra_setup($db); # Test build products my $jobset = createBaseJobset("build-products", "build-products.nix", $ctx{jobsdir}); ok(evalSucceeds($jobset), "Evaluating jobs/build-products.nix should exit with return code 0"); is(nrQueuedBuildsForJobset($jobset), 2, "Evaluating jobs/build-products.nix should result in 2 builds"); for my $build (queuedBuildsForJobset($jobset)) { subtest "For the build job '" . $build->job . "'" => sub { ok(runBuild($build), "Build should exit with return code 0"); my $newbuild = $db->resultset('Builds')->find($build->id); 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 $buildproduct = $buildproducts->next; if($build->job eq "simple") { is($buildproduct->name, "text.txt", "We should have \"text.txt\""); } elsif ($build->job eq "with_spaces") { is($buildproduct->name, "some text.txt", "We should have: \"some text.txt\""); } }; } done_testing;