From: Pete Wyckoff <pw@padd.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 07/11] git p4 test: do not pollute /tmp
Date: Tue, 21 Jan 2014 18:16:44 -0500 [thread overview]
Message-ID: <1390346208-9207-8-git-send-email-pw@padd.com> (raw)
In-Reply-To: <1390346208-9207-1-git-send-email-pw@padd.com>
Generating the submit template for p4 uses tempfile.mkstemp(),
which by default puts files in /tmp. For a test that fails,
possibly on purpose, this is not cleaned up. Run with TMPDIR
pointing into the trash directory so the temp files go away
with the test results.
To do this required some other minor changes. First, the editor
is launched using system(editor + " " + template_file), using
shell expansion to build the command string. This doesn't work
if editor has a space in it. And is generally unwise as it's
easy to fool the shell into doing extra work. Exec the args
directly, without shell expansion.
Second, without shell expansion, the trick of "P4EDITOR=:" used
in the tests doesn't work. Use a real command, true, as the
non-interactive editor for testing.
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
git-p4.py | 2 +-
t/lib-git-p4.sh | 8 +++++++-
t/t9805-git-p4-skip-submit-edit.sh | 6 ++++--
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index e798ecf..a4414b5 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1220,7 +1220,7 @@ class P4Submit(Command, P4UserMap):
editor = os.environ.get("P4EDITOR")
else:
editor = read_pipe("git var GIT_EDITOR").strip()
- system(editor + " " + template_file)
+ system([editor, template_file])
# If the file was not saved, prompt to see if this patch should
# be skipped. But skip this verification step if configured so.
diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
index 4ff2bb1..5aa8adc 100644
--- a/t/lib-git-p4.sh
+++ b/t/lib-git-p4.sh
@@ -48,7 +48,7 @@ P4DPORT=$((10669 + ($testid - $git_p4_test_start)))
P4PORT=localhost:$P4DPORT
P4CLIENT=client
P4USER=author
-P4EDITOR=:
+P4EDITOR=true
unset P4CHARSET
export P4PORT P4CLIENT P4USER P4EDITOR P4CHARSET
@@ -57,6 +57,12 @@ cli="$TRASH_DIRECTORY/cli"
git="$TRASH_DIRECTORY/git"
pidfile="$TRASH_DIRECTORY/p4d.pid"
+# git p4 submit generates a temp file, which will
+# not get cleaned up if the submission fails. Don't
+# clutter up /tmp on the test machine.
+TMPDIR="$TRASH_DIRECTORY"
+export TMPDIR
+
start_p4d() {
mkdir -p "$db" "$cli" "$git" &&
rm -f "$pidfile" &&
diff --git a/t/t9805-git-p4-skip-submit-edit.sh b/t/t9805-git-p4-skip-submit-edit.sh
index ff2cc79..8931188 100755
--- a/t/t9805-git-p4-skip-submit-edit.sh
+++ b/t/t9805-git-p4-skip-submit-edit.sh
@@ -17,7 +17,7 @@ test_expect_success 'init depot' '
)
'
-# this works because EDITOR is set to :
+# this works because P4EDITOR is set to true
test_expect_success 'no config, unedited, say yes' '
git p4 clone --dest="$git" //depot &&
test_when_finished cleanup_git &&
@@ -90,7 +90,9 @@ test_expect_success 'no config, edited' '
cd "$git" &&
echo line >>file1 &&
git commit -a -m "change 5" &&
- P4EDITOR="" EDITOR="\"$TRASH_DIRECTORY/ed.sh\"" git p4 submit &&
+ P4EDITOR="$TRASH_DIRECTORY/ed.sh" &&
+ export P4EDITOR &&
+ git p4 submit &&
p4 changes //depot/... >wc &&
test_line_count = 5 wc
)
--
1.8.5.2.320.g99957e5
next prev parent reply other threads:[~2014-01-21 23:19 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-21 23:16 [PATCH 00/11] git p4 tests and a few bug fixes Pete Wyckoff
2014-01-21 23:16 ` [PATCH 01/11] git p4 test: wildcards are supported Pete Wyckoff
2014-01-21 23:16 ` [PATCH 02/11] git p4 test: ensure p4 symlink parsing works Pete Wyckoff
2014-01-21 23:16 ` [PATCH 03/11] git p4: work around p4 bug that causes empty symlinks Pete Wyckoff
2014-01-22 1:26 ` Eric Sunshine
2014-01-21 23:16 ` [PATCH 04/11] git p4 test: explicitly check p4 wildcard delete Pete Wyckoff
2014-01-21 23:16 ` [PATCH 05/11] git p4 test: is_cli_file_writeable succeeds Pete Wyckoff
2014-01-21 23:16 ` [PATCH 06/11] git p4 test: run as user "author" Pete Wyckoff
2014-01-22 1:26 ` Eric Sunshine
2014-01-21 23:16 ` Pete Wyckoff [this message]
2014-01-21 23:16 ` [PATCH 08/11] git p4: handle files with wildcards when doing RCS scrubbing Pete Wyckoff
2014-01-21 23:16 ` [PATCH 09/11] git p4: fix an error message when "p4 where" fails Pete Wyckoff
2014-01-21 23:16 ` [PATCH 10/11] git p4 test: examine behavior with locked (+l) files Pete Wyckoff
2014-01-21 23:16 ` [PATCH 11/11] git p4 doc: use two-line style for options with multiple spellings Pete Wyckoff
2014-01-22 0:03 ` [PATCH 00/11] git p4 tests and a few bug fixes Junio C Hamano
2014-01-22 22:44 ` Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 01/11] git p4 test: wildcards are supported Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 02/11] git p4 test: ensure p4 symlink parsing works Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 03/11] git p4: work around p4 bug that causes empty symlinks Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 04/11] git p4 test: explicitly check p4 wildcard delete Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 05/11] git p4 test: is_cli_file_writeable succeeds Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 06/11] git p4 test: run as user "author" Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 07/11] git p4 test: do not pollute /tmp Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 08/11] git p4: handle files with wildcards when doing RCS scrubbing Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 09/11] git p4: fix an error message when "p4 where" fails Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 10/11] git p4 test: examine behavior with locked (+l) files Pete Wyckoff
2014-01-22 22:47 ` [PATCHv2 11/11] git p4 doc: use two-line style for options with multiple spellings Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1390346208-9207-8-git-send-email-pw@padd.com \
--to=pw@padd.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).