Skip to content

Instantly share code, notes, and snippets.

@hjoliver
Last active July 16, 2020 10:48
Show Gist options
  • Select an option

  • Save hjoliver/ef10394a3161713dbfad45d68238d079 to your computer and use it in GitHub Desktop.

Select an option

Save hjoliver/ef10394a3161713dbfad45d68238d079 to your computer and use it in GitHub Desktop.
Cylc SoD test changes

Record of changes made to functional tests to get them working with SoD

Note, only doing local and non-batch system tests initially.

test mod details

startup

  • 00-state-summary.t: adjusted suite to keep failed task in pool under SoD.

validate

  • 60-groups.t: removed `spawn to max active cycles'
  • 36-fail-double-runahead.t: removed 'runahead limit' (to be restored for SoD)

restart

many changes during restart implementation CHANGE NOTES TBD Note 22-hold.t is now flaky, needs investigating.

cylc-poll

Two mods:

  • 01-task-failed:
    • replaced suicide trigger with failed handler task
  • 12-reverse-state:
    • removed; state reversal not meaningful under SoD (if we reset a running task to succeeded, it would be removed as succeeded).

cylc-get-config

  • remove two obsolete config items from 00-simple/section1.stdout
    • runahead limit (THIS NEEDS TO BE RESTORED)
    • spawn to max active cycle points

job-submission

  • 01-job-nn-localhost.t: had to modify db.sqlite3 for new task_pool and task_pool checkpoints table.

message-triggers

  • 02-action.t: changed test suite to a more appropriate model (to test that message triggers work immediately). The original was SoS-specific, and not very sensible.

xtriggers

  • 03-sequence.t: removed "spawn to max active cycle points" (works without it in SoD)

ext-trigger

  • 01-no-nudge.t: altered slighly for SoD fail handling

logging

  • 02-duplication.t - replaced cylc reset with cylc spawn for SoD.

cli

  • 02.t adjust task pool comparisons for new DB content.

shutdown

  • 09-now2.t: restarted suite should not abort as stalled in SoD as the failure was handled.

events

  • 00-suite.t: adjusted timeout sub-suite for SoD fail handling (needs a stalled suite)
  • 04-timeout-ref-live.t: ditto
  • 06-timeout-ref-simulation.t : ditto
  • 34-task-abort.t: adjust for SoD fail handling
  • 03-timeout.t: ditto
  • 23-suite-stalled-handler.t: ditto, and "cylc spawn" instead of "cylc reset"
  • 35-task-event-handler-importance.t: remove unnec suicide trigger
  • 26-suite-stalled-dump-prereq.t: adjusted for minimal SoD task pool

periodicals

  • all: swapped runahead limit for max active

cylc-remove

  • 00-simple.t: adjust for SoD fail handling and pool content
  • 00-simple-comat.t: deleted, tests obsolete CLI

cylc-show

  • 01-clock-triggered.t: adjusted for SoD task pool content
  • 03-clock-triggered-non-utc-mode.t: ditto
  • 02-clock-triggered-alttz.t: REMOVED same as 01.t (no alt TZ)
  • 05-complex.t: adjusted for SoD: run the suite (instead of hold) and get the foo task to call cylc show on itself.

pre-initial

  • 08-conditional-messaging.t: adjust for SoD fail handling
  • 10-warm-insert.t: don't need to insert and trigger separately; removed inter-cycle dependence to avoid reflow after manual trigger (does not affect the subject of the test).
  • 11-warm-insert-stall.t: REMOVED. The test is the same as 10.t but does not trigger the inserted task (which therefore stalls); In SoD we can't (because there's no need for it) insert unsatisfied waiting tasks.

authentication

  • 05-full-control.t: minor adjustments for SoD task pool and commands (reset -> trigger)
  • (note 4 tests skipped due to "anon auth not supported")

hold-release

  • replaced 02 with SoD-appropriate test

  • replaced with 08-hold.t:

    • 07-hold-family-exact.t
    • 08-hold-family-inexact.t
    • 09-hold-task-exact.t
    • 10-hold-task-inexact.t:

-18-hold-cycle-globs.t: added a new task to spawn the tasks to be held (that are already present in the SoS task pool)

  • 19-no-reset-prereq-on-waiting.t: ditto

  • replaced with 05-release.t:

    • 05-release-task-exact.t
    • 06-release-task-inexact.t
    • 04-release-family-inexact.t
    • 03-release-family-exact.t
  • directory run-hold-after removed (not used)

suite-state

  • 00/01.t: fixed by modifying the "upstream" suite for SoD failed handling

cylc-trigger

  • 02-filter-failed.t: adjusted for SoD fail handling
  • 04-filter-names.t: ditto
  • 05-filter-cycle.t: ditto
  • 08-edit-run-host-select.t: ditto
  • 06-reset-ready.t:(reset command not needed in SoD; renamed 06-reflow.t - makes use of REFLOW) -03-edit-run.t: SoD fail handling -07-edit-run-abort.t: modified a bit for SoD, to keep a target task in the pool for retriggering.

triggering

  • 06-fam-succeed-any.t: SoD fail-handling; remove unnecessary suicide trigger
  • 04-fam-fail-all.t: ditto
  • 05-fam-finish-all.t: remove suicide trigger
  • 07-fam-fail-any.t: ditto
  • 09-fail.t: ditto
  • 10-finish.t: ditto
  • 16-fam-expansion.t: modify to let suite run and get bar.1 to show its own prerequisites (original requires waiting bar.1 to exist in the SoS pool).
  • 17-suicide-multi.t: adjusted for SoD task pool content
  • 19-and-suicide.t: ditto
  • 20-and-outputs-suicide.t: ditto
  • 14-submit-fail.t: Unchanged, but note this test requires suicide trigger to remove a handled submit-failed task! (should we manage like handled failed tasks?)

reload

  • 22-remove-task-cycling.t: small change for task pool content
  • 18-broadcast-insert.t: replace insert with trigger
  • 15-state-summary.t: simplified unnecessarily complex suite
  • 14-waiting.t: modified to use a partially satisfied waiting task
  • 13-add-task.t: added an intermediate task to avoid the complications of modifying the downstream consequences of a live task
  • 05-graphing-simple.t: ditto
  • 06-graphing-fam.t: ditto
  • 12-remove-task.t: ditto
  • 16-remove-add-alter-task.t: ditto (note these tests are of dubious benefit for SoD; in SoS reload had to modify waiting task proxies).
  • 17-graphing-change.t: changed to integer cycling; no need to release the suite, just force-spawn proxies to check orphaning behaviour on reload.
  • 10-runahead.t: rh-limit -> max active, and adjust for SoD fail handling

cyclers

  • 40-integer_exclusions_advanced.t: max active cycle points instead of runahead limit
  • 33-integer1.t: ditto

special

  • 00-sequential.t: runahead limit -> max active cycle points

runahead

  • 00-runahead.t: rh-limit -> max active
  • 04-no-final.t: ditto, and simplified
  • 06-release-update.t: adjusted for SoD pool content
  • 02-check-default-complex.t: added failed tasks in each cycle to hold max active cycle points back (the SoS version relies on a waiting task that never gets spawned in SoD)

REMOVED as SoS-specific

  • spawn-max/

  • task-proc-loop/: this just counts main loop iterations for a small workflow; it could just be updated for the current SoD implementation but relevance isn't clear?

  • cylc-insert: should perhaps reinstate these and convert them to cylc-trigger (with auto-insert) tests?

  • cylc-reset

graphql

  • 02-root-queries.t: (fixed on David's advice)

cylc-scan

  • 04-outputs.t: adjusted for SoD task pool content

TBD

NOTES

Stalled detection is less useful in SoD: it relies on unmet prerequisites of waiting tasks.

FLAKYTESTS

  • restart/21-elapsed.t: use --stop-point not --until (the latter change the FCP, and we can't spawn past that!); and final pool test should not have post-FCP tasks.

  • job-submission/19-chatty.t: adjust for SoD task pool content and lack of spawned flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment