Pierre Bourdon
6189ba9c5e
This is implement in an extremely hacky way due to poor DBIx feature support. Ideally, what we'd need is a way to tell DBIx to ignore the errormsg column unless explicitly requested, and to automatically add a computed 'errormsg IS NULL' column in others. Since it does not support that, this commit instead hacks some support via method overrides while taking care to not break anything obvious.
33 lines
926 B
Perl
33 lines
926 B
Perl
use strict;
|
||
use warnings;
|
||
use Setup;
|
||
use Test2::V0;
|
||
use Hydra::Helper::Exec;
|
||
|
||
my $ctx = test_context();
|
||
|
||
my $jobsetCtx = $ctx->makeJobset(
|
||
expression => 'constituents-broken.nix',
|
||
);
|
||
my $jobset = $jobsetCtx->{"jobset"};
|
||
|
||
my ($res, $stdout, $stderr) = captureStdoutStderr(60,
|
||
("hydra-eval-jobset", $jobsetCtx->{"project"}->name, $jobset->name)
|
||
);
|
||
isnt($res, 0, "hydra-eval-jobset exits non-zero");
|
||
ok(utf8::decode($stderr), "Stderr output is UTF8-clean");
|
||
like(
|
||
$stderr,
|
||
qr/aggregate job ‘mixed_aggregate’ failed with the error: constituentA: does not exist/,
|
||
"The stderr record includes a relevant error message"
|
||
);
|
||
|
||
$jobset->discard_changes({ '+columns' => {'errormsg' => 'errormsg'} }); # refresh from DB
|
||
like(
|
||
$jobset->errormsg,
|
||
qr/aggregate job ‘mixed_aggregate’ failed with the error: constituentA: does not exist/,
|
||
"The jobset records a relevant error message"
|
||
);
|
||
|
||
done_testing;
|