]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t0017-env-helper.sh
env--helper: new undocumented builtin wrapping git_env_*()
[thirdparty/git.git] / t / t0017-env-helper.sh
diff --git a/t/t0017-env-helper.sh b/t/t0017-env-helper.sh
new file mode 100755 (executable)
index 0000000..709bbbd
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+test_description='test env--helper'
+
+. ./test-lib.sh
+
+
+test_expect_success 'env--helper usage' '
+       test_must_fail git env--helper &&
+       test_must_fail git env--helper --type=bool &&
+       test_must_fail git env--helper --type=ulong &&
+       test_must_fail git env--helper --type=bool &&
+       test_must_fail git env--helper --type=bool --default &&
+       test_must_fail git env--helper --type=bool --default= &&
+       test_must_fail git env--helper --defaultxyz
+'
+
+test_expect_success 'env--helper bad default values' '
+       test_must_fail git env--helper --type=bool --default=1xyz MISSING &&
+       test_must_fail git env--helper --type=ulong --default=1xyz MISSING
+'
+
+test_expect_success 'env--helper --type=bool' '
+       # Test various --default bool values
+       echo true >expected &&
+       git env--helper --type=bool --default=1 MISSING >actual &&
+       test_cmp expected actual &&
+       git env--helper --type=bool --default=yes MISSING >actual &&
+       test_cmp expected actual &&
+       git env--helper --type=bool --default=true MISSING >actual &&
+       test_cmp expected actual &&
+       echo false >expected &&
+       test_must_fail git env--helper --type=bool --default=0 MISSING >actual &&
+       test_cmp expected actual &&
+       test_must_fail git env--helper --type=bool --default=no MISSING >actual &&
+       test_cmp expected actual &&
+       test_must_fail git env--helper --type=bool --default=false MISSING >actual &&
+       test_cmp expected actual &&
+
+       # No output with --exit-code
+       git env--helper --type=bool --default=true --exit-code MISSING >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err &&
+       test_must_fail git env--helper --type=bool --default=false --exit-code MISSING >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err &&
+
+       # Existing variable
+       EXISTS=true git env--helper --type=bool --default=false --exit-code EXISTS >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err &&
+       test_must_fail \
+               env EXISTS=false \
+               git env--helper --type=bool --default=true --exit-code EXISTS >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err
+'
+
+test_expect_success 'env--helper --type=ulong' '
+       echo 1234567890 >expected &&
+       git env--helper --type=ulong --default=1234567890 MISSING >actual.out 2>actual.err &&
+       test_cmp expected actual.out &&
+       test_must_be_empty actual.err &&
+
+       echo 0 >expected &&
+       test_must_fail git env--helper --type=ulong --default=0 MISSING >actual &&
+       test_cmp expected actual &&
+
+       git env--helper --type=ulong --default=1234567890 --exit-code MISSING >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err &&
+
+       EXISTS=1234567890 git env--helper --type=ulong --default=0 EXISTS --exit-code >actual.out 2>actual.err &&
+       test_must_be_empty actual.out &&
+       test_must_be_empty actual.err &&
+
+       echo 1234567890 >expected &&
+       EXISTS=1234567890 git env--helper --type=ulong --default=0 EXISTS >actual.out 2>actual.err &&
+       test_cmp expected actual.out &&
+       test_must_be_empty actual.err
+'
+
+test_done