You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
#!/bin/sh |
|
# |
|
# Copyright (c) 2007 Christian Couder |
|
# |
|
test_description='Tests git-bisect run functionality' |
|
|
|
. ./test-lib.sh |
|
|
|
add_line_into_file() |
|
{ |
|
_line=$1 |
|
_file=$2 |
|
|
|
if [ -f "$_file" ]; then |
|
echo "$_line" >> $_file || return $? |
|
MSG="Add <$_line> into <$_file>." |
|
else |
|
echo "$_line" > $_file || return $? |
|
git add $_file || return $? |
|
MSG="Create file <$_file> with <$_line> inside." |
|
fi |
|
|
|
git-commit -m "$MSG" $_file |
|
} |
|
|
|
HASH1= |
|
HASH3= |
|
HASH4= |
|
|
|
test_expect_success \ |
|
'set up basic repo with 1 file (hello) and 4 commits' \ |
|
'add_line_into_file "1: Hello World" hello && |
|
add_line_into_file "2: A new day for git" hello && |
|
add_line_into_file "3: Another new day for git" hello && |
|
add_line_into_file "4: Ciao for now" hello && |
|
HASH1=$(git rev-list HEAD | tail -1) && |
|
HASH3=$(git rev-list HEAD | head -2 | tail -1) && |
|
HASH4=$(git rev-list HEAD | head -1)' |
|
|
|
# We want to automatically find the commit that |
|
# introduced "Another" into hello. |
|
test_expect_success \ |
|
'git bisect run simple case' \ |
|
'echo "#!/bin/sh" > test_script.sh && |
|
echo "grep Another hello > /dev/null" >> test_script.sh && |
|
echo "test \$? -ne 0" >> test_script.sh && |
|
chmod +x test_script.sh && |
|
git bisect start && |
|
git bisect good $HASH1 && |
|
git bisect bad $HASH4 && |
|
git bisect run ./test_script.sh > my_bisect_log.txt && |
|
grep "$HASH3 is first bad commit" my_bisect_log.txt' |
|
|
|
# |
|
# |
|
test_done |
|
|
|
|