mirror of
https://github.com/dokku/dokku.git
synced 2026-05-18 05:05:46 +02:00
Both helpers wrap `run /bin/bash -c "..."` with the env vars dokku plugin scripts and `plugn` need, replacing the long inline boilerplate that was duplicated across `tests/unit/resource_3.bats` and the new `core-post-extract` regression tests in the builder bats files.
132 lines
3.9 KiB
Bash
132 lines
3.9 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
create_app
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app
|
|
global_teardown
|
|
}
|
|
|
|
@test "(resource) resource:limit --process-type build (herokuish)" {
|
|
run /bin/bash -c "dokku resource:limit --memory 256m --cpu 1 --memory-swap 512m --nvidia-gpu 1 --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output "256m"
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "--memory=256m"
|
|
assert_output_contains "--cpus=1"
|
|
assert_output_contains "--memory-swap=512m"
|
|
assert_output_contains "--gpus=1"
|
|
}
|
|
|
|
@test "(resource) resource:limit --process-type build (dockerfile filters cpu and gpu)" {
|
|
run /bin/bash -c "dokku resource:limit --memory 512m --cpu 1 --nvidia-gpu 1 --memory-swap 1g --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" dockerfile
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "--memory=512m"
|
|
assert_output_contains "--memory-swap=1g"
|
|
assert_output_not_contains "--cpus="
|
|
assert_output_not_contains "--gpus="
|
|
}
|
|
|
|
@test "(resource) resource:limit --process-type build (pack/lambda emit nothing)" {
|
|
run /bin/bash -c "dokku resource:limit --memory 512m --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" pack
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_contains "--memory"
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" lambda
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_contains "--memory"
|
|
}
|
|
|
|
@test "(resource) resource:limit defaults do not leak into build trigger" {
|
|
run /bin/bash -c "dokku resource:limit --memory 128m $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_contains "--memory"
|
|
}
|
|
|
|
@test "(resource) resource:limit reservations do not apply at build time" {
|
|
run /bin/bash -c "dokku resource:reserve --memory 128m --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_contains "--memory-reservation"
|
|
assert_output_not_contains "--memory"
|
|
}
|
|
|
|
@test "(resource) DOKKU_OMIT_RESOURCE_ARGS suppresses build trigger" {
|
|
run /bin/bash -c "dokku resource:limit --memory 256m --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run_plugn_trigger DOKKU_OMIT_RESOURCE_ARGS=1 docker-args-process-build "$TEST_APP" herokuish
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_contains "--memory"
|
|
}
|
|
|
|
@test "(resource) resource:limit-clear --process-type build" {
|
|
run /bin/bash -c "dokku resource:limit --memory 256m --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output "256m"
|
|
|
|
run /bin/bash -c "dokku resource:limit-clear --process-type build $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
}
|