test: Add text/template smoke test
Этот коммит содержится в:
		
							родитель
							
								
									cfed3f0213
								
							
						
					
					
						коммит
						b406422277
					
				
					 3 изменённых файлов: 118 добавлений и 0 удалений
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -302,6 +302,8 @@ test-corpus-wasi: wasi-libc
 | 
			
		|||
.PHONY: smoketest
 | 
			
		||||
smoketest:
 | 
			
		||||
	$(TINYGO) version
 | 
			
		||||
	# compile-only platform-independent examples
 | 
			
		||||
	cd tests/text/template/smoke && $(TINYGO) test -c && rm -f smoke.test
 | 
			
		||||
	# regression test for #2563
 | 
			
		||||
	cd tests/os/smoke && $(TINYGO) test -c -target=pybadge && rm smoke.test
 | 
			
		||||
	# test all examples (except pwm)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								tests/text/template/smoke/empty.go
									
										
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										4
									
								
								tests/text/template/smoke/empty.go
									
										
									
									
									
										Обычный файл
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
package template_smoke
 | 
			
		||||
 | 
			
		||||
func Function() {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										112
									
								
								tests/text/template/smoke/smoke_test.go
									
										
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										112
									
								
								tests/text/template/smoke/smoke_test.go
									
										
									
									
									
										Обычный файл
									
								
							| 
						 | 
				
			
			@ -0,0 +1,112 @@
 | 
			
		|||
//go:build go1.16
 | 
			
		||||
// +build go1.16
 | 
			
		||||
 | 
			
		||||
// Copyright 2011 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 template_smoke_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
	"text/template"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestExampleTemplate(tt *testing.T) {
 | 
			
		||||
	// Define a template.
 | 
			
		||||
	const letter = `
 | 
			
		||||
Dear {{.Name}},
 | 
			
		||||
{{if .Attended}}
 | 
			
		||||
It was a pleasure to see you at the wedding.
 | 
			
		||||
{{- else}}
 | 
			
		||||
It is a shame you couldn't make it to the wedding.
 | 
			
		||||
{{- end}}
 | 
			
		||||
{{with .Gift -}}
 | 
			
		||||
Thank you for the lovely {{.}}.
 | 
			
		||||
{{end}}
 | 
			
		||||
Best wishes,
 | 
			
		||||
Josie
 | 
			
		||||
`
 | 
			
		||||
 | 
			
		||||
	// Prepare some data to insert into the template.
 | 
			
		||||
	type Recipient struct {
 | 
			
		||||
		Name, Gift string
 | 
			
		||||
		Attended   bool
 | 
			
		||||
	}
 | 
			
		||||
	var recipients = []Recipient{
 | 
			
		||||
		{"Aunt Mildred", "bone china tea set", true},
 | 
			
		||||
		{"Uncle John", "moleskin pants", false},
 | 
			
		||||
		{"Cousin Rodney", "", false},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Create a new template and parse the letter into it.
 | 
			
		||||
	t := template.Must(template.New("letter").Parse(letter))
 | 
			
		||||
 | 
			
		||||
	// Execute the template for each recipient.
 | 
			
		||||
	for _, r := range recipients {
 | 
			
		||||
		err := t.Execute(os.Stdout, r)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			tt.Log("executing template:", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Output:
 | 
			
		||||
	// Dear Aunt Mildred,
 | 
			
		||||
	//
 | 
			
		||||
	// It was a pleasure to see you at the wedding.
 | 
			
		||||
	// Thank you for the lovely bone china tea set.
 | 
			
		||||
	//
 | 
			
		||||
	// Best wishes,
 | 
			
		||||
	// Josie
 | 
			
		||||
	//
 | 
			
		||||
	// Dear Uncle John,
 | 
			
		||||
	//
 | 
			
		||||
	// It is a shame you couldn't make it to the wedding.
 | 
			
		||||
	// Thank you for the lovely moleskin pants.
 | 
			
		||||
	//
 | 
			
		||||
	// Best wishes,
 | 
			
		||||
	// Josie
 | 
			
		||||
	//
 | 
			
		||||
	// Dear Cousin Rodney,
 | 
			
		||||
	//
 | 
			
		||||
	// It is a shame you couldn't make it to the wedding.
 | 
			
		||||
	//
 | 
			
		||||
	// Best wishes,
 | 
			
		||||
	// Josie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// The following example is duplicated in html/template; keep them in sync.
 | 
			
		||||
 | 
			
		||||
func TestExampleTemplate_block(tt *testing.T) {
 | 
			
		||||
	const (
 | 
			
		||||
		master  = `Names:{{block "list" .}}{{"\n"}}{{range .}}{{println "-" .}}{{end}}{{end}}`
 | 
			
		||||
		overlay = `{{define "list"}} {{join . ", "}}{{end}} `
 | 
			
		||||
	)
 | 
			
		||||
	var (
 | 
			
		||||
		funcs     = template.FuncMap{"join": strings.Join}
 | 
			
		||||
		guardians = []string{"Gamora", "Groot", "Nebula", "Rocket", "Star-Lord"}
 | 
			
		||||
	)
 | 
			
		||||
	masterTmpl, err := template.New("master").Funcs(funcs).Parse(master)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		tt.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	overlayTmpl, err := template.Must(masterTmpl.Clone()).Parse(overlay)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		tt.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := masterTmpl.Execute(os.Stdout, guardians); err != nil {
 | 
			
		||||
		tt.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := overlayTmpl.Execute(os.Stdout, guardians); err != nil {
 | 
			
		||||
		tt.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	// Output:
 | 
			
		||||
	// Names:
 | 
			
		||||
	// - Gamora
 | 
			
		||||
	// - Groot
 | 
			
		||||
	// - Nebula
 | 
			
		||||
	// - Rocket
 | 
			
		||||
	// - Star-Lord
 | 
			
		||||
	// Names: Gamora, Groot, Nebula, Rocket, Star-Lord
 | 
			
		||||
}
 | 
			
		||||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче