From c625bf0ee80a2362ce59819ce011ee17f2a6b2ce Mon Sep 17 00:00:00 2001 From: Miguel Torroja Date: Thu, 13 Jul 2017 09:00:33 +0200 Subject: git-p4: git-p4 tests with p4 triggers Some p4 triggers in the server side generate some warnings when executed. Unfortunately those messages are mixed with the output of p4 commands. A few git-p4 commands don't expect extra messages or output lines and may fail with verbose triggers. New tests added are known to be broken. Signed-off-by: Miguel Torroja Signed-off-by: Junio C Hamano --- t/t9831-git-p4-triggers.sh | 103 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100755 t/t9831-git-p4-triggers.sh (limited to 't') diff --git a/t/t9831-git-p4-triggers.sh b/t/t9831-git-p4-triggers.sh new file mode 100755 index 000000000..28cafe469 --- /dev/null +++ b/t/t9831-git-p4-triggers.sh @@ -0,0 +1,103 @@ +#!/bin/sh + +test_description='git p4 with server triggers' + +. ./lib-git-p4.sh + +test_expect_success 'start p4d' ' + start_p4d +' + +test_expect_success 'init depot' ' + ( + cd "$cli" && + echo file1 >file1 && + p4 add file1 && + p4 submit -d "change 1" + echo file2 >file2 && + p4 add file2 && + p4 submit -d "change 2" + ) +' + +test_expect_failure 'clone with extra info lines from verbose p4 trigger' ' + test_when_finished cleanup_git && + ( + p4 triggers -i <<-EOF + Triggers: p4triggertest-command command pre-user-change "echo verbose trigger" + EOF + ) && + ( + p4 change -o | grep -s "verbose trigger" + ) && + git p4 clone --dest="$git" //depot/@all && + ( + p4 triggers -i <<-EOF + Triggers: + EOF + ) +' + +test_expect_failure 'import with extra info lines from verbose p4 trigger' ' + test_when_finished cleanup_git && + ( + cd "$cli" && + echo file3 >file3 && + p4 add file3 && + p4 submit -d "change 3" + ) && + ( + p4 triggers -i <<-EOF + Triggers: p4triggertest-command command pre-user-describe "echo verbose trigger" + EOF + ) && + ( + p4 describe 1 | grep -s "verbose trigger" + ) && + git p4 clone --dest="$git" //depot/@all && + ( + cd "$git" && + git p4 sync + )&& + ( + p4 triggers -i <<-EOF + Triggers: + EOF + ) +' + +test_expect_failure 'submit description with extra info lines from verbose p4 change trigger' ' + test_when_finished cleanup_git && + ( + p4 triggers -i <<-EOF + Triggers: p4triggertest-command command pre-user-change "echo verbose trigger" + EOF + ) && + ( + p4 change -o | grep -s "verbose trigger" + ) && + git p4 clone --dest="$git" //depot && + ( + cd "$git" && + git config git-p4.skipSubmitEdit true && + echo file4 >file4 && + git add file4 && + git commit -m file4 && + git p4 submit + ) && + ( + p4 triggers -i <<-EOF + Triggers: + EOF + ) && + ( + cd "$cli" && + test_path_is_file file4 + ) +' + +test_expect_success 'kill p4d' ' + kill_p4d +' + +test_done -- cgit v1.2.1 From b596b3b920208acb775bb632288976377636ccd1 Mon Sep 17 00:00:00 2001 From: Miguel Torroja Date: Thu, 13 Jul 2017 09:00:34 +0200 Subject: git-p4: parse marshal output "p4 -G" in p4 changes The option -G of p4 (python marshal output) gives more context about the data being output. That's useful when using the command "change -o" as we can distinguish between warning/error line and real change description. This fixes the case where a p4 trigger for "p4 change" is set and the command git-p4 submit is run. Signed-off-by: Miguel Torroja Signed-off-by: Junio C Hamano --- t/t9831-git-p4-triggers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't') diff --git a/t/t9831-git-p4-triggers.sh b/t/t9831-git-p4-triggers.sh index 28cafe469..871544b1c 100755 --- a/t/t9831-git-p4-triggers.sh +++ b/t/t9831-git-p4-triggers.sh @@ -66,7 +66,7 @@ test_expect_failure 'import with extra info lines from verbose p4 trigger' ' ) ' -test_expect_failure 'submit description with extra info lines from verbose p4 change trigger' ' +test_expect_success 'submit description with extra info lines from verbose p4 change trigger' ' test_when_finished cleanup_git && ( p4 triggers -i <<-EOF -- cgit v1.2.1 From 1997e91f4b36649e7e4f693ca9f35c7a6219de8c Mon Sep 17 00:00:00 2001 From: Miguel Torroja Date: Thu, 13 Jul 2017 09:00:35 +0200 Subject: git-p4: filter for {'code':'info'} in p4CmdList The function p4CmdList accepts a new argument: skip_info. When set to True it ignores any 'code':'info' entry (skip_info=False by default). That allows us to fix some of the tests in t9831-git-p4-triggers.sh known to be broken with verobse p4 triggers Signed-off-by: Miguel Torroja Signed-off-by: Junio C Hamano --- t/t9831-git-p4-triggers.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 't') diff --git a/t/t9831-git-p4-triggers.sh b/t/t9831-git-p4-triggers.sh index 871544b1c..bbcf14c66 100755 --- a/t/t9831-git-p4-triggers.sh +++ b/t/t9831-git-p4-triggers.sh @@ -20,7 +20,7 @@ test_expect_success 'init depot' ' ) ' -test_expect_failure 'clone with extra info lines from verbose p4 trigger' ' +test_expect_success 'clone with extra info lines from verbose p4 trigger' ' test_when_finished cleanup_git && ( p4 triggers -i <<-EOF @@ -38,7 +38,7 @@ test_expect_failure 'clone with extra info lines from verbose p4 trigger' ' ) ' -test_expect_failure 'import with extra info lines from verbose p4 trigger' ' +test_expect_success 'import with extra info lines from verbose p4 trigger' ' test_when_finished cleanup_git && ( cd "$cli" && -- cgit v1.2.1