diff --git a/.github/workflows/test_fast.yml b/.github/workflows/test_fast.yml index dc57b0d7a45..9847b71a454 100644 --- a/.github/workflows/test_fast.yml +++ b/.github/workflows/test_fast.yml @@ -12,6 +12,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +defaults: + run: + shell: bash -c "exec $CONDA_PREFIX/bin/bash -elo pipefail {0}" + jobs: test: runs-on: ${{ matrix.os }} @@ -20,12 +24,10 @@ jobs: fail-fast: false # don't stop on first failure matrix: os: ['ubuntu-latest'] - python-version: ['3.8', '3.10', '3.11', '3'] + python-version: ['3.7', '3.8', '3.10', '3.11', '3.12', '3'] include: - - os: 'ubuntu-22.04' - python-version: '3.7' - os: 'macos-latest' - python-version: '3.9' # oldest supported version + python-version: '3.8' # oldest version with arm64 builds # non-utc timezone test - os: 'ubuntu-latest' python-version: '3.9' # not the oldest, not the most recent version @@ -39,24 +41,26 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Configure Python - uses: actions/setup-python@v5 + - name: Install System Dependencies + uses: mamba-org/setup-micromamba@v2 with: - python-version: ${{ matrix.python-version }} - - - name: Apt-Get Install - if: startsWith(matrix.os, 'ubuntu') + cache-environment: true + post-cleanup: 'all' + environment-name: cylc-fast-test + create-args: >- + python=${{ matrix.python-version }} + pip + bash + subversion + sqlite + + - name: Install Python Dependencies run: | - sudo apt-get update - sudo apt-get install -y sqlite3 + pip install -e ."[all]" - name: Patch DNS uses: cylc/release-actions/patch-dns@v1 - - name: Install - run: | - pip install -e ."[all]" - - name: Configure git # Needed by the odd test uses: cylc/release-actions/configure-git@v1 @@ -99,21 +103,26 @@ jobs: lint: runs-on: 'ubuntu-latest' timeout-minutes: 10 + strategy: + matrix: + python-version: ['3'] steps: - - name: Apt-Get Install - run: | - sudo apt-get update - sudo apt-get install -y shellcheck - - name: Checkout uses: actions/checkout@v4 - - name: Configure Python - uses: actions/setup-python@v5 + - name: Install System Dependencies + uses: mamba-org/setup-micromamba@v2 with: - python-version: 3.x - - - name: Install + cache-environment: true + post-cleanup: 'all' + environment-name: cylc-lint-test + create-args: >- + python=${{ matrix.python-version }} + pip + bash + shellcheck + + - name: Install Python Dependencies run: | pip install -e ."[tests]" diff --git a/.github/workflows/test_functional.yml b/.github/workflows/test_functional.yml index 6dd00b9d3a0..aa7ebb8de60 100644 --- a/.github/workflows/test_functional.yml +++ b/.github/workflows/test_functional.yml @@ -32,6 +32,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +defaults: + run: + shell: bash -c "exec $CONDA_PREFIX/bin/bash -elo pipefail {0}" + jobs: test: runs-on: ${{ matrix.os }} @@ -56,20 +60,20 @@ jobs: platform: '_local_background*' # tests/k - name: 'flaky' - os: 'ubuntu-22.04' + os: 'ubuntu-latest' python-version: '3.7' test-base: 'tests/k' chunk: '1/1' platform: '_local_background* _local_at*' # remote platforms - name: '_remote_background_indep_poll' - os: 'ubuntu-22.04' + os: 'ubuntu-latest' python-version: '3.7' test-base: 'tests/f tests/k' chunk: '1/1' platform: '_remote_background_indep_poll _remote_at_indep_poll' - name: '_remote_background_indep_tcp' - os: 'ubuntu-22.04' + os: 'ubuntu-latest' test-base: 'tests/f tests/k' python-version: '3.7' chunk: '1/1' @@ -77,13 +81,13 @@ jobs: # macos - name: 'macos 1/5' os: 'macos-latest' - python-version: '3.9' + python-version: '3.8' # oldest available test-base: 'tests/f' chunk: '1/5' platform: '_local_background*' - name: 'macos 2/5' os: 'macos-latest' - python-version: '3.9' + python-version: '3' # newest available test-base: 'tests/f' chunk: '2/5' platform: '_local_background*' @@ -101,9 +105,21 @@ jobs: uses: actions/checkout@v4 - name: Configure Python - uses: actions/setup-python@v5 + uses: mamba-org/setup-micromamba@v2 with: - python-version: ${{ matrix.python-version }} + cache-environment: true + post-cleanup: 'all' + environment-name: cylc-functional-test + create-args: >- + python=${{ matrix.python-version }} + pip + bash + coreutils + grep + sed + sqlite + subversion + tree - name: Create global config run: | @@ -128,36 +144,11 @@ jobs: __HERE__ cat "$GLOBAL_CFG_PATH" - - name: Brew Install - if: startsWith(matrix.os, 'macos') - run: | - # install system deps - brew update - brew install bash coreutils gnu-sed grep - - # add GNU coreutils and sed to the user PATH - # (see instructions in brew install output) - echo "$(brew --prefix)/opt/coreutils/libexec/gnubin" >> "${GITHUB_PATH}" - echo "$(brew --prefix)/opt/grep/libexec/gnubin" >> "${GITHUB_PATH}" - echo "$(brew --prefix)/opt/gnu-sed/libexec/gnubin" >> "${GITHUB_PATH}" - - # add coreutils to the bashrc too (for jobs) - cat >> "${HOME}/.bashrc" <<__HERE__ - PATH="$(brew --prefix)/opt/coreutils/libexec/gnubin:$PATH" - PATH="$(brew --prefix)/opt/grep/libexec/gnubin:$PATH" - PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:$PATH" - export PATH - __HERE__ - - - name: Apt-Get Install - if: startsWith(matrix.os, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y sqlite3 tree at - - name: Add .github/bin/ to PATH # Sets up mocked mail command & any other custom executables - run: echo "${{ github.workspace }}/.github/bin" >> $GITHUB_PATH + # Adding to $GITHUB_PATH does not work when using setup-micromamba and/or login shell + run: | + echo "export PATH=\"${{ github.workspace }}/.github/bin:$PATH\"" >> ~/.bash_profile - name: Install run: | @@ -167,6 +158,8 @@ jobs: - name: Configure Atrun if: contains(matrix.platform, '_local_at') run: | + sudo apt-get update + sudo apt-get install -y at cat >> "$GLOBAL_CFG_PATH" << __HERE__ [platforms] [[_local_at_indep_tcp]] diff --git a/tests/flakyfunctional/database/00-simple.t b/tests/flakyfunctional/database/00-simple.t index 832c35e46ec..6de3e88a87f 100644 --- a/tests/flakyfunctional/database/00-simple.t +++ b/tests/flakyfunctional/database/00-simple.t @@ -38,8 +38,8 @@ cmp_ok "${NAME}" "${SORTED_ORIG}" NAME='select-workflow-params.out' sqlite3 "${DB_FILE}" \ - 'SELECT key, value FROM workflow_params - WHERE key != "uuid_str" AND key != "cycle_point_tz" ORDER BY key' \ + "SELECT key, value FROM workflow_params + WHERE key != 'uuid_str' AND key != 'cycle_point_tz' ORDER BY key" \ >"${NAME}" cmp_ok "${NAME}" << __EOF__ UTC_mode|0 diff --git a/tests/flakyfunctional/hold-release/15-hold-after.t b/tests/flakyfunctional/hold-release/15-hold-after.t index 8478b4c4298..57072eb1b2d 100755 --- a/tests/flakyfunctional/hold-release/15-hold-after.t +++ b/tests/flakyfunctional/hold-release/15-hold-after.t @@ -27,7 +27,7 @@ run_ok "${TEST_NAME_BASE}-validate" cylc validate "${WORKFLOW_NAME}" workflow_run_ok "${TEST_NAME_BASE}-1" \ cylc play --reference-test --debug --no-detach "${WORKFLOW_NAME}" sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT cycle, name, status FROM task_pool WHERE cycle=="20140102T0000Z" ORDER BY name' \ + "SELECT cycle, name, status FROM task_pool WHERE cycle=='20140102T0000Z' ORDER BY name" \ >'taskpool.out' cmp_ok 'taskpool.out' <<'__OUT__' 20140102T0000Z|foo|waiting diff --git a/tests/flakyfunctional/job-submission/19-chatty.t b/tests/flakyfunctional/job-submission/19-chatty.t index 6f03593cdc4..1da58d39a29 100755 --- a/tests/flakyfunctional/job-submission/19-chatty.t +++ b/tests/flakyfunctional/job-submission/19-chatty.t @@ -70,7 +70,7 @@ done # Task pool in database contains the correct states TEST_NAME="${TEST_NAME_BASE}-db-task-pool" DB_FILE="${WORKFLOW_RUN_DIR}/log/db" -QUERY='SELECT cycle, name, status FROM task_states WHERE name LIKE "nh%"' +QUERY="SELECT cycle, name, status FROM task_states WHERE name LIKE 'nh%'" run_ok "$TEST_NAME" sqlite3 "$DB_FILE" "$QUERY" sort "${TEST_NAME}.stdout" > "${TEST_NAME}.stdout.sorted" cmp_ok "${TEST_NAME}.stdout.sorted" << '__OUT__' diff --git a/tests/flakyfunctional/restart/46-stop-clock-time.t b/tests/flakyfunctional/restart/46-stop-clock-time.t index f220ecec0f9..afcf405376a 100644 --- a/tests/flakyfunctional/restart/46-stop-clock-time.t +++ b/tests/flakyfunctional/restart/46-stop-clock-time.t @@ -21,7 +21,7 @@ dumpdbtables() { sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT * FROM workflow_params WHERE key=="stop_clock_time";' \ + "SELECT * FROM workflow_params WHERE key=='stop_clock_time';" \ >'stopclocktime.out' } diff --git a/tests/functional/cylc-cat-log/05-remote-tail.t b/tests/functional/cylc-cat-log/05-remote-tail.t index e75a87df862..86bda03708e 100755 --- a/tests/functional/cylc-cat-log/05-remote-tail.t +++ b/tests/functional/cylc-cat-log/05-remote-tail.t @@ -35,8 +35,7 @@ TEST_NAME="${TEST_NAME_BASE}-validate" run_ok "${TEST_NAME}" cylc validate "${WORKFLOW_NAME}" #------------------------------------------------------------------------------- $SCP "${PWD}/bin/my-tailer.sh" \ - "${CYLC_TEST_HOST}:cylc-run/.bin/my-tailer.sh -" + "${CYLC_TEST_HOST}:cylc-run/.bin/my-tailer.sh" #------------------------------------------------------------------------------- # Run detached. workflow_run_ok "${TEST_NAME_BASE}-run" cylc play "${WORKFLOW_NAME}" diff --git a/tests/functional/cylc-poll/11-event-time.t b/tests/functional/cylc-poll/11-event-time.t index 017453f2891..f5bd32f5134 100755 --- a/tests/functional/cylc-poll/11-event-time.t +++ b/tests/functional/cylc-poll/11-event-time.t @@ -27,9 +27,9 @@ workflow_run_ok "${TEST_NAME_BASE}" \ RUND="$RUN_DIR/${WORKFLOW_NAME}" sed -n 's/CYLC_JOB_EXIT_TIME=//p' "${RUND}/log/job/1/w1/NN/job.status" >'st-time.txt' -sqlite3 "${RUND}/log/db" ' +sqlite3 "${RUND}/log/db" " SELECT time_run_exit FROM task_jobs - WHERE cycle=="1" AND name=="w1" AND submit_num=="1"' >'db-time.txt' + WHERE cycle=='1' AND name=='w1' AND submit_num=='1'" >'db-time.txt' run_ok "${TEST_NAME_BASE}-time-run-exit" diff -u 'st-time.txt' 'db-time.txt' purge diff --git a/tests/functional/cylc-set/00-set-succeeded.t b/tests/functional/cylc-set/00-set-succeeded.t index df6ed99812d..e871c136234 100644 --- a/tests/functional/cylc-set/00-set-succeeded.t +++ b/tests/functional/cylc-set/00-set-succeeded.t @@ -28,12 +28,12 @@ reftest_run for TASK in foo bar do sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT status FROM task_states WHERE name is \"$TASK\"" > "${TASK}.1" + "SELECT status FROM task_states WHERE name is '$TASK'" > "${TASK}.1" cmp_ok ${TASK}.1 - << "${TASK}.2" + "SELECT outputs FROM task_outputs WHERE name is '$TASK'" > "${TASK}.2" cmp_json \ "check-${TASK}-outputs" \ diff --git a/tests/functional/cylc-set/03-set-failed.t b/tests/functional/cylc-set/03-set-failed.t index 4d561182b3a..e3f37590d5d 100644 --- a/tests/functional/cylc-set/03-set-failed.t +++ b/tests/functional/cylc-set/03-set-failed.t @@ -42,7 +42,7 @@ cylc stop --now --now --interval=2 --max-polls=5 "${WORKFLOW_NAME}" # Check the DB records all the outputs. sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT outputs FROM task_outputs WHERE name is \"foo\"" > db-foo.1 + "SELECT outputs FROM task_outputs WHERE name is 'foo'" > db-foo.1 # Json string list of outputs from the db may not be ordered correctly. python3 - << __END__ > db-foo.2 diff --git a/tests/functional/cylc-set/04-switch.t b/tests/functional/cylc-set/04-switch.t index e5134d32504..7e07f1222cd 100644 --- a/tests/functional/cylc-set/04-switch.t +++ b/tests/functional/cylc-set/04-switch.t @@ -28,7 +28,7 @@ reftest_run # The branch-point task foo should be recorded as succeeded. sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT status FROM task_states WHERE name is \"foo\"" > db-foo.2 + "SELECT status FROM task_states WHERE name is 'foo'" > db-foo.2 cmp_ok "db-foo.2" - << __OUT__ succeeded @@ -40,7 +40,7 @@ __OUT__ # submitted, started sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT outputs FROM task_outputs WHERE name is \"foo\"" > db-foo.1 + "SELECT outputs FROM task_outputs WHERE name is 'foo'" > db-foo.1 # Json string list of outputs from the db may not be ordered correctly. python3 - << __END__ > db-foo.2 diff --git a/tests/functional/cylc-set/05-expire.t b/tests/functional/cylc-set/05-expire.t index a23e21e1560..7bd820dc68e 100644 --- a/tests/functional/cylc-set/05-expire.t +++ b/tests/functional/cylc-set/05-expire.t @@ -26,14 +26,14 @@ install_and_validate reftest_run sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT status FROM task_states WHERE name is \"bar\"" > db-bar.1 + "SELECT status FROM task_states WHERE name is 'bar'" > db-bar.1 cmp_ok "db-bar.1" - << __OUT__ expired __OUT__ sqlite3 ~/cylc-run/"${WORKFLOW_NAME}"/log/db \ - "SELECT outputs FROM task_outputs WHERE name is \"bar\"" > db-bar.2 + "SELECT outputs FROM task_outputs WHERE name is 'bar'" > db-bar.2 cmp_ok "db-bar.2" - << __OUT__ {"expired": "(manually completed)"} diff --git a/tests/functional/database/06-task-message.t b/tests/functional/database/06-task-message.t index 0bb3256e0e3..3be3c61f427 100755 --- a/tests/functional/database/06-task-message.t +++ b/tests/functional/database/06-task-message.t @@ -27,16 +27,16 @@ workflow_run_ok "${TEST_NAME_BASE}-run" \ DB_FILE="$RUN_DIR/${WORKFLOW_NAME}/log/db" NAME='select-task-events.out' -sqlite3 "${DB_FILE}" ' +sqlite3 "${DB_FILE}" " SELECT cycle, name, event, message FROM task_events WHERE - event GLOB "message *" + event GLOB 'message *' ORDER BY event -' >"${NAME}" +" >"${NAME}" cmp_ok "${NAME}" <<'__SELECT__' 1|t1|message critical|You are being critical 1|t1|message info|You are normal diff --git a/tests/functional/events/20-workflow-event-handlers.t b/tests/functional/events/20-workflow-event-handlers.t index 1f3aaecbcbb..82b388b26bb 100755 --- a/tests/functional/events/20-workflow-event-handlers.t +++ b/tests/functional/events/20-workflow-event-handlers.t @@ -37,7 +37,7 @@ workflow_run_ok "${TEST_NAME_BASE}-run" \ cylc play --reference-test --debug --no-detach ${OPT_SET} "${WORKFLOW_NAME}" LOGD="$RUN_DIR/${WORKFLOW_NAME}/log" -WORKFLOW_UUID="$(sqlite3 "${LOGD}/db" 'SELECT value FROM workflow_params WHERE key=="uuid_str"')" +WORKFLOW_UUID="$(sqlite3 "${LOGD}/db" "SELECT value FROM workflow_params WHERE key=='uuid_str'")" LOG_FILE="${LOGD}/scheduler/log" grep_ok "\\[('workflow-event-handler-00', 'startup') ret_code\\] 0" "${LOG_FILE}" grep_ok "\\[('workflow-event-handler-00', 'startup') out\\] Your ${WORKFLOW_NAME} workflow has a startup event and URL http://myworkflows.com/${WORKFLOW_NAME}.html and workflow-priority as HIGH and workflow-UUID as ${WORKFLOW_UUID}." "${LOG_FILE}" diff --git a/tests/functional/job-file-trap/00-sigusr1.t b/tests/functional/job-file-trap/00-sigusr1.t index 4915b25633f..51ab405eb47 100755 --- a/tests/functional/job-file-trap/00-sigusr1.t +++ b/tests/functional/job-file-trap/00-sigusr1.t @@ -44,7 +44,7 @@ run_tests() { poll_grep_workflow_log 'vacated/USR1' sleep 1 # a bit of extra time for workflow db update to complete sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT status FROM task_states WHERE name=="t1";' \ + "SELECT status FROM task_states WHERE name=='t1';" \ >"${TEST_NAME}-db-t1" 2>'/dev/null' grep_ok "^\(submitted\|running\)$" "${TEST_NAME}-db-t1" # Start the job again and see what happens @@ -55,7 +55,7 @@ run_tests() { poll_workflow_stopped # Test t1 status in DB sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT status FROM task_states WHERE name=="t1";' >"${TEST_NAME}-db-t1" + "SELECT status FROM task_states WHERE name=='t1';" >"${TEST_NAME}-db-t1" cmp_ok "${TEST_NAME}-db-t1" - <<<'succeeded' # Test reference grep_ok 'WORKFLOW REFERENCE TEST PASSED' "${WORKFLOW_RUN_DIR}/log/scheduler/log" diff --git a/tests/functional/job-submission/11-garbage-platform-command.t b/tests/functional/job-submission/11-garbage-platform-command.t index adfb499e8e7..7e7fc63f806 100755 --- a/tests/functional/job-submission/11-garbage-platform-command.t +++ b/tests/functional/job-submission/11-garbage-platform-command.t @@ -32,7 +32,7 @@ workflow_run_ok "${TEST_NAME_BASE}-run" \ sqlite3 \ "$RUN_DIR/${WORKFLOW_NAME}/log/db" \ - 'SELECT submit_num,submit_status FROM task_jobs WHERE name=="t1"' \ + "SELECT submit_num,submit_status FROM task_jobs WHERE name=='t1'" \ >'sqlite3.out' cmp_ok 'sqlite3.out' <<'__OUT__' 1|1 diff --git a/tests/functional/pre-initial/12-warm-restart.t b/tests/functional/pre-initial/12-warm-restart.t index 467d0e67683..6cb58279fe0 100644 --- a/tests/functional/pre-initial/12-warm-restart.t +++ b/tests/functional/pre-initial/12-warm-restart.t @@ -48,7 +48,7 @@ cylc stop --max-polls=10 --interval=2 "${WORKFLOW_NAME}" DB_FILE="${RUN_DIR}/${WORKFLOW_NAME}/log/db" NAME='database-entry' sqlite3 "${DB_FILE}" \ - 'SELECT value FROM workflow_params WHERE key=="startcp"' >"${NAME}" + "SELECT value FROM workflow_params WHERE key=='startcp'" >"${NAME}" cmp_ok "${NAME}" <<<'20130101T12' #------------------------------------------------------------------------------- purge diff --git a/tests/functional/reload/10-runahead.t b/tests/functional/reload/10-runahead.t index d591997f68b..fa93be9891a 100644 --- a/tests/functional/reload/10-runahead.t +++ b/tests/functional/reload/10-runahead.t @@ -30,7 +30,7 @@ run_fail "${TEST_NAME}" cylc play --debug --no-detach "${WORKFLOW_NAME}" #------------------------------------------------------------------------------- TEST_NAME=${TEST_NAME_BASE}-check-fail DB_FILE="$RUN_DIR/${WORKFLOW_NAME}/log/db" -QUERY='SELECT COUNT(*) FROM task_states WHERE status == "failed"' +QUERY="SELECT COUNT(*) FROM task_states WHERE status == 'failed'" cmp_ok <(sqlite3 "$DB_FILE" "$QUERY") <<< "4" #------------------------------------------------------------------------------- purge diff --git a/tests/functional/remote/00-basic.t b/tests/functional/remote/00-basic.t index d041fdfc5f0..3b6ef667e63 100644 --- a/tests/functional/remote/00-basic.t +++ b/tests/functional/remote/00-basic.t @@ -36,7 +36,7 @@ workflow_run_ok "${TEST_NAME}" cylc play --reference-test --debug --no-detach "$ #------------------------------------------------------------------------------- TEST_NAME=${TEST_NAME_BASE}-platform sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'select platform_name from task_jobs where name=="foo"' >'foo-host.txt' + "SELECT platform_name FROM task_jobs WHERE name=='foo'" >'foo-host.txt' cmp_ok 'foo-host.txt' <<<"${CYLC_TEST_PLATFORM}" #------------------------------------------------------------------------------- # Check that the remote job has actually been run on the correct remote by diff --git a/tests/functional/restart/08-stop-after-cycle-point.t b/tests/functional/restart/08-stop-after-cycle-point.t index dd788a4b8f1..e5da2e795c6 100644 --- a/tests/functional/restart/08-stop-after-cycle-point.t +++ b/tests/functional/restart/08-stop-after-cycle-point.t @@ -22,7 +22,7 @@ dumpdbtables() { sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT value FROM workflow_params WHERE key=="stopcp";' > db_stopcp.out + "SELECT value FROM workflow_params WHERE key=='stopcp';" > db_stopcp.out sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ 'SELECT cycle, name, status FROM task_pool ORDER BY cycle, name;' > db_taskpool.out.out } diff --git a/tests/functional/restart/13-bad-job-host.t b/tests/functional/restart/13-bad-job-host.t index 5c2d2bc31e3..23fd4fc16a5 100755 --- a/tests/functional/restart/13-bad-job-host.t +++ b/tests/functional/restart/13-bad-job-host.t @@ -28,7 +28,7 @@ workflow_run_ok "${TEST_NAME_BASE}-run" cylc play --debug --no-detach --abort-if CYLC_WORKFLOW_RUN_DIR="$RUN_DIR/${WORKFLOW_NAME}" for DB_NAME in 'log/db' '.service/db'; do sqlite3 "${CYLC_WORKFLOW_RUN_DIR}/${DB_NAME}" \ - 'UPDATE task_jobs SET platform_name="garbage" WHERE name=="t-remote";' + "UPDATE task_jobs SET platform_name='garbage' WHERE name=='t-remote';" done workflow_run_fail "${TEST_NAME_BASE}-restart" cylc play --debug --no-detach --abort-if-any-task-fails "${WORKFLOW_NAME}" grep_ok PlatformLookupError "${CYLC_WORKFLOW_RUN_DIR}/log/scheduler/log" diff --git a/tests/functional/restart/20-event-retry.t b/tests/functional/restart/20-event-retry.t index b3cfe355abd..0177aa48270 100755 --- a/tests/functional/restart/20-event-retry.t +++ b/tests/functional/restart/20-event-retry.t @@ -24,7 +24,7 @@ WORKFLOWD="$RUN_DIR/${WORKFLOW_NAME}" run_ok "${TEST_NAME_BASE}-validate" cylc validate "${WORKFLOW_NAME}" workflow_run_ok "${TEST_NAME_BASE}-run" cylc play "${WORKFLOW_NAME}" --debug --no-detach sqlite3 "${WORKFLOWD}/log/db" \ - 'SELECT COUNT(*) FROM task_action_timers WHERE ctx_key GLOB "*event-handler-00*"' \ + "SELECT COUNT(*) FROM task_action_timers WHERE ctx_key GLOB '*event-handler-00*'" \ >"${TEST_NAME_BASE}-db-n-entries" cmp_ok "${TEST_NAME_BASE}-db-n-entries" <<<'1' workflow_run_ok "${TEST_NAME_BASE}-restart" cylc play "${WORKFLOW_NAME}" --debug --no-detach diff --git a/tests/functional/restart/26-remote-kill.t b/tests/functional/restart/26-remote-kill.t index 13ce44e9349..f5308b507df 100755 --- a/tests/functional/restart/26-remote-kill.t +++ b/tests/functional/restart/26-remote-kill.t @@ -24,7 +24,7 @@ install_workflow "${TEST_NAME_BASE}" "${TEST_NAME_BASE}" run_ok "${TEST_NAME_BASE}-validate" cylc validate "${WORKFLOW_NAME}" workflow_run_ok "${TEST_NAME_BASE}-run" cylc play "${WORKFLOW_NAME}" --debug --no-detach sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT status FROM task_pool WHERE cycle=="1" AND NAME=="t1"' \ + "SELECT status FROM task_pool WHERE cycle=='1' AND NAME=='t1'" \ >'t1-status.out' cmp_ok 't1-status.out' <<<'running' run_ok "${TEST_NAME_BASE}-restart" cylc play "${WORKFLOW_NAME}" @@ -35,7 +35,7 @@ cylc kill "${WORKFLOW_NAME}//1/t1" poll_workflow_stopped sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT status FROM task_pool WHERE cycle=="1" AND NAME=="t1"' \ + "SELECT status FROM task_pool WHERE cycle=='1' AND NAME=='t1'" \ >'t1-status.out' cmp_ok 't1-status.out' <<<'failed' purge diff --git a/tests/functional/restart/30-outputs.t b/tests/functional/restart/30-outputs.t index fbf4d887cc1..56fa3b6f50f 100755 --- a/tests/functional/restart/30-outputs.t +++ b/tests/functional/restart/30-outputs.t @@ -27,7 +27,7 @@ install_workflow "${TEST_NAME_BASE}" "${TEST_NAME_BASE}" run_ok "${TEST_NAME_BASE}-validate" cylc validate "${WORKFLOW_NAME}" workflow_run_ok "${TEST_NAME_BASE}-run" cylc play --no-detach "${WORKFLOW_NAME}" sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT outputs FROM task_outputs WHERE name IS "t1"' >'sqlite3.out' + "SELECT outputs FROM task_outputs WHERE name IS 't1'" >'sqlite3.out' cmp_json 'sqlite3.out' 'sqlite3.out' <<<'{"submitted": "submitted", "started": "started", "succeeded": "succeeded", "hello": "hi there"}' sqlite3 "${WORKFLOW_RUN_DIR}/log/db" 'SELECT * FROM task_pool' >'task-pool.out' diff --git a/tests/functional/restart/33-simulation.t b/tests/functional/restart/33-simulation.t index 9c4f27485b1..7490b904e33 100644 --- a/tests/functional/restart/33-simulation.t +++ b/tests/functional/restart/33-simulation.t @@ -15,10 +15,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . #------------------------------------------------------------------------------- -# Test cylc/cylc-flow#2788 +# Test https://github.com/cylc/cylc-flow/issues/2788 . "$(dirname "$0")/test_header" -set_test_number 3 +set_test_number 5 init_workflow "${TEST_NAME_BASE}" <<'__FLOW_CONFIG__' [scheduler] cycle point format = %Y @@ -38,10 +38,10 @@ run_ok "${TEST_NAME_BASE}-validate" cylc validate "${WORKFLOW_NAME}" workflow_run_ok "${TEST_NAME_BASE}-run" \ cylc play --no-detach --stopcp=2019 --mode=simulation --abort-if-any-task-fails "${WORKFLOW_NAME}" # Force a waiting task into a running task -sqlite3 "${HOME}/cylc-run/${WORKFLOW_NAME}/.service/db" \ - 'UPDATE task_states SET status="running" WHERE name=="t1" AND cycle=="2019"' -sqlite3 "${HOME}/cylc-run/${WORKFLOW_NAME}/.service/db" \ - 'UPDATE task_pool SET status="running" WHERE name=="t1" AND cycle=="2019"' +run_ok "${TEST_NAME_BASE}-sql1" sqlite3 "${HOME}/cylc-run/${WORKFLOW_NAME}/.service/db" \ + "UPDATE task_states SET status='running' WHERE name=='t1' AND cycle=='2019'" +run_ok "${TEST_NAME_BASE}-sql1" sqlite3 "${HOME}/cylc-run/${WORKFLOW_NAME}/.service/db" \ + "UPDATE task_pool SET status='running' WHERE name=='t1' AND cycle=='2019'" workflow_run_ok "${TEST_NAME_BASE}-restart" \ cylc play --debug --no-detach --fcp=2020 --mode=simulation --abort-if-any-task-fails "${WORKFLOW_NAME}" purge diff --git a/tests/functional/restart/45-stop-task.t b/tests/functional/restart/45-stop-task.t index f910fe98b38..d26c39738ff 100644 --- a/tests/functional/restart/45-stop-task.t +++ b/tests/functional/restart/45-stop-task.t @@ -21,7 +21,7 @@ dumpdbtables() { sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT value FROM workflow_params WHERE key=="stop_task";' >'stoptask.out' + "SELECT value FROM workflow_params WHERE key=='stop_task';" >'stoptask.out' sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ 'SELECT cycle, name, status FROM task_pool ORDER BY cycle, name;' >'taskpool.out' } diff --git a/tests/functional/restart/51-final-point-reload.t b/tests/functional/restart/51-final-point-reload.t index 89c40c90c52..a995176daea 100644 --- a/tests/functional/restart/51-final-point-reload.t +++ b/tests/functional/restart/51-final-point-reload.t @@ -21,9 +21,9 @@ dumpdbtables() { sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT * FROM workflow_params WHERE key=="fcp";' >'fcp.out' + "SELECT * FROM workflow_params WHERE key=='fcp';" >'fcp.out' sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT cycle, name, status FROM task_pool ORDER BY cycle, name;' >'taskpool.out' + "SELECT cycle, name, status FROM task_pool ORDER BY cycle, name;" >'taskpool.out' } set_test_number 13 diff --git a/tests/functional/restart/52-cycle-point-time-zone.t b/tests/functional/restart/52-cycle-point-time-zone.t index efa5c803fd0..9b928ca721e 100644 --- a/tests/functional/restart/52-cycle-point-time-zone.t +++ b/tests/functional/restart/52-cycle-point-time-zone.t @@ -43,7 +43,7 @@ cylc stop "${WORKFLOW_NAME}" poll_workflow_stopped sqlite3 "${WORKFLOW_RUN_DIR}/log/db" \ - 'SELECT * FROM workflow_params WHERE key=="cycle_point_tz";' > 'dump.out' + "SELECT * FROM workflow_params WHERE key=='cycle_point_tz';" > 'dump.out' cmp_ok 'dump.out' <<< 'cycle_point_tz|+0100' # Simulate DST change diff --git a/tests/functional/runahead/04-no-final-cycle.t b/tests/functional/runahead/04-no-final-cycle.t index ae1ecebc500..97dc5728dde 100644 --- a/tests/functional/runahead/04-no-final-cycle.t +++ b/tests/functional/runahead/04-no-final-cycle.t @@ -30,7 +30,7 @@ run_fail "${TEST_NAME}" cylc play --debug --no-detach "${WORKFLOW_NAME}" #------------------------------------------------------------------------------- TEST_NAME=${TEST_NAME_BASE}-check-fail DB="$RUN_DIR/${WORKFLOW_NAME}/log/db" -TASKS=$(sqlite3 "${DB}" 'select count(*) from task_states where status=="failed"') +TASKS=$(sqlite3 "${DB}" "SELECT COUNT(*) FROM task_states WHERE status=='failed'") # manual comparison for the test if ((TASKS==2)); then ok "${TEST_NAME}"