From a025bcb614e3e77b9be4bab290196c173fb21a5f Mon Sep 17 00:00:00 2001 From: Daniel Milroy Date: Sun, 14 Apr 2024 22:37:25 -0700 Subject: [PATCH] testsuite: update existing tests, add checks for update under rv1exec Problem: the current tests for reloading Fluxion with rv1exec fail due to lack of update support. Now that the support is added, we need tests for correct behavior. Add new tests to check for ability to reload Fluxion and update a resource graph with rv1exec. Update existing tests to use the additional option required by resource-query for update. --- t/data/resource/jobspecs/update/test007.yaml | 21 +++ t/data/resource/jobspecs/update/test008.yaml | 23 +++ t/data/resource/rv1exec/tiny_rv1exec.json | 1 + t/t1007-recovery-full.t | 2 +- t/t3022-resource-update.t | 155 ++++++++++++------- t/t3023-resource-update2.t | 12 +- 6 files changed, 154 insertions(+), 60 deletions(-) create mode 100644 t/data/resource/jobspecs/update/test007.yaml create mode 100644 t/data/resource/jobspecs/update/test008.yaml create mode 100644 t/data/resource/rv1exec/tiny_rv1exec.json diff --git a/t/data/resource/jobspecs/update/test007.yaml b/t/data/resource/jobspecs/update/test007.yaml new file mode 100644 index 000000000..98e21a452 --- /dev/null +++ b/t/data/resource/jobspecs/update/test007.yaml @@ -0,0 +1,21 @@ +version: 9999 +resources: + - type: node + count: 1 + with: + - type: slot + count: 1 + label: default + with: + - type: core + count: 1 +# a comment +attributes: + system: + duration: 3600 +tasks: + - command: [ "app" ] + slot: default + count: + per_slot: 1 + diff --git a/t/data/resource/jobspecs/update/test008.yaml b/t/data/resource/jobspecs/update/test008.yaml new file mode 100644 index 000000000..f4504515b --- /dev/null +++ b/t/data/resource/jobspecs/update/test008.yaml @@ -0,0 +1,23 @@ +version: 9999 +resources: + - type: node + count: 1 + with: + - type: slot + count: 1 + label: default + with: + - type: core + count: 1 + - type: gpu + count: 1 +# a comment +attributes: + system: + duration: 3600 +tasks: + - command: [ "app" ] + slot: default + count: + per_slot: 1 + diff --git a/t/data/resource/rv1exec/tiny_rv1exec.json b/t/data/resource/rv1exec/tiny_rv1exec.json new file mode 100644 index 000000000..508170303 --- /dev/null +++ b/t/data/resource/rv1exec/tiny_rv1exec.json @@ -0,0 +1 @@ +{"version": 1, "execution": {"R_lite": [{"rank": "0-1", "children": {"core": "0-15", "gpu": "0-3"}}], "nodelist": ["node[0-1]"], "starttime": 0, "expiration": 1000000}} diff --git a/t/t1007-recovery-full.t b/t/t1007-recovery-full.t index 68e64bd28..280fbd933 100755 --- a/t/t1007-recovery-full.t +++ b/t/t1007-recovery-full.t @@ -146,7 +146,7 @@ test_expect_success 'recovery: a cancel leads to a job schedule (rv1_nosched)' ' ' # flux-framework/flux-sched#991 -test_expect_failure 'recovery: both modules restart (rv1_nosched->rv1_nosched)' ' +test_expect_success 'recovery: both modules restart (rv1_nosched->rv1_nosched)' ' reload_resource match-format=rv1_nosched policy=high && reload_qmanager && flux module stats sched-fluxion-qmanager && diff --git a/t/t3022-resource-update.t b/t/t3022-resource-update.t index a7d3d7a07..e1144a535 100755 --- a/t/t3022-resource-update.t +++ b/t/t3022-resource-update.t @@ -8,7 +8,10 @@ unit_job="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test001.yaml" job2="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test002.yaml" job3="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test003.yaml" job4="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test004.yaml" +job5="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test007.yaml" +job5="${SHARNESS_TEST_SRCDIR}/data/resource/jobspecs/update/test008.yaml" grugs="${SHARNESS_TEST_SRCDIR}/data/resource/grugs/tiny.graphml" +rv1exec_graph="${SHARNESS_TEST_SRCDIR}/data/resource/rv1exec/tiny_rv1exec.json" query="../../resource/utilities/resource-query" test001_desc="match-allocate/update-allocate result in same output" @@ -24,10 +27,10 @@ EOF cat 001.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds001_ && cat >upd_cmds001 <<-EOF && - update allocate cmds001_aa.json 1 0 3600 - update allocate cmds001_ab.json 2 0 3600 - update allocate cmds001_ac.json 3 0 3600 - update allocate cmds001_ad.json 4 0 3600 + update allocate jgf cmds001_aa.json 1 0 3600 + update allocate jgf cmds001_ab.json 2 0 3600 + update allocate jgf cmds001_ac.json 3 0 3600 + update allocate jgf cmds001_ad.json 4 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 001.R.out2 < upd_cmds001 && @@ -47,9 +50,9 @@ EOF cat 002.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds002_ && cat >upd_cmds002 <<-EOF && - update allocate cmds002_aa.json 1 0 3600 + update allocate jgf cmds002_aa.json 1 0 3600 match allocate ${unit_job} - update allocate cmds002_ac.json 3 0 3600 + update allocate jgf cmds002_ac.json 3 0 3600 match allocate ${unit_job} quit EOF @@ -76,16 +79,16 @@ EOF cat 003.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds003_ && cat >upd_cmds003 <<-EOF && - update allocate cmds003_aa.json 1 0 3600 - update allocate cmds003_ab.json 2 0 3600 - update allocate cmds003_ac.json 3 0 3600 - update allocate cmds003_ad.json 4 0 3600 - update reserve cmds003_ae.json 5 3600 3600 - update reserve cmds003_af.json 6 3600 3600 - update reserve cmds003_ag.json 7 3600 3600 - update reserve cmds003_ah.json 8 3600 3600 - update reserve cmds003_ai.json 9 7200 3600 - update reserve cmds003_aj.json 10 7200 3600 + update allocate jgf cmds003_aa.json 1 0 3600 + update allocate jgf cmds003_ab.json 2 0 3600 + update allocate jgf cmds003_ac.json 3 0 3600 + update allocate jgf cmds003_ad.json 4 0 3600 + update reserve jgf cmds003_ae.json 5 3600 3600 + update reserve jgf cmds003_af.json 6 3600 3600 + update reserve jgf cmds003_ag.json 7 3600 3600 + update reserve jgf cmds003_ah.json 8 3600 3600 + update reserve jgf cmds003_ai.json 9 7200 3600 + update reserve jgf cmds003_aj.json 10 7200 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 003.R.out2 < upd_cmds003 && @@ -111,16 +114,16 @@ EOF cat 004.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds004_ && cat >upd_cmds004 <<-EOF && - update allocate cmds004_aa.json 1 0 3600 - update allocate cmds004_ab.json 2 0 3600 - update allocate cmds004_ac.json 3 0 3600 + update allocate jgf cmds004_aa.json 1 0 3600 + update allocate jgf cmds004_ab.json 2 0 3600 + update allocate jgf cmds004_ac.json 3 0 3600 match allocate_orelse_reserve ${unit_job} - update reserve cmds004_ae.json 5 3600 3600 - update reserve cmds004_af.json 6 3600 3600 + update reserve jgf cmds004_ae.json 5 3600 3600 + update reserve jgf cmds004_af.json 6 3600 3600 match allocate_orelse_reserve ${unit_job} - update reserve cmds004_ah.json 8 3600 3600 + update reserve jgf cmds004_ah.json 8 3600 3600 match allocate_orelse_reserve ${unit_job} - update reserve cmds004_aj.json 10 7200 3600 + update reserve jgf cmds004_aj.json 10 7200 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 004.R.out2 < upd_cmds004 && @@ -148,18 +151,18 @@ EOF cat 005.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds005_ && cat >upd_cmds005 <<-EOF && - update allocate cmds005_aa.json 1 0 3600 - update allocate cmds005_ab.json 2 0 3600 - update allocate cmds005_ac.json 3 0 3600 - update allocate cmds005_ad.json 4 0 3600 - update reserve cmds005_ae.json 5 3600 3600 + update allocate jgf cmds005_aa.json 1 0 3600 + update allocate jgf cmds005_ab.json 2 0 3600 + update allocate jgf cmds005_ac.json 3 0 3600 + update allocate jgf cmds005_ad.json 4 0 3600 + update reserve jgf cmds005_ae.json 5 3600 3600 cancel 4 - update reserve cmds005_af.json 6 0 3600 - update reserve cmds005_ag.json 7 3600 3600 - update reserve cmds005_ah.json 8 3600 3600 + update reserve jgf cmds005_af.json 6 0 3600 + update reserve jgf cmds005_ag.json 7 3600 3600 + update reserve jgf cmds005_ah.json 8 3600 3600 cancel 6 - update reserve cmds005_ai.json 9 0 3600 - update reserve cmds005_aj.json 10 3600 3600 + update reserve jgf cmds005_ai.json 9 0 3600 + update reserve jgf cmds005_aj.json 10 3600 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 005.R.out2 < upd_cmds005 && @@ -187,10 +190,10 @@ split -l 1 --additional-suffix=".json" - cmds006_ && match allocate ${unit_job} match allocate ${unit_job} match allocate ${unit_job} - update allocate cmds006_aa.json 1 0 3600 - update allocate cmds006_ab.json 2 0 3600 - update allocate cmds006_ac.json 3 0 3600 - update allocate cmds006_ad.json 4 0 3600 + update allocate jgf cmds006_aa.json 1 0 3600 + update allocate jgf cmds006_ab.json 2 0 3600 + update allocate jgf cmds006_ac.json 3 0 3600 + update allocate jgf cmds006_ad.json 4 0 3600 cancel 1 cancel 3 match allocate ${unit_job} @@ -218,10 +221,10 @@ split -l 1 --additional-suffix=".json" - cmds007_ && match allocate ${unit_job} match allocate ${unit_job} match allocate ${unit_job} - update allocate cmds007_aa.json 5 0 3600 - update allocate cmds007_ab.json 6 0 3600 - update allocate cmds007_ac.json 7 0 3600 - update allocate cmds007_ad.json 8 0 3600 + update allocate jgf cmds007_aa.json 5 0 3600 + update allocate jgf cmds007_ab.json 6 0 3600 + update allocate jgf cmds007_ac.json 7 0 3600 + update allocate jgf cmds007_ad.json 8 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 007.R.out2 < upd_cmds007 && @@ -251,7 +254,7 @@ EOF split -l 1 --additional-suffix=".json" - cmds008_ && cat >upd_cmds008 <<-EOF && match allocate ${unit_job} - update allocate cmds008_aa.json 2 0 3600 + update allocate jgf cmds008_aa.json 2 0 3600 match allocate ${unit_job} match allocate ${unit_job} match allocate ${unit_job} @@ -262,7 +265,7 @@ EOF cat 008.R.out2 | grep -v INFO > 008.R.out2.filtered && test_cmp 008.R.out2.filtered 008.R.out.filtered && cat >upd_cmds008.2 <<-EOF && - update allocate cmds008_aa.json 1 0 3600 + update allocate jgf cmds008_aa.json 1 0 3600 match allocate ${unit_job} match allocate ${unit_job} quit @@ -296,10 +299,10 @@ EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 009.2.R.out < cmds009.2 && cat >upd_cmds009 <<-EOF && match allocate ${job3} - update allocate cmds009_aa.json 2 0 3600 - update allocate cmds009_ab.json 3 0 3600 - update allocate cmds009_ac.json 4 0 3600 - update allocate cmds009_ad.json 5 0 3600 + update allocate jgf cmds009_aa.json 2 0 3600 + update allocate jgf cmds009_ab.json 3 0 3600 + update allocate jgf cmds009_ac.json 4 0 3600 + update allocate jgf cmds009_ad.json 5 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 009.R.out2 < upd_cmds009 && @@ -319,8 +322,8 @@ EOF cat 010.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds010_ && cat >upd_cmds010 <<-EOF && - update allocate cmds010_aa.json 1 0 3600 - update allocate cmds010_ab.json 2 0 3600 + update allocate jgf cmds010_aa.json 1 0 3600 + update allocate jgf cmds010_ab.json 2 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 010.R.out2 < upd_cmds010 && @@ -340,15 +343,61 @@ EOF cat 011.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds011_ && cat >upd_cmds011 <<-EOF && - update allocate cmds001_aa.json 1 0 3600 - update allocate cmds001_ab.json 2 0 3600 - update allocate cmds001_ac.json 3 0 3600 - update allocate cmds001_ad.json 4 0 3600 + update allocate jgf cmds001_aa.json 1 0 3600 + update allocate jgf cmds001_ab.json 2 0 3600 + update allocate jgf cmds001_ac.json 3 0 3600 + update allocate jgf cmds001_ad.json 4 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F rv1 -t 011.R.out2 < upd_cmds011 && test_cmp 011.R.out2 011.R.out ' +test012_desc="match-allocate/update-allocate result in same output for rv1exec" +test_expect_success "${test001_desc}" ' + cat >cmds012 <<-EOF && + match allocate ${job5} + match allocate ${job5} + match allocate ${job5} + match allocate ${job5} + quit +EOF + ${query} -L ${rv1exec_graph} -f rv1exec -S CA -P high -F rv1_nosched -t 012.R.out < cmds012 && + cat 012.R.out | grep -v INFO | \ +split -l 1 --additional-suffix=".json" - cmds012_ && + cat >upd_cmds012 <<-EOF && + update allocate rv1exec cmds012_aa.json 1 0 3600 + update allocate rv1exec cmds012_ab.json 2 0 3600 + update allocate rv1exec cmds012_ac.json 3 0 3600 + update allocate rv1exec cmds012_ad.json 4 0 3600 + quit +EOF + ${query} -L ${rv1exec_graph} -f rv1exec -S CA -P high -F rv1_nosched -t 012.R.out2 < upd_cmds012 && + test_cmp 012.R.out2 012.R.out +' + +test013_desc="match-allocate/update-allocate result in same output for rv1exec with gpus" +test_expect_success "${test001_desc}" ' + cat >cmds013 <<-EOF && + match allocate ${job6} + match allocate ${job6} + match allocate ${job6} + match allocate ${job6} + quit +EOF + ${query} -L ${rv1exec_graph} -f rv1exec -S CA -P high -F rv1_nosched -t 013.R.out < cmds013 && + cat 013.R.out | grep -v INFO | \ +split -l 1 --additional-suffix=".json" - cmds013_ && + cat >upd_cmds013 <<-EOF && + update allocate rv1exec cmds013_aa.json 1 0 3600 + update allocate rv1exec cmds013_ab.json 2 0 3600 + update allocate rv1exec cmds013_ac.json 3 0 3600 + update allocate rv1exec cmds013_ad.json 4 0 3600 + quit +EOF + ${query} -L ${rv1exec_graph} -f rv1exec -S CA -P high -F rv1_nosched -t 013.R.out2 < upd_cmds013 && + test_cmp 013.R.out2 013.R.out +' + test_done diff --git a/t/t3023-resource-update2.t b/t/t3023-resource-update2.t index 7193dfa29..40a0a25fb 100755 --- a/t/t3023-resource-update2.t +++ b/t/t3023-resource-update2.t @@ -22,8 +22,8 @@ EOF cat 001.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds001_ && cat >upd_cmds001 <<-EOF && - update allocate cmds001_aa.json 1 0 3600 - update allocate cmds001_ab.json 2 0 3600 + update allocate jgf cmds001_aa.json 1 0 3600 + update allocate jgf cmds001_ab.json 2 0 3600 quit EOF ${query} -L ${grugs} -S CA -P high -F jgf -t 001.R.out2 < upd_cmds001 && @@ -41,8 +41,8 @@ EOF cat 002.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds002_ && cat >upd_cmds002 <<-EOF && - update allocate cmds002_aa.json 1 0 3600 - update allocate cmds002_ab.json 2 0 3600 + update allocate jgf cmds002_aa.json 1 0 3600 + update allocate jgf cmds002_ab.json 2 0 3600 quit EOF ${query} -L ${grugs} -S PA -P high -F jgf -t 002.R.out2 < upd_cmds002 && @@ -60,7 +60,7 @@ EOF cat 003.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds003_ && cat >upd_cmds003 <<-EOF && - update allocate cmds003_aa.json 1 0 3600 + update allocate jgf cmds003_aa.json 1 0 3600 match allocate ${job5} match allocate ${job5} quit @@ -80,7 +80,7 @@ EOF cat 004.R.out | grep -v INFO | \ split -l 1 --additional-suffix=".json" - cmds004_ && cat >upd_cmds004 <<-EOF && - update allocate cmds004_aa.json 1 0 3600 + update allocate jgf cmds004_aa.json 1 0 3600 match allocate ${job5} match allocate ${job5} cancel 1