summaryrefslogtreecommitdiff
path: root/tests-clar/clar_libgit2.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests-clar/clar_libgit2.c')
-rw-r--r--tests-clar/clar_libgit2.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/tests-clar/clar_libgit2.c b/tests-clar/clar_libgit2.c
index 63efd5954..698aa90f0 100644
--- a/tests-clar/clar_libgit2.c
+++ b/tests-clar/clar_libgit2.c
@@ -86,14 +86,18 @@ int cl_setenv(const char *name, const char *value)
git__utf8_to_16(name_utf16, GIT_WIN_PATH, name);
- if (value != NULL)
+ if (value) {
git__utf8_to_16(value_utf16, GIT_WIN_PATH, value);
+ cl_assert(SetEnvironmentVariableW(name_utf16, value_utf16));
+ } else {
+ /* Windows XP returns 0 (failed) when passing NULL for lpValue when
+ * lpName does not exist in the environment block. This behavior
+ * seems to have changed in later versions. Don't check return value
+ * of SetEnvironmentVariable when passing NULL for lpValue.
+ */
+ SetEnvironmentVariableW(name_utf16, NULL);
+ }
- /* Windows XP returns 0 (failed) when passing NULL for lpValue when lpName
- * does not exist in the environment block. This behavior seems to have changed
- * in later versions. Don't fail when SetEnvironmentVariable fails, if we passed
- * NULL for lpValue. */
- cl_assert(SetEnvironmentVariableW(name_utf16, value ? value_utf16 : NULL) || !value);
return 0;
}