build-products: switch to makeAndEvaluateJobset
[?]
Dec 15, 2021, 1:32 AM
Z7FCNNSAIXZZLXY54FF2VPHZE2O3YWD5YWV32KBWSTK43TQGGKIQCDependencies
- [2]
YIZWKGFItests: add jobsdir and testdir to ctx hash - [3]
2AM7IAS5Tighten up 'should exit with return code' - [4]
HX4QYOYAadd first evaluations tests - [5]
RBZRCTALhydra: fixed and re-enabled evaluation tests - [6]
5SMQ2PLKFix tests - [7]
FAIJDQKZ - [8]
S5NPXZG3Fix indentation - [9]
NZXX6PLDRemove the Jobs table - [10]
3G475GRTSplit out dependent tests in to its own .t - [11]
ZTYKNDOLMove tests for SCM inputs in to its own .t - [12]
7I2U2MHUperlcritic: use strict, use warnings - [13]
PY5GVGC7Implemented quoted strings support in hydra-build-products to allow file names with spaces + testcase - [14]
4OLBA6TUTests: build-products: use `is` for good errors on failures - [15]
OWRS526HCreate an ephemeral PostgreSQL database per test - [16]
ABB3BIS2Add eval test for specific git revision - [17]
4QI6G7YBtests: replace the flat list of contexts with a hash - [18]
HE3GX5IPOptimize fetch-git. - [19]
WFJ3ZPRMadd tests for scm inputs - [20]
CQI443CGRelocate the final evalutation tests to a build-products specific test. - [21]
SBKX3YH2cleanup - [22]
3RL7VFKEAdd tests for "git describe --long". - [23]
L7RW467ZAdd a test for darcs inputs. - [24]
UIA3ULNUGive each test its own Nix directories
Change contents
- edit in t/build-products.t at line 4[4.945]→[4.945:946](∅→∅),[4.946]→[4.0:23](∅→∅),[4.23]→[4.474:524](∅→∅),[4.1237]→[4.474:524](∅→∅),[4.474]→[4.474:524](∅→∅),[4.230]→[4.968:969](∅→∅),[4.524]→[4.968:969](∅→∅),[4.968]→[4.968:969](∅→∅)
my %ctx = test_init();require Hydra::Schema;require Hydra::Model::DB; - edit in t/build-products.t at line 5[4.29]→[4.998:999](∅→∅),[4.30]→[4.998:999](∅→∅),[4.55]→[4.998:999](∅→∅),[4.195]→[4.998:999](∅→∅),[4.210]→[4.998:999](∅→∅),[4.211]→[4.998:999](∅→∅),[4.328]→[4.998:999](∅→∅),[4.377]→[4.998:999](∅→∅),[4.856]→[4.998:999](∅→∅),[4.1268]→[4.998:999](∅→∅),[4.1516]→[4.998:999](∅→∅),[4.1746]→[4.998:999](∅→∅),[4.4651]→[4.998:999](∅→∅),[4.998]→[4.998:999](∅→∅),[4.999]→[4.525:557](∅→∅),[4.557]→[4.999:1017](∅→∅),[4.999]→[4.999:1017](∅→∅)
my $db = Hydra::Model::DB->new;hydra_setup($db); - edit in t/build-products.t at line 6
my $ctx = test_context(); - replacement in t/build-products.t at line 10
my $jobset = createBaseJobset("build-products", "build-products.nix", $ctx{jobsdir});my $builds = $ctx->makeAndEvaluateJobset(expression => "build-products.nix",build => 1); - replacement in t/build-products.t at line 15
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");subtest "For the build job 'simple'" => sub {my $build = $builds->{"simple"};is($build->finished, 1, "Build should have finished");is($build->buildstatus, 0, "Build should have buildstatus 0"); - replacement in t/build-products.t at line 21[4.535]→[4.535:584](∅→∅),[4.584]→[4.216:279](∅→∅),[4.279]→[3.186:256](∅→∅),[3.256]→[4.342:409](∅→∅),[4.342]→[4.342:409](∅→∅)
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);my $buildproduct = $build->buildproducts->next;is($buildproduct->name, "text.txt", "We should have \"text.txt\"");}; - replacement in t/build-products.t at line 25
is($newbuild->finished, 1, "Build should have finished");is($newbuild->buildstatus, 0, "Build should have buildstatus 0");subtest "For the build job 'with_spaces'" => sub {my $build = $builds->{"with_spaces"}; - replacement in t/build-products.t at line 28
my $buildproducts = $db->resultset('BuildProducts')->search({ build => $build->id });my $buildproduct = $buildproducts->next;is($build->finished, 1, "Build should have finished");is($build->buildstatus, 0, "Build should have buildstatus 0"); - replacement in t/build-products.t at line 31
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\"");}};my $buildproduct = $build->buildproducts->next;is($buildproduct->name, "some text.txt", "We should have: \"some text.txt\"");}; - edit in t/build-products.t at line 35
}