From c67e02eeda5233db99dfa547468c0e6d26ac3c55 Mon Sep 17 00:00:00 2001 From: dubo-dubon-duponey Date: Fri, 15 Jan 2021 16:24:17 -0800 Subject: [PATCH] MOAR TESTS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tests for load - fixed a few typos in “copy” tests - provisional tests for mount - adding a “concurrency” test Signed-off-by: dubo-dubon-duponey --- .gitignore | 1 + examples/tests/copy/valid/script/main.cue | 2 +- examples/tests/export/concurrency/main.cue | 241 ++++++++++++++++++ examples/tests/fetch-container/exist/main.cue | 2 - examples/tests/load/invalid/cache/main.cue | 37 +++ examples/tests/load/valid/component/main.cue | 57 +++++ examples/tests/load/valid/script/main.cue | 20 ++ examples/tests/mounts/valid/cache/main.cue | 27 ++ .../tests/mounts/valid/component/main.cue | 33 +++ examples/tests/mounts/valid/script/main.cue | 33 +++ examples/tests/mounts/valid/tmpfs/main.cue | 27 ++ examples/tests/test.sh | 40 ++- 12 files changed, 510 insertions(+), 10 deletions(-) create mode 100644 .gitignore create mode 100644 examples/tests/export/concurrency/main.cue create mode 100644 examples/tests/load/invalid/cache/main.cue create mode 100644 examples/tests/load/valid/component/main.cue create mode 100644 examples/tests/load/valid/script/main.cue create mode 100644 examples/tests/mounts/valid/cache/main.cue create mode 100644 examples/tests/mounts/valid/component/main.cue create mode 100644 examples/tests/mounts/valid/script/main.cue create mode 100644 examples/tests/mounts/valid/tmpfs/main.cue diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e43b0f98 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/examples/tests/copy/valid/script/main.cue b/examples/tests/copy/valid/script/main.cue index 48f68903..a0a5410f 100644 --- a/examples/tests/copy/valid/script/main.cue +++ b/examples/tests/copy/valid/script/main.cue @@ -11,7 +11,7 @@ test: { }, { do: "copy" - from: [{do: "fetch-container", ref: "busybox"}] + from: [{do: "fetch-container", ref: "alpine"}] src: "/etc/issue" dest: "/" }, diff --git a/examples/tests/export/concurrency/main.cue b/examples/tests/export/concurrency/main.cue new file mode 100644 index 00000000..893a725f --- /dev/null +++ b/examples/tests/export/concurrency/main.cue @@ -0,0 +1,241 @@ +package testing + +test1: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol1 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test2: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol2 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test3: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol3 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test4: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol4 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test5: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol5 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test6: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol6 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test7: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol7 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test8: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol8 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test9: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol9 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} + +test10: { + string + + #dagger: compute: [ + { + do: "fetch-container" + ref: "alpine" + }, + { + do: "exec" + args: ["sh", "-c", """ + echo lol10 > /tmp/out + """] + dir: "/" + always: true + }, + { + do: "export" + source: "/tmp/out" + format: "string" + }, + ] +} diff --git a/examples/tests/fetch-container/exist/main.cue b/examples/tests/fetch-container/exist/main.cue index 1dad8cca..641411c1 100644 --- a/examples/tests/fetch-container/exist/main.cue +++ b/examples/tests/fetch-container/exist/main.cue @@ -1,7 +1,5 @@ package testing -// XXX https://github.com/blocklayerhq/dagger/issues/10 requires that #dagger are nested under https://github.com/blocklayerhq/dagger/issues/21 makes this very hard to verify - busybox1: { #dagger: compute: [ { diff --git a/examples/tests/load/invalid/cache/main.cue b/examples/tests/load/invalid/cache/main.cue new file mode 100644 index 00000000..7e9a89c2 --- /dev/null +++ b/examples/tests/load/invalid/cache/main.cue @@ -0,0 +1,37 @@ +package testing + +test1: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "export" + source: "/etc/issue" + format: "string" + }, + ] + } +} + +test2: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "busybox"}] + }, + { + do: "export" + source: "/etc/issue" + format: "string" + }, + ] + } +} diff --git a/examples/tests/load/valid/component/main.cue b/examples/tests/load/valid/component/main.cue new file mode 100644 index 00000000..70442b41 --- /dev/null +++ b/examples/tests/load/valid/component/main.cue @@ -0,0 +1,57 @@ +package testing + +component: #dagger: compute: [{ + do: "fetch-container" + ref: "alpine" +}, { + do: "exec" + args: ["sh", "-c", """ + printf lol > /id + """] + dir: "/" +}] + +test1: { + string + + #dagger: { + compute: [ + { + do: "load" + from: component + }, + { + do: "export" + source: "/id" + format: "string" + }, + ] + } +} + +test2: { + string + + #dagger: { + compute: [ + { + do: "load" + from: #dagger: compute: [{ + do: "fetch-container" + ref: "alpine" + }, { + do: "exec" + args: ["sh", "-c", """ + printf lol > /id + """] + dir: "/" + }] + }, + { + do: "export" + source: "/id" + format: "string" + }, + ] + } +} diff --git a/examples/tests/load/valid/script/main.cue b/examples/tests/load/valid/script/main.cue new file mode 100644 index 00000000..a9ccaf6c --- /dev/null +++ b/examples/tests/load/valid/script/main.cue @@ -0,0 +1,20 @@ +package testing + + +test: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "export" + source: "/etc/issue" + format: "string" + }, + ] + } +} diff --git a/examples/tests/mounts/valid/cache/main.cue b/examples/tests/mounts/valid/cache/main.cue new file mode 100644 index 00000000..fd91825d --- /dev/null +++ b/examples/tests/mounts/valid/cache/main.cue @@ -0,0 +1,27 @@ +package testing + +test: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "exec" + args: ["sh", "-c", """ + echo "NOT SURE WHAT TO TEST YET" > /out + """] + dir: "/" + mount: something: "cache" + }, + { + do: "export" + source: "/out" + format: "string" + }, + ] + } +} diff --git a/examples/tests/mounts/valid/component/main.cue b/examples/tests/mounts/valid/component/main.cue new file mode 100644 index 00000000..cbb25b41 --- /dev/null +++ b/examples/tests/mounts/valid/component/main.cue @@ -0,0 +1,33 @@ +package testing + +test: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "exec" + args: ["sh", "-c", """ + ls -lA /lol > /out + """] + dir: "/" + mount: something: { + input: dagger: #compute: [{ + do: "fetch-container" + ref: "alpine" + }] + path: "/lol" + } + }, + { + do: "export" + source: "/out" + format: "string" + }, + ] + } +} diff --git a/examples/tests/mounts/valid/script/main.cue b/examples/tests/mounts/valid/script/main.cue new file mode 100644 index 00000000..9064da9a --- /dev/null +++ b/examples/tests/mounts/valid/script/main.cue @@ -0,0 +1,33 @@ +package testing + +test: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "exec" + args: ["sh", "-c", """ + ls -lA /lol > /out + """] + dir: "/" + mount: something: { + input: [{ + do: "fetch-container" + ref: "alpine" + }] + path: "/lol" + } + }, + { + do: "export" + source: "/out" + format: "string" + }, + ] + } +} diff --git a/examples/tests/mounts/valid/tmpfs/main.cue b/examples/tests/mounts/valid/tmpfs/main.cue new file mode 100644 index 00000000..20b46d25 --- /dev/null +++ b/examples/tests/mounts/valid/tmpfs/main.cue @@ -0,0 +1,27 @@ +package testing + +test: { + string + + #dagger: { + compute: [ + { + do: "load" + from: [{do: "fetch-container", ref: "alpine"}] + }, + { + do: "exec" + args: ["sh", "-c", """ + echo "NOT SURE WHAT TO TEST YET" > /out + """] + dir: "/" + mount: something: "tmpfs" + }, + { + do: "export" + source: "/out" + format: "string" + }, + ] + } +} diff --git a/examples/tests/test.sh b/examples/tests/test.sh index 3147f301..815d938d 100755 --- a/examples/tests/test.sh +++ b/examples/tests/test.sh @@ -102,6 +102,9 @@ test::export(){ test::one "Export: string with additional constraint success" --exit=0 --stdout='{"test":"something"}' \ "$dagger" compute "$d"/export/withvalidation + test::one "Export: many concurrent" --exit=0 \ + "$dagger" compute "$d"/export/concurrency + test::one "Export: does not pass additional validation" --exit=1 --stdout= \ "$dagger" compute "$d"/export/invalid/validation @@ -122,32 +125,55 @@ test::export(){ test::copy(){ test::one "Copy: valid components" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \ "$dagger" compute "$d"/copy/valid/component - test::one "Copy: valid script" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \ - "$dagger" compute "$d"/copy/valid/component + test::one "Copy: valid script" --exit=0 \ + "$dagger" compute "$d"/copy/valid/script disable test::one "Copy: invalid caching (FIXME https://github.com/blocklayerhq/dagger/issues/44)" --exit=1 --stdout= \ "$dagger" compute "$d"/copy/invalid/cache } +test::load(){ + test::one "Load: valid components" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \ + "$dagger" compute "$d"/load/valid/component + test::one "Load: valid script" --exit=0 \ + "$dagger" compute "$d"/load/valid/script + + test::one "Load: invalid caching (FIXME https://github.com/blocklayerhq/dagger/issues/44)" --exit=1 --stdout= \ + "$dagger" compute "$d"/load/invalid/cache +} + test::local(){ disable "" "There are no local tests right now (the feature is possibly not functioning at all: see https://github.com/blocklayerhq/dagger/issues/41)" } +test::mount(){ + disable test::one "Mount: tmpfs (FIXME https://github.com/blocklayerhq/dagger/issues/46)" --exit=0 \ + "$dagger" compute "$d"/mount/valid/tmpfs + + disable test::one "Mount: cache (FIXME https://github.com/blocklayerhq/dagger/issues/46)" --exit=0 \ + "$dagger" compute "$d"/mount/valid/cache + + disable test::one "Mount: component (FIXME https://github.com/blocklayerhq/dagger/issues/46)" --exit=0 \ + "$dagger" compute "$d"/mount/valid/component + + disable test::one "Mount: script (FIXME https://github.com/blocklayerhq/dagger/issues/46)" --exit=0 \ + "$dagger" compute "$d"/mount/valid/script +} + test::all(){ local dagger="$1" - test::local "$dagger" + test::load "$dagger" + test::mount "$dagger" + test::copy "$dagger" + test::local "$dagger" test::compute "$dagger" test::fetchcontainer "$dagger" test::fetchgit "$dagger" test::exec "$dagger" test::export "$dagger" - test::copy "$dagger" - - # TODO: exec mounts - # TODO: load } case "${1:-all}" in