git-codereview: cleanup tmp directory if newGitTest fails.

This sets up a deferred os.RemoveAll call that runs only if
newGitTest fails to return a gitTest instance.

Change-Id: I62814e47d2cf152e3b5fcb3dd07da8df2fb63091
Reviewed-on: https://go-review.googlesource.com/2900
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/git-codereview/util_test.go b/git-codereview/util_test.go
index 76a835d..42be911 100644
--- a/git-codereview/util_test.go
+++ b/git-codereview/util_test.go
@@ -73,11 +73,16 @@
 	trun(t, gt.client, "git", "commit", "-m", fmt.Sprintf("msg\n\nChange-Id: I%d23456789\n", gt.nwork))
 }
 
-func newGitTest(t *testing.T) *gitTest {
+func newGitTest(t *testing.T) (gt *gitTest) {
 	tmpdir, err := ioutil.TempDir("", "git-codereview-test")
 	if err != nil {
 		t.Fatal(err)
 	}
+	defer func() {
+		if gt == nil {
+			os.RemoveAll(tmpdir)
+		}
+	}()
 
 	server := tmpdir + "/git-origin"
 
@@ -125,14 +130,12 @@
 		t.Fatal(err)
 	}
 
-	gt := &gitTest{
+	return &gitTest{
 		pwd:    pwd,
 		tmpdir: tmpdir,
 		server: server,
 		client: client,
 	}
-
-	return gt
 }
 
 func (gt *gitTest) removeStubHooks() {