git-commit-vandalism/t/t0100-environment-names.sh
Junio C Hamano 368f99d57e [PATCH 2/2] The core GIT tests: recent additions and fixes.
This set of scripts are designed to test the features and fixes
we recently added to core GIT.  The convention to call test
helper function has been changed during the framework cleanup
(take two), and these tests have been updated to use the cleaned
up test-lib.sh interface.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Note that this does not include the t2000-diff.sh script since it
tests a patch which was not applied yet.

Signed-off-by: Petr Baudis <pasky@ucw.cz>
2005-05-14 17:41:01 +02:00

85 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='general environment name warning test.
This test makes sure that use of deprecated environment variables
trigger the warnings from gitenv().'
env_vars='GIT_AUTHOR_DATE:AUTHOR_DATE
GIT_AUTHOR_EMAIL:AUTHOR_EMAIL
GIT_AUTHOR_NAME:AUTHOR_NAME
GIT_COMMITTER_EMAIL:COMMIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME:COMMIT_AUTHOR_NAME
GIT_ALTERNATE_OBJECT_DIRECTORIES:SHA1_FILE_DIRECTORIES
GIT_OBJECT_DIRECTORY:SHA1_FILE_DIRECTORY
'
. ./test-lib.sh
export_them () {
for ev in $env_vars
do
new=$(expr "$ev" : '\(.*\):')
old=$(expr "$ev" : '.*:\(.*\)')
# Build and eval the following:
# case "${VAR+set}" in set) export VAR;; esac
evstr='case "${'$new'+set}" in set) export '$new';; esac'
eval "$evstr"
evstr='case "${'$old'+set}" in set) export '$old';; esac'
eval "$evstr"
done
}
date >path0
git-update-cache --add path0
tree=$(git-write-tree)
AUTHOR_DATE='Wed May 11 23:55:18 2005'
AUTHOR_EMAIL='author@example.xz'
AUTHOR_NAME='A U Thor'
COMMIT_AUTHOR_EMAIL='author@example.xz'
COMMIT_AUTHOR_NAME='A U Thor'
SHA1_FILE_DIRECTORY=.git/objects
export_them
echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg
cat >expected-err <<\EOF
warning: Attempting to use SHA1_FILE_DIRECTORY
warning: GIT environment variables have been renamed.
warning: Please adjust your scripts and environment.
warning: old AUTHOR_DATE => new GIT_AUTHOR_DATE
warning: old AUTHOR_EMAIL => new GIT_AUTHOR_EMAIL
warning: old AUTHOR_NAME => new GIT_AUTHOR_NAME
warning: old COMMIT_AUTHOR_EMAIL => new GIT_COMMITTER_EMAIL
warning: old COMMIT_AUTHOR_NAME => new GIT_COMMITTER_NAME
warning: old SHA1_FILE_DIRECTORY => new GIT_OBJECT_DIRECTORY
EOF
sed -ne '/^warning: /p' <errmsg >generated-err
test_expect_success \
'using old names should issue warnings.' \
'cmp generated-err expected-err'
for ev in $env_vars
do
new=$(expr "$ev" : '\(.*\):')
old=$(expr "$ev" : '.*:\(.*\)')
# Build and eval the following:
# NEWENV=$OLDENV
evstr="$new=\$$old"
eval "$evstr"
done
export_them
echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg
sed -ne '/^warning: /p' <errmsg >generated-err
test_expect_success \
'using old names but having new names should not issue warnings.' \
'cmp generated-err /dev/null'
test_done