{"thread":{"id":"580","subject":"[PATCH] Tests for env variable rename and update-cache f/d conflicts.","startedAt":"2005-05-12T08:06:56Z","lastAt":"2005-05-12T08:06:56Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"3124","messageId":"7vu0l8j2an.fsf@assigned-by-dhcp.cox.net","threadId":"580","inReplyTo":null,"subject":"[PATCH] Tests for env variable rename and update-cache f/d conflicts.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-05-12T08:06:56Z","receivedAt":"2005-05-12T08:06:56Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"These are test cases to prevent regression from happening for\nthe recent two changes we made.  They depend on the test suite\ninfrastructure I have sent in earlier.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n---\n\nt/t0100-environment-names.sh |   82 +++++++++++++++++++++++++++++++++++++++++++\nt/t0200-update-cache.sh      |   46 ++++++++++++++++++++++++\n2 files changed, 128 insertions(+)\n\nCreated: t/t0100-environment-names.sh (mode:100755)\n--- /dev/null\n+++ b/t/t0100-environment-names.sh\n@@ -0,0 +1,82 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2005 Junio C Hamano\n+#\n+\n+. ./test-lib.sh\n+test_description \"$@\" 'general environment name warning test.\n+\n+This test makes sure that use of deprecated environment variables\n+trigger the warnings from gitenv().'\n+\n+env_vars='GIT_AUTHOR_DATE:AUTHOR_DATE\n+GIT_AUTHOR_EMAIL:AUTHOR_EMAIL\n+GIT_AUTHOR_NAME:AUTHOR_NAME\n+GIT_COMMITTER_EMAIL:COMMIT_AUTHOR_EMAIL\n+GIT_COMMITTER_NAME:COMMIT_AUTHOR_NAME\n+GIT_ALTERNATE_OBJECT_DIRECTORIES:SHA1_FILE_DIRECTORIES\n+GIT_OBJECT_DIRECTORY:SHA1_FILE_DIRECTORY'\n+\n+export_them () {\n+\tfor ev in $env_vars\n+\tdo\n+\t\tnew=$(expr \"$ev\" : '\\(.*\\):')\n+\t\told=$(expr \"$ev\" : '.*:\\(.*\\)')\n+\t\t# Build and eval the following:\n+\t\t# case \"${VAR+set}\" in set) export VAR;; esac\n+\t\tevstr='case \"${'$new'+set}\" in set) export '$new';; esac'\n+\t\teval \"$evstr\"\n+\t\tevstr='case \"${'$old'+set}\" in set) export '$old';; esac'\n+\t\teval \"$evstr\"\n+\tdone\n+}\n+\n+date >path0\n+git-update-cache --add path0\n+tree=$(git-write-tree)\n+\n+AUTHOR_DATE='Wed May 11 23:55:18 2005'\n+AUTHOR_EMAIL='author@example.xz'\n+AUTHOR_NAME='A U Thor'\n+COMMIT_AUTHOR_EMAIL='author@example.xz'\n+COMMIT_AUTHOR_NAME='A U Thor'\n+SHA1_FILE_DIRECTORY=.git/objects\n+\n+export_them\n+\n+test_debug 'echo with only old variables exported.'\n+\n+echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg\n+cat >expected-err <<\\EOF\n+warning: Attempting to use SHA1_FILE_DIRECTORY\n+warning: GIT environment variables have been renamed.\n+warning: Please adjust your scripts and environment.\n+warning: old AUTHOR_DATE => new GIT_AUTHOR_DATE\n+warning: old AUTHOR_EMAIL => new GIT_AUTHOR_EMAIL\n+warning: old AUTHOR_NAME => new GIT_AUTHOR_NAME\n+warning: old COMMIT_AUTHOR_EMAIL => new GIT_COMMITTER_EMAIL\n+warning: old COMMIT_AUTHOR_NAME => new GIT_COMMITTER_NAME\n+warning: old SHA1_FILE_DIRECTORY => new GIT_OBJECT_DIRECTORY\n+EOF\n+sed -ne '/^warning: /p' <errmsg >generated-err\n+test_debug 'cat errmsg'\n+test_expect_success 'cmp generated-err expected-err'\n+\n+test_debug 'echo with new variables exported.'\n+\n+for ev in $env_vars\n+do\n+\tnew=$(expr \"$ev\" : '\\(.*\\):')\n+\told=$(expr \"$ev\" : '.*:\\(.*\\)')\n+\t# Build and eval the following:\n+\t# NEWENV=$OLDENV\n+\tevstr=\"$new=\\$$old\"\n+\teval \"$evstr\"\n+done\n+export_them\n+echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg\n+sed -ne '/^warning: /p' <errmsg >generated-err\n+test_debug 'cat errmsg'\n+test_expect_success 'cmp generated-err /dev/null'\n+\n+test_done\nCreated: t/t0200-update-cache.sh (mode:100755)\n--- /dev/null\n+++ b/t/t0200-update-cache.sh\n@@ -0,0 +1,46 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2005 Junio C Hamano\n+#\n+\n+. ./test-lib.sh\n+test_description \"$@\" 'git-update-cache nonsense-path test.\n+\n+This test creates the following structure in the cache:\n+\n+    path0       - a file\n+    path1       - a symlink\n+    path2/file2 - a file in a directory\n+    path3/file3 - a file in a directory\n+\n+and tries to git-update-cache --add the following:\n+\n+    path0/file0 - a file in a directory\n+    path1/file1 - a file in a directory\n+    path2       - a file\n+    path3       - a symlink\n+\n+All of the attempts should fail.\n+'\n+\n+mkdir path2 path3\n+date >path0\n+ln -s xyzzy path1\n+date >path2/file2\n+date >path3/file3\n+\n+git-update-cache --add -- path0 path1 path2/file2 path3/file3\n+\n+rm -fr path?\n+\n+mkdir path0 path1\n+date >path2\n+ln -s frotz path3\n+date >path0/file0\n+date >path1/file1\n+\n+for p in path0/file0 path1/file1 path2 path3\n+do\n+\ttest_expect_failure \"git-update-cache --add -- $p\"\n+done\n+test_done\n\n"}]}