From 66581c19349ef3398bdc8c9ed876ce28de4b5158 Mon Sep 17 00:00:00 2001 From: Valentin Reis Date: Thu, 13 Jun 2019 12:00:00 -0500 Subject: [PATCH] Adding dhrun golden tests --- dhrun/all-tests.dh | 40 ++++++------- dhrun/check_golden.sh | 18 ++++++ dhrun/golden/amg.yaml | 109 ++++++++++++++++++++++++++++++++++ dhrun/golden/exitcode.yaml | 63 ++++++++++++++++++++ dhrun/golden/hello.yaml | 65 ++++++++++++++++++++ dhrun/golden/lammps.yaml | 101 +++++++++++++++++++++++++++++++ dhrun/golden/listen.yaml | 88 +++++++++++++++++++++++++++ dhrun/golden/openmc.yaml | 99 ++++++++++++++++++++++++++++++ dhrun/golden/performance.yaml | 89 +++++++++++++++++++++++++++ dhrun/golden/power.yaml | 89 +++++++++++++++++++++++++++ dhrun/golden/pwd.yaml | 64 ++++++++++++++++++++ dhrun/golden/qmcpack.yaml | 97 ++++++++++++++++++++++++++++++ dhrun/golden/run.yaml | 63 ++++++++++++++++++++ dhrun/golden/stream.yaml | 98 ++++++++++++++++++++++++++++++ dhrun/replace_golden.sh | 16 +++++ 15 files changed, 1079 insertions(+), 20 deletions(-) create mode 100644 dhrun/check_golden.sh create mode 100644 dhrun/golden/amg.yaml create mode 100644 dhrun/golden/exitcode.yaml create mode 100644 dhrun/golden/hello.yaml create mode 100644 dhrun/golden/lammps.yaml create mode 100644 dhrun/golden/listen.yaml create mode 100644 dhrun/golden/openmc.yaml create mode 100644 dhrun/golden/performance.yaml create mode 100644 dhrun/golden/power.yaml create mode 100644 dhrun/golden/pwd.yaml create mode 100644 dhrun/golden/qmcpack.yaml create mode 100644 dhrun/golden/run.yaml create mode 100644 dhrun/golden/stream.yaml create mode 100644 dhrun/replace_golden.sh diff --git a/dhrun/all-tests.dh b/dhrun/all-tests.dh index facbde3..8c7a23d 100644 --- a/dhrun/all-tests.dh +++ b/dhrun/all-tests.dh @@ -2,19 +2,19 @@ → λ(manifestDir : Text) → λ(isTest : Bool) → let assetDir = dataDir ++ "test_assets/" - + let types = ./dhrunlib/types.dh - + let argotypes = ./argolib/types.dh - + let argo = ./argolib/package.dh - + let message = "HelloWorld" - + let cn = "testContainer" - + let idCmd = let id = λ(a : Type) → λ(x : a) → x in id types.Cmd - + let makeExtended = λ(daemonArg : argotypes.MkDaemon) → λ(daemonOverrides : types.Cmd → types.Cmd) @@ -38,7 +38,7 @@ [] : List Text } : types.Config - + let manifests = { basic = manifestDir ++ "basic.yml" @@ -47,15 +47,15 @@ , singularity = manifestDir ++ "singularity.yml" } - + let ifTest = λ(t : Type) → λ(default : t) → λ(value : t) → if isTest then value else default - + let ifTestList = ifTest (List Text) ([] : List Text) - + let withDaemon = λ(daemonArg : argotypes.MkDaemon) → λ(runArg : argotypes.MkRun) @@ -87,12 +87,12 @@ ) ) extraCmds - + let withDaemonNoExtras = λ(runArg : argotypes.MkRun) → λ(runOverrides : types.Cmd → types.Cmd) → withDaemon argo.nrmd.defarg runArg runOverrides ([] : List types.Cmd) - + let withDaemonExtraListen = λ(filter : Text) → λ(doFilter : Bool) @@ -105,23 +105,23 @@ [ argo.listen.mk (argo.listen.defarg cn ⫽ { filter = filter, doFilter = doFilter }) ] - + let withDaemonExtraProgresstest = withDaemonExtraListen "progress" True - + let mkrun = λ(manifest : Text) → λ(name : Text) → argo.run.defarg name manifest cn - + let basicRun = mkrun manifests.basic - + let perfRun = mkrun manifests.perf - + let singularityRun = mkrun manifests.singularity - + in { run = withDaemonNoExtras (basicRun "true") idCmd , pwd = let somedir = "toto" - + in withDaemonNoExtras (basicRun "pwd" ⫽ { cmdwants = [ somedir ] : List Text }) (λ(x : types.Cmd) → x ⫽ { otherwd = [ somedir ] : Optional Text }) diff --git a/dhrun/check_golden.sh b/dhrun/check_golden.sh new file mode 100644 index 0000000..6dfe211 --- /dev/null +++ b/dhrun/check_golden.sh @@ -0,0 +1,18 @@ +check_golden () { + echo "--- START checking golden test ${1}" + diff <(dhrun print <<< "let a = ./all-tests.dh \".\" \".\" True in a.${1}") <(cat golden/${1}.yaml) + echo "--- DONE checking golden test ${1}" +} + +check_golden "run" +check_golden "pwd" +check_golden "exitcode" +check_golden "hello" +check_golden "listen" +check_golden "power" +check_golden "performance" +check_golden "qmcpack" +check_golden "openmc" +check_golden "lammps" +check_golden "amg" +check_golden "stream" diff --git a/dhrun/golden/amg.yaml b/dhrun/golden/amg.yaml new file mode 100644 index 0000000..c6bdc1a --- /dev/null +++ b/dhrun/golden/amg.yaml @@ -0,0 +1,109 @@ +pre: "toto" +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - mpiexec + - -n + - '2' + - amg + - -problem + - '2' + - -n + - '90' + - '90' + - '90' + - -P + - '2' + - '1' + - '1' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: + - value: '1' + varname: OMP_NUM_THREADS + out: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - progress + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - progress + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/exitcode.yaml b/dhrun/golden/exitcode.yaml new file mode 100644 index 0000000..a48c130 --- /dev/null +++ b/dhrun/golden/exitcode.yaml @@ -0,0 +1,63 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - 'false' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: 1 + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/hello.yaml b/dhrun/golden/hello.yaml new file mode 100644 index 0000000..d71d08a --- /dev/null +++ b/dhrun/golden/hello.yaml @@ -0,0 +1,65 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - echo + - HelloWorld + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: + - HelloWorld + avoids: + - Traceback + - ValueError + filename: nrmrun.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/lammps.yaml b/dhrun/golden/lammps.yaml new file mode 100644 index 0000000..14219de --- /dev/null +++ b/dhrun/golden/lammps.yaml @@ -0,0 +1,101 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - mpiexec + - -n + - '2' + - -bind-to + - core + - lmp_mpi + - -i + - .test_assets//modified.lj + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - progress + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - progress + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/listen.yaml b/dhrun/golden/listen.yaml new file mode 100644 index 0000000..0fdd1b2 --- /dev/null +++ b/dhrun/golden/listen.yaml @@ -0,0 +1,88 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - sleep + - '1' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - ',' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: null + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/openmc.yaml b/dhrun/golden/openmc.yaml new file mode 100644 index 0000000..31ab9e4 --- /dev/null +++ b/dhrun/golden/openmc.yaml @@ -0,0 +1,99 @@ +pre: +- cp --no-preserve=mode -r .test_assets/openmc/* . +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - mpiexec + - -n + - '2' + - openmc + postchecks: null + passvars: + - PATH + - OPENMC_CROSS_SECTIONS + name: nrm + err: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - progress + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - progress + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/performance.yaml b/dhrun/golden/performance.yaml new file mode 100644 index 0000000..d55d311 --- /dev/null +++ b/dhrun/golden/performance.yaml @@ -0,0 +1,89 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .perfwrap.yml + - sleep + - '15' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - performance + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - performance + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/power.yaml b/dhrun/golden/power.yaml new file mode 100644 index 0000000..28d9f12 --- /dev/null +++ b/dhrun/golden/power.yaml @@ -0,0 +1,89 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - sleep + - '15' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - power + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - power + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/pwd.yaml b/dhrun/golden/pwd.yaml new file mode 100644 index 0000000..ecf3d03 --- /dev/null +++ b/dhrun/golden/pwd.yaml @@ -0,0 +1,64 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: toto + args: + - run + - -u + - testContainer + - .basic.yml + - pwd + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: + - toto + avoids: + - Traceback + - ValueError + filename: nrmrun.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/qmcpack.yaml b/dhrun/golden/qmcpack.yaml new file mode 100644 index 0000000..3267945 --- /dev/null +++ b/dhrun/golden/qmcpack.yaml @@ -0,0 +1,97 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - mpiexec + - '2' + - qmcpack + - .test_assets//simple-H2O.xml + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - progress + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - progress + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/run.yaml b/dhrun/golden/run.yaml new file mode 100644 index 0000000..87d0844 --- /dev/null +++ b/dhrun/golden/run.yaml @@ -0,0 +1,63 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - 'true' + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: null + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmrun.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/golden/stream.yaml b/dhrun/golden/stream.yaml new file mode 100644 index 0000000..9956f11 --- /dev/null +++ b/dhrun/golden/stream.yaml @@ -0,0 +1,98 @@ +pre: null +verbose: true +post: null +cmds: +- otherwd: null + args: + - --nrm_log + - ./nrm_log + - --verbose + postchecks: null + passvars: + - PATH + name: nrmd + err: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.err + exitcode: null + timeout: null + vars: + - value: /tmp/argo_nodeos_config + varname: ARGO_NODEOS_CONFIG + out: + filecheck: + wants: null + avoids: + - Traceback + - ValueError + filename: nrmd.out +- otherwd: null + args: + - run + - -u + - testContainer + - .basic.yml + - stream_c + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.err + exitcode: null + timeout: 600 + vars: + - value: '2' + varname: OMP_NUM_THREADS + - value: cores + varname: OMP_PLACES + out: + filecheck: + wants: null + avoids: + - Error + - error + - ERROR + - Traceback + - ValueError + filename: nrmrun.out +- otherwd: null + args: + - listen + - -u + - testContainer + - --filter + - progress + postchecks: null + passvars: + - PATH + name: nrm + err: + filecheck: + wants: null + avoids: null + filename: nrmlisten.err + exitcode: null + timeout: null + vars: null + out: + filecheck: + wants: + - progress + avoids: null + filename: nrmlisten.out +cleaning: true +workdir: ./_output + diff --git a/dhrun/replace_golden.sh b/dhrun/replace_golden.sh new file mode 100644 index 0000000..e47afd4 --- /dev/null +++ b/dhrun/replace_golden.sh @@ -0,0 +1,16 @@ +print_golden () { + dhrun print <<< "let a = ./all-tests.dh \".\" \".\" True in a.${1}" > golden/${1}.yaml +} + +print_golden "run" +print_golden "pwd" +print_golden "exitcode" +print_golden "hello" +print_golden "listen" +print_golden "power" +print_golden "performance" +print_golden "qmcpack" +print_golden "openmc" +print_golden "lammps" +print_golden "amg" +print_golden "stream" -- 2.26.2