mirror of
https://github.com/git/git.git
synced 2024-12-13 03:44:17 +08:00
63ee933383
All the Perforce tests are free of memory leaks. This went unnoticed because most folks do not have p4 and p4d installed on their computers. Consequently, given that the prerequisites for running those tests aren't fulfilled, `TEST_PASSES_SANITIZE_LEAK=check` won't notice that those tests are indeed memory leak free. Mark those tests accordingly. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
72 lines
2.4 KiB
Bash
Executable File
72 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git p4 directory/file bug handling
|
|
|
|
This test creates files and directories with the same name in perforce and
|
|
checks that git-p4 recovers from the error at the same time as the perforce
|
|
repository.'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./lib-git-p4.sh
|
|
|
|
test_expect_success 'start p4d' '
|
|
start_p4d &&
|
|
{ p4 configure set submit.collision.check=0 || :; }
|
|
'
|
|
|
|
test_expect_success 'init depot' '
|
|
(
|
|
cd "$cli" &&
|
|
|
|
touch add_file_add_dir_del_file add_file_add_dir_del_dir &&
|
|
p4 add add_file_add_dir_del_file add_file_add_dir_del_dir &&
|
|
mkdir add_dir_add_file_del_file add_dir_add_file_del_dir &&
|
|
touch add_dir_add_file_del_file/file add_dir_add_file_del_dir/file &&
|
|
p4 add add_dir_add_file_del_file/file add_dir_add_file_del_dir/file &&
|
|
p4 submit -d "add initial" &&
|
|
|
|
rm -f add_file_add_dir_del_file add_file_add_dir_del_dir &&
|
|
mkdir add_file_add_dir_del_file add_file_add_dir_del_dir &&
|
|
touch add_file_add_dir_del_file/file add_file_add_dir_del_dir/file &&
|
|
p4 add add_file_add_dir_del_file/file add_file_add_dir_del_dir/file &&
|
|
rm -rf add_dir_add_file_del_file add_dir_add_file_del_dir &&
|
|
touch add_dir_add_file_del_file add_dir_add_file_del_dir &&
|
|
p4 add add_dir_add_file_del_file add_dir_add_file_del_dir &&
|
|
p4 submit -d "add conflicting" &&
|
|
|
|
p4 delete -k add_file_add_dir_del_file &&
|
|
p4 delete -k add_file_add_dir_del_dir/file &&
|
|
p4 delete -k add_dir_add_file_del_file &&
|
|
p4 delete -k add_dir_add_file_del_dir/file &&
|
|
p4 submit -d "delete conflicting" &&
|
|
|
|
p4 delete -k "add_file_add_dir_del_file/file" &&
|
|
p4 delete -k "add_file_add_dir_del_dir" &&
|
|
p4 delete -k "add_dir_add_file_del_file/file" &&
|
|
p4 delete -k "add_dir_add_file_del_dir" &&
|
|
p4 submit -d "delete remaining"
|
|
)
|
|
'
|
|
|
|
test_expect_success 'clone with git-p4' '
|
|
git p4 clone --dest="$git" //depot/@1,3
|
|
'
|
|
|
|
test_expect_success 'check contents' '
|
|
test_path_is_dir "$git/add_file_add_dir_del_file" &&
|
|
test_path_is_file "$git/add_file_add_dir_del_dir" &&
|
|
test_path_is_dir "$git/add_dir_add_file_del_file" &&
|
|
test_path_is_file "$git/add_dir_add_file_del_dir"
|
|
'
|
|
|
|
test_expect_success 'rebase and check empty' '
|
|
git -C "$git" p4 rebase &&
|
|
|
|
test_path_is_missing "$git/add_file_add_dir_del_file" &&
|
|
test_path_is_missing "$git/add_file_add_dir_del_dir" &&
|
|
test_path_is_missing "$git/add_dir_add_file_del_file" &&
|
|
test_path_is_missing "$git/add_dir_add_file_del_dir"
|
|
'
|
|
|
|
test_done
|