git/t/t9834-git-p4-file-dir-bug.sh
Patrick Steinhardt 63ee933383 t98xx: mark Perforce tests as memory-leak free
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>
2024-07-31 10:05:18 -07:00

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