MOAR TESTS
- tests for load - fixed a few typos in “copy” tests - provisional tests for mount - adding a “concurrency” test Signed-off-by: dubo-dubon-duponey <dubodubonduponey+github@pm.me>
This commit is contained in:
parent
3be2865a56
commit
c67e02eeda
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.DS_Store
|
@ -11,7 +11,7 @@ test: {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
do: "copy"
|
do: "copy"
|
||||||
from: [{do: "fetch-container", ref: "busybox"}]
|
from: [{do: "fetch-container", ref: "alpine"}]
|
||||||
src: "/etc/issue"
|
src: "/etc/issue"
|
||||||
dest: "/"
|
dest: "/"
|
||||||
},
|
},
|
||||||
|
241
examples/tests/export/concurrency/main.cue
Normal file
241
examples/tests/export/concurrency/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
@ -1,7 +1,5 @@
|
|||||||
package testing
|
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: {
|
busybox1: {
|
||||||
#dagger: compute: [
|
#dagger: compute: [
|
||||||
{
|
{
|
||||||
|
37
examples/tests/load/invalid/cache/main.cue
vendored
Normal file
37
examples/tests/load/invalid/cache/main.cue
vendored
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
57
examples/tests/load/valid/component/main.cue
Normal file
57
examples/tests/load/valid/component/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
20
examples/tests/load/valid/script/main.cue
Normal file
20
examples/tests/load/valid/script/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
27
examples/tests/mounts/valid/cache/main.cue
vendored
Normal file
27
examples/tests/mounts/valid/cache/main.cue
vendored
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
33
examples/tests/mounts/valid/component/main.cue
Normal file
33
examples/tests/mounts/valid/component/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
33
examples/tests/mounts/valid/script/main.cue
Normal file
33
examples/tests/mounts/valid/script/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
27
examples/tests/mounts/valid/tmpfs/main.cue
Normal file
27
examples/tests/mounts/valid/tmpfs/main.cue
Normal file
@ -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"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -102,6 +102,9 @@ test::export(){
|
|||||||
test::one "Export: string with additional constraint success" --exit=0 --stdout='{"test":"something"}' \
|
test::one "Export: string with additional constraint success" --exit=0 --stdout='{"test":"something"}' \
|
||||||
"$dagger" compute "$d"/export/withvalidation
|
"$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= \
|
test::one "Export: does not pass additional validation" --exit=1 --stdout= \
|
||||||
"$dagger" compute "$d"/export/invalid/validation
|
"$dagger" compute "$d"/export/invalid/validation
|
||||||
|
|
||||||
@ -122,32 +125,55 @@ test::export(){
|
|||||||
test::copy(){
|
test::copy(){
|
||||||
test::one "Copy: valid components" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \
|
test::one "Copy: valid components" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \
|
||||||
"$dagger" compute "$d"/copy/valid/component
|
"$dagger" compute "$d"/copy/valid/component
|
||||||
test::one "Copy: valid script" --exit=0 --stdout='{"component":{},"test1":"lol","test2":"lol"}' \
|
test::one "Copy: valid script" --exit=0 \
|
||||||
"$dagger" compute "$d"/copy/valid/component
|
"$dagger" compute "$d"/copy/valid/script
|
||||||
|
|
||||||
disable test::one "Copy: invalid caching (FIXME https://github.com/blocklayerhq/dagger/issues/44)" --exit=1 --stdout= \
|
disable test::one "Copy: invalid caching (FIXME https://github.com/blocklayerhq/dagger/issues/44)" --exit=1 --stdout= \
|
||||||
"$dagger" compute "$d"/copy/invalid/cache
|
"$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(){
|
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)"
|
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(){
|
test::all(){
|
||||||
local dagger="$1"
|
local dagger="$1"
|
||||||
|
|
||||||
test::local "$dagger"
|
test::load "$dagger"
|
||||||
|
test::mount "$dagger"
|
||||||
|
|
||||||
|
test::copy "$dagger"
|
||||||
|
test::local "$dagger"
|
||||||
test::compute "$dagger"
|
test::compute "$dagger"
|
||||||
test::fetchcontainer "$dagger"
|
test::fetchcontainer "$dagger"
|
||||||
test::fetchgit "$dagger"
|
test::fetchgit "$dagger"
|
||||||
test::exec "$dagger"
|
test::exec "$dagger"
|
||||||
test::export "$dagger"
|
test::export "$dagger"
|
||||||
test::copy "$dagger"
|
|
||||||
|
|
||||||
# TODO: exec mounts
|
|
||||||
# TODO: load
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case "${1:-all}" in
|
case "${1:-all}" in
|
||||||
|
Reference in New Issue
Block a user