Relax the subject line character limit

Java class and method names are too verbose to allow useful subject
lines to fit into 50 characters, and we're frequently allowing them to
be longer anyway.  Might as well bump to 72 like the rest of the
commit message.

Change-Id: I90503508e0b1f6230c7643b3e109e9902eb2cf8f
diff --git a/lint/lint.go b/lint/lint.go
index a3931ab..0d48050 100644
--- a/lint/lint.go
+++ b/lint/lint.go
@@ -150,14 +150,11 @@
 		l.comment("/COMMIT_MSG", line+6, "warning", message)
 	}
 
-	if len(commitmsg) >= 1 && len(commitmsg[0]) > 50 {
-		warn(1, "Subject line should be 50 characters or fewer.")
-	}
 	if len(commitmsg) >= 3 && len(commitmsg[1]) > 0 {
 		warn(2, "Subject line and body should be separated by a blank line.")
 	}
 	for i, line := range commitmsg {
-		if i >= 2 && len(line) > 72 {
+		if i != 1 && len(line) > 72 {
 			warn(i+1, "Commit message lines should be 72 characters or fewer.")
 			break
 		}
diff --git a/lint/lint_test.go b/lint/lint_test.go
new file mode 100644
index 0000000..ac1fc3b
--- /dev/null
+++ b/lint/lint_test.go
@@ -0,0 +1,81 @@
+/*
+Copyright 2013 Google Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package lint
+
+import (
+	"fmt"
+	"strings"
+	"testing"
+
+	"gwt.googlesource.com/buildglue.git/gerrit"
+)
+
+func checkEqual(t *testing.T, expect, actual interface{}) {
+	if fmt.Sprintf("%#v", expect) != fmt.Sprintf("%#v", actual) {
+		t.Errorf("expect %#v, actual %#v", expect, actual)
+	}
+}
+
+func TestCheckMessage(t *testing.T) {
+	type testcase struct {
+		message []string
+		warnings []gerrit.Comment
+	}
+	tests := []testcase {
+		{
+			message: []string{
+				strings.Repeat("x", 60),
+				"",
+				"Change-Id: blah",
+			},
+			// No warnings
+		},
+		{
+			message: []string{
+				strings.Repeat("x", 90),
+				"",
+				"Change-Id: blah2",
+			},
+			warnings: []gerrit.Comment{
+				gerrit.Comment{
+					Line: 7,
+					Message: "[warning] Commit message lines should be 72 characters or fewer.",
+				},
+			},
+		},
+		{
+			message: []string{
+				"Subject line",
+				"No blank line",
+				"",
+				"Change-Id: blah2",
+			},
+			warnings: []gerrit.Comment{
+				gerrit.Comment{
+					Line: 8,
+					Message: "[warning] Subject line and body should be separated by a blank line.",
+				},
+			},
+		},
+	}
+
+	for _, test := range tests {
+		linter := newLinter("fakeref")
+		linter.checkMessage(test.message)
+		checkEqual(t, test.warnings, linter.comments["/COMMIT_MSG"])
+	}
+}