build-products: switch to makeAndEvaluateJobset

[?]
Dec 15, 2021, 1:32 AM
Z7FCNNSAIXZZLXY54FF2VPHZE2O3YWD5YWV32KBWSTK43TQGGKIQC

Dependencies

  • [2] YIZWKGFI tests: add jobsdir and testdir to ctx hash
  • [3] 2AM7IAS5 Tighten up 'should exit with return code'
  • [4] ABB3BIS2 Add eval test for specific git revision
  • [5] FAIJDQKZ
  • [6] S5NPXZG3 Fix indentation
  • [7] RBZRCTAL hydra: fixed and re-enabled evaluation tests
  • [8] PY5GVGC7 Implemented quoted strings support in hydra-build-products to allow file names with spaces + testcase
  • [9] 5SMQ2PLK Fix tests
  • [10] 4OLBA6TU Tests: build-products: use `is` for good errors on failures
  • [11] 7I2U2MHU perlcritic: use strict, use warnings
  • [12] OWRS526H Create an ephemeral PostgreSQL database per test
  • [13] CQI443CG Relocate the final evalutation tests to a build-products specific test.
  • [14] 3RL7VFKE Add tests for "git describe --long".
  • [15] UIA3ULNU Give each test its own Nix directories
  • [16] WFJ3ZPRM add tests for scm inputs
  • [17] SBKX3YH2 cleanup
  • [18] HX4QYOYA add first evaluations tests
  • [19] HE3GX5IP Optimize fetch-git.
  • [20] NZXX6PLD Remove the Jobs table
  • [21] 3G475GRT Split out dependent tests in to its own .t
  • [22] L7RW467Z Add a test for darcs inputs.
  • [23] 4QI6G7YB tests: replace the flat list of contexts with a hash
  • [24] ZTYKNDOL Move tests for SCM inputs in to its own .t

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
    [4.1018]
    [4.1051]
    my $ctx = test_context();
  • replacement in t/build-products.t at line 10
    [4.244][2.0:86]()
    my $jobset = createBaseJobset("build-products", "build-products.nix", $ctx{jobsdir});
    [4.244]
    [4.312]
    my $builds = $ctx->makeAndEvaluateJobset(
    expression => "build-products.nix",
    build => 1
    );
  • replacement in t/build-products.t at line 15
    [4.313][4.0:215]()
    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");
    [4.313]
    [4.534]
    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);
    [4.535]
    [4.409]
    my $buildproduct = $build->buildproducts->next;
    is($buildproduct->name, "text.txt", "We should have \"text.txt\"");
    };
  • replacement in t/build-products.t at line 25
    [4.410][4.410:550]()
    is($newbuild->finished, 1, "Build should have finished");
    is($newbuild->buildstatus, 0, "Build should have buildstatus 0");
    [4.410]
    [4.550]
    subtest "For the build job 'with_spaces'" => sub {
    my $build = $builds->{"with_spaces"};
  • replacement in t/build-products.t at line 28
    [4.551][4.551:694]()
    my $buildproducts = $db->resultset('BuildProducts')->search({ build => $build->id });
    my $buildproduct = $buildproducts->next;
    [4.551]
    [4.7702]
    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
    [4.7703][4.695:970]()
    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\"");
    }
    };
    [4.7703]
    [4.7704]
    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
    [4.2224][4.5394:5396](),[4.2935][4.5394:5396](),[4.5394][4.5394:5396]()
    }