Commit graph

237 commits

Author SHA1 Message Date
Graham Christensen 952f629b7c Test the queue runner in the scenario where a dependency is available in the cache but GC'd locally, where we're building locally 2022-01-21 15:26:45 -05:00
Graham Christensen 5c3e48fd0d CliRunners: decode UTF8 before printing stderr/stdout
Fixes yath output. It used to say:

    step â is now runnable

Now it says:

    step ‘/run...2ipqz6hbc41m4c5w5bkq-dependent-job.drv’ is now runnable
2022-01-21 15:24:33 -05:00
Graham Christensen e4407f8c93 HydraTestContext: expose the nix state dir 2022-01-21 15:12:10 -05:00
Graham Christensen 0eeced7f08 hydra-create-user: Warn that creating users with a plaintext password is deprecated 2022-01-21 12:56:15 -05:00
Graham Christensen 98928a4125 fixups 2022-01-21 12:52:06 -05:00
Graham Christensen bb893d0bd5 hydra-create-user: support prompting for passwords
I'm not sure this is a good implementation as-is. It does work,
but the password gets echo'd to the screen. I tried to use IO::Prompt
but IO::Prompt really seems to want to read the password from ARGV.
2022-01-21 10:40:56 -05:00
Graham Christensen 3a6c25489c Hydra::Helper::Nix: expose a captureStdoutStderrWithStdin, make it available in tests 2022-01-21 10:40:06 -05:00
Graham Christensen 4945306a2b hydra-create-user: make docs about using --password-hash better 2022-01-21 10:39:22 -05:00
Graham Christensen 12d0d0c176 hydra-create-user: use test_context over test_init 2022-01-21 10:37:48 -05:00
Graham Christensen bb9864bad7 hydra-create-user.t: rename the various users based on their password type 2022-01-21 09:12:47 -05:00
Graham Christensen 9671d4d135
Merge pull request #1119 from DeterminateSystems/project-jobset/update-gc-roots
Project jobset: update-gc-roots
2022-01-15 15:57:06 -05:00
Graham Christensen 52dda56b99 hydra-update-gc-roots: add a very basic test validating successful execution 2022-01-15 14:20:11 -05:00
Graham Christensen b2cdde0901 DeclarativeJobsets: test basic functionality 2022-01-15 13:46:32 -05:00
Graham Christensen eef633c1cc tests: create a declarative project spec and the autoconfig machinery 2022-01-15 13:46:32 -05:00
Graham Christensen 2abcd84931
Merge pull request #1115 from DeterminateSystems/project-jobset/builds-json-repr
Project jobset: update builds json repr
2022-01-15 12:09:45 -05:00
Graham Christensen cb68629417 test a Build's json representation 2022-01-14 21:19:48 -05:00
Graham Christensen f4c4b496d8 Projects: delete: delete all builds first
Deleting jobsets first would fail because buildmetrics has an FK
to the jobset. However, the jobset / project relationship is not
marked as CASCADE.

Deleting all the builds automatically cascades to delete
buildmetrics, so deleting the relevant builds first, then deleting
the jobset solves it.
2022-01-14 20:37:55 -05:00
Graham Christensen 0044622198 Projects: test deleting 2022-01-14 20:36:52 -05:00
Graham Christensen 8ae2daece7 root: test /steps and /evals 2022-01-14 16:49:58 -05:00
Graham Christensen e0e8840d8f Test /search 2022-01-14 16:38:25 -05:00
Graham Christensen 42a871e413
Merge pull request #1111 from DeterminateSystems/project-jobset/queue-summary-machines
Project jobset columns: fixup /queue-summary and /machines
2022-01-14 15:34:43 -05:00
Graham Christensen bdccad573c machines: test 2022-01-14 15:23:19 -05:00
Graham Christensen da516f70a4 queue summary: test 2022-01-14 15:23:19 -05:00
Graham Christensen a81e358016 API: test api/push-github 2022-01-14 14:57:32 -05:00
Graham Christensen 20db82b001 API test /api/push 2022-01-14 14:57:24 -05:00
Graham Christensen fe095a56c5 API: test /nrbuilds and fix jobset / project references 2022-01-14 14:57:15 -05:00
Graham Christensen e5c8a35423 API: test fetching the queue and latestbuilds 2022-01-14 14:57:03 -05:00
Graham Christensen 8383679bf6 test /queue and /status, both of which use buildListColumns 2022-01-14 12:48:51 -05:00
Graham Christensen 59d0259220 test /eval/ID/channel works
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen 2de40f86ec test /job/PROJECT/JOBSET/JOB works
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen 4a07622195 test /job/PROJECT/JOBSET/JOB/prometheus works
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen b37ca88fd5 test /job/PROJECT/JOBSET/JOB/shield works
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen 796cae0fd0 Test Job's builds and channel pages 2022-01-14 11:52:07 -05:00
Graham Christensen a2adb8cfb6 Test Jobset's builds and channel pages 2022-01-14 11:28:39 -05:00
Graham Christensen 23d7046522 t/Controller/Build/constituents.t: assert the response is valid JSON, dump if it isn't 2022-01-14 11:28:39 -05:00
Graham Christensen 9291cba89f Project: tests we can get the channel for the latest builds 2022-01-14 11:28:39 -05:00
Graham Christensen dcefb88373 test /project/NAME/all returns a 200 2022-01-14 11:28:39 -05:00
Graham Christensen 6d5b234ba2 hydra-eval-jobset/notification.t: comment which jobs produced which messages
I tried to write the test in such a way to assert the content matched
what we expected, but since the ordering of them is not known, it
is quite tricky to write.
2022-01-14 09:13:17 -05:00
Graham Christensen 42edd3a9d8 hydra-notify: respond to cached_build_queued 2022-01-14 09:13:17 -05:00
Graham Christensen 6b7f1da11e hydra-notify: operate on cached_build_finished events 2022-01-14 09:13:17 -05:00
Graham Christensen 4da80e736e hydra-eval-jobset: send notifications when cached queued / finished builds are submitted 2022-01-11 13:28:04 -05:00
Graham Christensen 769f56f793
Merge pull request #1101 from DeterminateSystems/hydra-eval-jobset-notifications
hydra-eval-jobset: test emitted notifications
2022-01-11 13:23:44 -05:00
Graham Christensen 2e195c524d evalSucceds/evalFails: log that the success or failure was not expected 2022-01-11 13:10:43 -05:00
Graham Christensen 2b163aa78b CatalystUtils::showJobName: write a basic test that shows it works 2022-01-11 11:48:02 -05:00
Graham Christensen 0ada412979 hydra-eval-jobset: write a test validating the events that comes out 2022-01-11 10:17:14 -05:00
Graham Christensen ae38cc5d04 test_context: support an override on jobsdir when creating a jobset 2022-01-11 10:17:14 -05:00
Graham Christensen 8d4c448e92 t: create a evalFails helper 2022-01-11 10:17:14 -05:00
Graham Christensen 40e556aee5 tests: evalSucceeds: don't print stdout/stderr unless it fails 2022-01-11 10:17:14 -05:00
Graham Christensen ca6ba409de Relocate new tests in to the Hydra subdir 2022-01-11 09:54:51 -05:00
Graham Christensen b41818e067
Merge pull request #1100 from DeterminateSystems/nest-tests
Tests: restructure to more closely mirror the sources
2022-01-11 09:53:16 -05:00
Graham Christensen a5d1d36fa6 Tests: restructure to more closely mirror the sources
t/ had lots of directories and files mirroring src/lib/Hydra. This moves
those files under t/Hydra
2022-01-10 15:34:52 -05:00
Cole Helbling 92bd0fae7d t/BuildDiff: test jobs without previous history 2022-01-10 12:11:06 -08:00
Cole Helbling 1ca786561f t/JobsetEval: test GETing the eval page 2022-01-10 12:11:05 -08:00
Cole Helbling 157a02bff7 t/BuildDiff: slightly refactor empty test to be more readable 2022-01-10 12:11:05 -08:00
Cole Helbling 220ccc68df t/BuildDiff: test diffing two jobs 2022-01-10 12:11:05 -08:00
Cole Helbling 0c51f3ca7d BuildDiff: make actual hash ref 2022-01-10 12:11:05 -08:00
Cole Helbling 0eb952d72d t/BuildDiff: init 2022-01-10 12:11:05 -08:00
Graham Christensen 98c88a4dbf
Merge pull request #1097 from DeterminateSystems/api-test-warnings
Api test warnings: clean up
2022-01-10 14:03:38 -05:00
Graham Christensen d8025fcf04 api-test.t: don't print request content
It adds noise to the logs
2022-01-10 11:02:01 -05:00
Graham Christensen 6b2f0a9fe1 api-test.t: set a default method 2022-01-10 11:02:01 -05:00
Cole Helbling 35f55279c1 HydraTestContext: prefix names with t
This is necessary because jobset and project names are not allowed to
begin with a digit, and yet the generated jobset and project names would
do just that.

Not the most elegant solution, but it works.
2022-01-10 09:39:42 -05:00
Graham Christensen 06360bfbb6 RunCommandLogs.t: use test_context to get a specific build
Fixes a build error: Can't use global @_ in 'my' at Schema/Result/RunCommandLogs.t line 20, near ', @_'
2022-01-07 15:05:33 -05:00
Graham Christensen a7aeb766aa RunCommandLogs: add a helper for if it failed with an exec error 2022-01-07 15:05:33 -05:00
Graham Christensen d849856dcd RunCommandLogs: add helpers for if it is running/failed/signaled 2022-01-07 15:05:33 -05:00
Graham Christensen c81acbf93e RunCommandLogs: test recording a signaled process without a core dump 2022-01-07 15:05:33 -05:00
Graham Christensen d003fec8a5 RunCommandLogs: add a did_succeed helper 2022-01-07 15:05:33 -05:00
Graham Christensen 5bb3e2be78 Record the errno if exec fails 2022-01-07 15:05:33 -05:00
Graham Christensen 4ce8239cea RunCommand: create run logs for each execution 2022-01-07 15:05:33 -05:00
Graham Christensen a14501c616 Tasks: only execute the event if the plugin is interested in it 2021-12-21 20:57:53 -05:00
Graham Christensen d195e545f5 hydra-notify: listen for build_queued events 2021-12-21 20:57:53 -05:00
Graham Christensen f2f8d571f3 queue-runner-status: fixup from perlcritic-level-2
>
> from_json was legacy / deprecated. This was the only use.
2021-12-15 17:24:23 -05:00
Graham Christensen fbce3b6ed1 default-machine-file: use makeAndEvaluateJobset 2021-12-14 20:52:40 -05:00
Graham Christensen 06f824ca48 notifications.t: use system() with lists 2021-12-14 20:48:19 -05:00
Graham Christensen 5836bc9a11 HydraTestContext::makeAndEvaluateJobset: make a random user 2021-12-14 20:48:07 -05:00
Graham Christensen c2384a04d8 notifications.t: move to makeAndEvaluateJobset 2021-12-14 20:41:21 -05:00
Graham Christensen 008321d972 build-products: switch to makeAndEvaluateJobset 2021-12-14 20:32:13 -05:00
Graham Christensen 7333d444c6 evaluate-basic.t: move to makeAndEvaluateJobset 2021-12-14 20:25:54 -05:00
Graham Christensen adfe74b76a HydraTestContext: give a helper for creating a project, jobset, evaluating jobs, and optionally building them.
In return, get a hash of all the build records.
2021-12-14 20:25:42 -05:00
Graham Christensen 3238496b3d t/Setup: move subs calling hydra-* programs to a CliPrograms module
Makes it so HydraTestContext can call them without an import loop
2021-12-14 20:25:02 -05:00
Graham Christensen 1fa141229f HydraTestContext: explicitly stop the db
This might, hopefully, I don't know, possibly force the
database to live a little while longer and *reduce* but not
eliminate errors around stopping the database before we lose all
our DB::PG handles to it.
2021-12-14 19:51:12 -05:00
Graham Christensen eca09bc980 Attempt to fix errors during test teardown 2021-12-14 16:31:41 -05:00
Graham Christensen fc49a7129d JSON -> JSON::MaybeXS 2021-12-14 10:16:25 -05:00
Graham Christensen 30a7f068b7 AttributeSet helper: skip wantarray 2021-12-14 10:16:25 -05:00
Graham Christensen 327d79bc1d pin 2021-12-14 10:16:25 -05:00
Graham Christensen 7dcf6a01c6 JSON -> JSON::MaybeXS 2021-12-13 15:37:56 -05:00
Graham Christensen 26b197ea62 RunCommand: calculate all the commands to run against before starting 2021-12-08 20:29:32 -05:00
Graham Christensen b7962c3882 RunCommand: Move the json validation testing to its own test 2021-12-08 20:29:27 -05:00
Graham Christensen bb91f96381 RunCommand: test isEnabled, configSectionMatches, and eventMatches 2021-12-08 20:03:43 -05:00
Graham Christensen 9dfa34682d RunCommand tests: move in to a subdirectory 2021-12-08 20:03:43 -05:00
Graham Christensen 7227395a72
Merge pull request #1068 from DeterminateSystems/fix-some-warnings
Fix some warnings
2021-12-03 15:38:46 -05:00
Cole Helbling ecb1454cf1 t/Controller/Root: test narinfo path 2021-12-03 12:12:53 -08:00
Graham Christensen 085b02e092 t/Helper/CatalystUtils.t: test trim functionality 2021-12-03 11:58:19 -08:00
Graham Christensen 4d5dfec8c7 TT.t: fixup $_, since _ is a special variable, not a throwaway 2021-12-01 13:46:58 -05:00
Graham Christensen ce6805f02b fixup: TT.t: move the :'s to the next line 2021-11-22 20:20:06 -05:00
Graham Christensen 03323f6ef1 TT: add helpers for linking to jobs, jobsets, and projects, and for generating colon separated names. 2021-11-22 13:38:53 -05:00
Graham Christensen 5917de4948 t/plugins/runcommand.t: output the filename if it fails to open 2021-11-17 15:05:28 -05:00
Graham Christensen e5a4147f0a runcommand.t: stop dumping the json 2021-11-17 15:05:28 -05:00
Eelco Dolstra 9ae676072c
Merge pull request #1051 from DeterminateSystems/restart-cancel-resultset-p2
Validate and fix canceling builds
2021-10-27 18:22:20 +02:00
Graham Christensen c1630e6d80 Admin/clear-queue-non-current: test behavior 2021-10-27 11:43:58 -04:00
Graham Christensen d19890a4e1 JobsetEval/cancel: test & fix 2021-10-27 11:43:36 -04:00