mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	Vendor in go1.5.1 dependency
* Changes to make vendored packages accept new home. * Fix go2idl to import vendored packages.
This commit is contained in:
		
							
								
								
									
										191
									
								
								third_party/golang/go/doc/example_test.go
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								third_party/golang/go/doc/example_test.go
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,191 @@ | ||||
| // Copyright 2013 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package doc_test | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"go/doc" | ||||
| 	"go/format" | ||||
| 	"go/parser" | ||||
| 	"go/token" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
| ) | ||||
|  | ||||
| const exampleTestFile = ` | ||||
| package foo_test | ||||
|  | ||||
| import ( | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"os/exec" | ||||
| ) | ||||
|  | ||||
| func ExampleHello() { | ||||
| 	fmt.Println("Hello, world!") | ||||
| 	// Output: Hello, world! | ||||
| } | ||||
|  | ||||
| func ExampleImport() { | ||||
| 	out, err := exec.Command("date").Output() | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	fmt.Printf("The date is %s\n", out) | ||||
| } | ||||
|  | ||||
| func ExampleKeyValue() { | ||||
| 	v := struct { | ||||
| 		a string | ||||
| 		b int | ||||
| 	}{ | ||||
| 		a: "A", | ||||
| 		b: 1, | ||||
| 	} | ||||
| 	fmt.Print(v) | ||||
| 	// Output: a: "A", b: 1 | ||||
| } | ||||
|  | ||||
| func ExampleKeyValueImport() { | ||||
| 	f := flag.Flag{ | ||||
| 		Name: "play", | ||||
| 	} | ||||
| 	fmt.Print(f) | ||||
| 	// Output: Name: "play" | ||||
| } | ||||
|  | ||||
| var keyValueTopDecl = struct { | ||||
| 	a string | ||||
| 	b int | ||||
| }{ | ||||
| 	a: "B", | ||||
| 	b: 2, | ||||
| } | ||||
|  | ||||
| func ExampleKeyValueTopDecl() { | ||||
| 	fmt.Print(keyValueTopDecl) | ||||
| } | ||||
| ` | ||||
|  | ||||
| var exampleTestCases = []struct { | ||||
| 	Name, Play, Output string | ||||
| }{ | ||||
| 	{ | ||||
| 		Name:   "Hello", | ||||
| 		Play:   exampleHelloPlay, | ||||
| 		Output: "Hello, world!\n", | ||||
| 	}, | ||||
| 	{ | ||||
| 		Name: "Import", | ||||
| 		Play: exampleImportPlay, | ||||
| 	}, | ||||
| 	{ | ||||
| 		Name:   "KeyValue", | ||||
| 		Play:   exampleKeyValuePlay, | ||||
| 		Output: "a: \"A\", b: 1\n", | ||||
| 	}, | ||||
| 	{ | ||||
| 		Name:   "KeyValueImport", | ||||
| 		Play:   exampleKeyValueImportPlay, | ||||
| 		Output: "Name: \"play\"\n", | ||||
| 	}, | ||||
| 	{ | ||||
| 		Name: "KeyValueTopDecl", | ||||
| 		Play: "<nil>", | ||||
| 	}, | ||||
| } | ||||
|  | ||||
| const exampleHelloPlay = `package main | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	fmt.Println("Hello, world!") | ||||
| } | ||||
| ` | ||||
| const exampleImportPlay = `package main | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"os/exec" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	out, err := exec.Command("date").Output() | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	fmt.Printf("The date is %s\n", out) | ||||
| } | ||||
| ` | ||||
|  | ||||
| const exampleKeyValuePlay = `package main | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	v := struct { | ||||
| 		a string | ||||
| 		b int | ||||
| 	}{ | ||||
| 		a: "A", | ||||
| 		b: 1, | ||||
| 	} | ||||
| 	fmt.Print(v) | ||||
| } | ||||
| ` | ||||
|  | ||||
| const exampleKeyValueImportPlay = `package main | ||||
|  | ||||
| import ( | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	f := flag.Flag{ | ||||
| 		Name: "play", | ||||
| 	} | ||||
| 	fmt.Print(f) | ||||
| } | ||||
| ` | ||||
|  | ||||
| func TestExamples(t *testing.T) { | ||||
| 	fset := token.NewFileSet() | ||||
| 	file, err := parser.ParseFile(fset, "test.go", strings.NewReader(exampleTestFile), parser.ParseComments) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	for i, e := range doc.Examples(file) { | ||||
| 		c := exampleTestCases[i] | ||||
| 		if e.Name != c.Name { | ||||
| 			t.Errorf("got Name == %q, want %q", e.Name, c.Name) | ||||
| 		} | ||||
| 		if w := c.Play; w != "" { | ||||
| 			var g string // hah | ||||
| 			if e.Play == nil { | ||||
| 				g = "<nil>" | ||||
| 			} else { | ||||
| 				var buf bytes.Buffer | ||||
| 				if err := format.Node(&buf, fset, e.Play); err != nil { | ||||
| 					t.Fatal(err) | ||||
| 				} | ||||
| 				g = buf.String() | ||||
| 			} | ||||
| 			if g != w { | ||||
| 				t.Errorf("%s: got Play == %q, want %q", c.Name, g, w) | ||||
| 			} | ||||
| 		} | ||||
| 		if g, w := e.Output, c.Output; g != w { | ||||
| 			t.Errorf("%s: got Output == %q, want %q", c.Name, g, w) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user