default-machine-file: use makeAndEvaluateJobset

[?]
Dec 15, 2021, 1:52 AM
UXRI367UWWGUBV6OGT7QE3YJOVMNWD4YSVI4RV3YOCCCZFLM5WKQC

Dependencies

  • [2] HUCBINMQ Only add the Nix system feature to the test that requires it
  • [3] 2AM7IAS5 Tighten up 'should exit with return code'
  • [4] 4Y3LBQYI Use system-features from the Nix conf in the default machine file
  • [5] 7I2U2MHU perlcritic: use strict, use warnings

Change contents

  • edit in t/queue-runner/default-machine-file.t at line 5
    [4.194]
    [4.194]
    use Test2::V0;
  • replacement in t/queue-runner/default-machine-file.t at line 7
    [4.195][2.0:21]()
    my %ctx = test_init(
    [4.195]
    [2.21]
    my $ctx = test_context(
  • edit in t/queue-runner/default-machine-file.t at line 12
    [2.89][4.218:268](),[4.218][4.218:268]()
    require Hydra::Schema;
    require Hydra::Model::DB;
  • replacement in t/queue-runner/default-machine-file.t at line 13
    [4.269][4.269:284]()
    use Test2::V0;
    [4.269]
    [4.284]
    my $builds = $ctx->makeAndEvaluateJobset(
    expression => "default-machine-file.nix",
    build => 1,
    );
  • replacement in t/queue-runner/default-machine-file.t at line 18
    [4.285][4.285:335]()
    my $db = Hydra::Model::DB->new;
    hydra_setup($db);
    [4.285]
    [4.335]
    my $build = $builds->{"requireExperimentalFeatures"};
    is($build->finished, 1, "Build should be finished.");
    is($build->buildstatus, 0, "Build status should be zero");
  • edit in t/queue-runner/default-machine-file.t at line 22
    [4.336][4.336:817](),[4.817][3.559:678](),[3.678][4.929:1335](),[4.929][4.929:1335]()
    my $project = $db->resultset('Projects')->create({name => "tests", displayname => "", owner => "root"});
    my $jobset = createBaseJobset("default-machine-file", "default-machine-file.nix", $ctx{jobsdir});
    ok(evalSucceeds($jobset), "Evaluating jobs/default-machine-file.nix should exit with return code 0");
    is(nrQueuedBuildsForJobset($jobset), 1, "Evaluating jobs/default-machine-file.nix should result in 1 build");
    for my $build (queuedBuildsForJobset($jobset)) {
    ok(runBuild($build), "Build '".$build->job."' from jobs/default-machine-file.nix should exit with return code 0");
    my $newbuild = $db->resultset('Builds')->find($build->id);
    is($newbuild->finished, 1, "Build '".$build->job."' from jobs/default-machine-file.nix should be finished.");
    my $expected = $build->job eq "fails" ? 1 : $build->job =~ /with_failed/ ? 6 : 0;
    is($newbuild->buildstatus, $expected, "Build '".$build->job."' from jobs/default-machine-file.nix should have buildstatus $expected.");
    }