Forráskód Böngészése

webdav: skip XML-related tests on Go 1.4.

Package webdav requires the Go standard library's encoding/xml package version
1.5 or greater.

Fixes #10904

Change-Id: Idf2915e581f4efa6f00e7701785ea258f9e1a8f4
Reviewed-on: https://go-review.googlesource.com/10243
Reviewed-by: Robert Stepanek <robert.stepanek@gmail.com>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
Nigel Tao 10 éve
szülő
commit
5273a78d60
2 módosított fájl, 26 hozzáadás és 0 törlés
  1. 22 0
      webdav/webdav.go
  2. 4 0
      webdav/xml_test.go

+ 22 - 0
webdav/webdav.go

@@ -12,12 +12,34 @@ import (
 	"errors"
 	"fmt"
 	"io"
+	"log"
 	"net/http"
 	"net/url"
 	"os"
+	"runtime"
+	"strings"
 	"time"
 )
 
+// Package webdav's XML output requires the standard library's encoding/xml
+// package version 1.5 or greater. Otherwise, it will produce malformed XML.
+//
+// As of May 2015, the Go stable release is version 1.4, so we print a message
+// to let users know that this golang.org/x/etc package won't work yet.
+//
+// This package also won't work with Go 1.3 and earlier, but making this
+// runtime version check catch all the earlier versions too, and not just
+// "1.4.x", isn't worth the complexity.
+//
+// TODO: delete this check at some point after Go 1.5 is released.
+var go1Dot4 = strings.HasPrefix(runtime.Version(), "go1.4.")
+
+func init() {
+	if go1Dot4 {
+		log.Println("package webdav requires Go version 1.5 or greater")
+	}
+}
+
 type Handler struct {
 	// FileSystem is the virtual file system.
 	FileSystem FileSystem

+ 4 - 0
webdav/xml_test.go

@@ -345,6 +345,10 @@ func TestReadPropfind(t *testing.T) {
 }
 
 func TestMultistatusWriter(t *testing.T) {
+	if go1Dot4 {
+		t.Skip("TestMultistatusWriter requires Go version 1.5 or greater")
+	}
+
 	///The "section x.y.z" test cases come from section x.y.z of the spec at
 	// http://www.webdav.org/specs/rfc4918.html
 	testCases := []struct {