git-commit-vandalism/t/t1100-commit-tree-options.sh
Ævar Arnfjörð Bjarmason 7ff24785cb leak tests: mark some misc tests as passing with SANITIZE=leak
Mark some tests that match "*{mktree,commit,diff,grep,rm,merge,hunk}*"
as passing when git is compiled with SANITIZE=leak. They'll now be
listed as running under the "GIT_TEST_PASSING_SANITIZE_LEAK=true" test
mode (the "linux-leaks" CI target).

These were picked because we still have a lot of failures in adjacent
areas, and we didn't have much if any coverage of e.g. grep and diff
before this change, we could still whitelist a lot more tests, but
let's stop for now.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-10-12 18:23:24 -07:00

65 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 2005 Rene Scharfe
#
test_description='git commit-tree options test
This test checks that git commit-tree can create a specific commit
object by defining all environment variables that it understands.
Also make sure that command line parser understands the normal
"flags first and then non flag arguments" command line.
'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
cat >expected <<EOF
tree $EMPTY_TREE
author Author Name <author@email> 1117148400 +0000
committer Committer Name <committer@email> 1117150200 +0000
comment text
EOF
test_expect_success \
'test preparation: write empty tree' \
'git write-tree >treeid'
test_expect_success \
'construct commit' \
'echo comment text |
GIT_AUTHOR_NAME="Author Name" \
GIT_AUTHOR_EMAIL="author@email" \
GIT_AUTHOR_DATE="2005-05-26 23:00" \
GIT_COMMITTER_NAME="Committer Name" \
GIT_COMMITTER_EMAIL="committer@email" \
GIT_COMMITTER_DATE="2005-05-26 23:30" \
TZ=GMT git commit-tree $(cat treeid) >commitid 2>/dev/null'
test_expect_success \
'read commit' \
'git cat-file commit $(cat commitid) >commit'
test_expect_success \
'compare commit' \
'test_cmp expected commit'
test_expect_success 'flags and then non flags' '
test_tick &&
echo comment text |
git commit-tree $(cat treeid) >commitid &&
echo comment text |
git commit-tree $(cat treeid) -p $(cat commitid) >childid-1 &&
echo comment text |
git commit-tree -p $(cat commitid) $(cat treeid) >childid-2 &&
test_cmp childid-1 childid-2 &&
git commit-tree $(cat treeid) -m foo >childid-3 &&
git commit-tree -m foo $(cat treeid) >childid-4 &&
test_cmp childid-3 childid-4
'
test_done