main: add support for testing complete packages, not just .go files
Этот коммит содержится в:
		
							родитель
							
								
									8ee3267260
								
							
						
					
					
						коммит
						b99bbc880a
					
				
					 1 изменённых файлов: 13 добавлений и 2 удалений
				
			
		
							
								
								
									
										15
									
								
								main_test.go
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								main_test.go
									
										
									
									
									
								
							| 
						 | 
					@ -10,6 +10,7 @@ import (
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"os/exec"
 | 
						"os/exec"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"sort"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,9 +21,16 @@ func TestCompiler(t *testing.T) {
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal("could not read test files:", err)
 | 
							t.Fatal("could not read test files:", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(matches) == 0 {
 | 
					
 | 
				
			||||||
 | 
						dirMatches, err := filepath.Glob(TESTDATA + "/*/main.go")
 | 
				
			||||||
 | 
						if len(matches) == 0 || len(dirMatches) == 0 {
 | 
				
			||||||
		t.Fatal("no test files found")
 | 
							t.Fatal("no test files found")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						for _, m := range dirMatches {
 | 
				
			||||||
 | 
							matches = append(matches, filepath.Dir(m)+string(filepath.Separator))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sort.Strings(matches)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create a temporary directory for test output files.
 | 
						// Create a temporary directory for test output files.
 | 
				
			||||||
	tmpdir, err := ioutil.TempDir("", "tinygo-test")
 | 
						tmpdir, err := ioutil.TempDir("", "tinygo-test")
 | 
				
			||||||
| 
						 | 
					@ -49,6 +57,9 @@ func TestCompiler(t *testing.T) {
 | 
				
			||||||
func runTest(path, tmpdir string, target string, t *testing.T) {
 | 
					func runTest(path, tmpdir string, target string, t *testing.T) {
 | 
				
			||||||
	// Get the expected output for this test.
 | 
						// Get the expected output for this test.
 | 
				
			||||||
	txtpath := path[:len(path)-3] + ".txt"
 | 
						txtpath := path[:len(path)-3] + ".txt"
 | 
				
			||||||
 | 
						if path[len(path)-1] == '/' {
 | 
				
			||||||
 | 
							txtpath = path + "out.txt"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	f, err := os.Open(txtpath)
 | 
						f, err := os.Open(txtpath)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal("could not open expected output file:", err)
 | 
							t.Fatal("could not open expected output file:", err)
 | 
				
			||||||
| 
						 | 
					@ -68,7 +79,7 @@ func runTest(path, tmpdir string, target string, t *testing.T) {
 | 
				
			||||||
		initInterp: true,
 | 
							initInterp: true,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	binary := filepath.Join(tmpdir, "test")
 | 
						binary := filepath.Join(tmpdir, "test")
 | 
				
			||||||
	err = Build(path, binary, target, config)
 | 
						err = Build("./"+path, binary, target, config)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Log("failed to build:", err)
 | 
							t.Log("failed to build:", err)
 | 
				
			||||||
		t.Fail()
 | 
							t.Fail()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче