- #!/usr/bin/env bash
-
- set -euo pipefail
-
- TMPDIR=$(mktemp -d "$(basename "$0").XXXXXX")
-
- function cleanup {
- rm -rf "$TMPDIR"
- }
- trap cleanup EXIT
-
- # no unittest config
- cat > "$TMPDIR/no_ut.d" <<EOF
- /+ dub.sdl:
- name "no_ut"
- targetType "library"
- +/
- void foo() {}
- EOF
- $DUB describe --single "$TMPDIR/no_ut.d" --config=unittest | grep '"targetName": "no_ut-test-library"'
- $DUB build --single "$TMPDIR/no_ut.d" --config=unittest --build=unittest
- "$TMPDIR/no_ut-test-library"
-
- # partial unittest config - targetPath only
- cat > "$TMPDIR/partial_ut.d" <<EOF
- /+ dub.sdl:
- name "partial_ut"
- targetType "library"
- configuration "unittest" {
- targetPath "bin"
- }
- +/
- void foo() {}
- EOF
- $DUB describe --single "$TMPDIR/partial_ut.d" --config=unittest | grep '"targetName": "partial_ut-test-unittest"'
- $DUB build --single "$TMPDIR/partial_ut.d" --config=unittest --build=unittest
- "$TMPDIR/bin/partial_ut-test-unittest"
-
- # partial unittest config - targetPath & targetName
- cat > "$TMPDIR/partial_ut2.d" <<EOF
- /+ dub.sdl:
- name "partial_ut2"
- targetType "library"
- configuration "unittest" {
- targetPath "bin"
- targetName "ut"
- }
- +/
- void foo() {}
- EOF
- $DUB describe --single "$TMPDIR/partial_ut2.d" --config=unittest | grep '"targetName": "ut"'
- $DUB build --single "$TMPDIR/partial_ut2.d" --config=unittest --build=unittest
- "$TMPDIR/bin/ut"
-
- # full unittest config (i.e., `executable` target type)
- cat > "$TMPDIR/full_ut.d" <<EOF
- /+ dub.sdl:
- name "full_ut"
- targetType "library"
- configuration "unittest" {
- targetType "executable"
- targetPath "bin"
- }
- +/
- void main() {}
- EOF
- $DUB describe --single "$TMPDIR/full_ut.d" --config=unittest | grep '"targetName": "full_ut"'
- $DUB build --single "$TMPDIR/full_ut.d" --config=unittest --build=unittest
- "$TMPDIR/bin/full_ut"