github.com/shijuvar/go@v0.0.0-20141209052335-e8f13700b70c/src/go/build/syslist_test.go (about)

     1  // Copyright 2011 The Go Authors.  All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package build
     6  
     7  import (
     8  	"runtime"
     9  	"testing"
    10  )
    11  
    12  var (
    13  	thisOS    = runtime.GOOS
    14  	thisArch  = runtime.GOARCH
    15  	otherOS   = anotherOS()
    16  	otherArch = anotherArch()
    17  )
    18  
    19  func anotherOS() string {
    20  	if thisOS != "darwin" {
    21  		return "darwin"
    22  	}
    23  	return "linux"
    24  }
    25  
    26  func anotherArch() string {
    27  	if thisArch != "amd64" {
    28  		return "amd64"
    29  	}
    30  	return "386"
    31  }
    32  
    33  type GoodFileTest struct {
    34  	name   string
    35  	result bool
    36  }
    37  
    38  var tests = []GoodFileTest{
    39  	{"file.go", true},
    40  	{"file.c", true},
    41  	{"file_foo.go", true},
    42  	{"file_" + thisArch + ".go", true},
    43  	{"file_" + otherArch + ".go", false},
    44  	{"file_" + thisOS + ".go", true},
    45  	{"file_" + otherOS + ".go", false},
    46  	{"file_" + thisOS + "_" + thisArch + ".go", true},
    47  	{"file_" + otherOS + "_" + thisArch + ".go", false},
    48  	{"file_" + thisOS + "_" + otherArch + ".go", false},
    49  	{"file_" + otherOS + "_" + otherArch + ".go", false},
    50  	{"file_foo_" + thisArch + ".go", true},
    51  	{"file_foo_" + otherArch + ".go", false},
    52  	{"file_" + thisOS + ".c", true},
    53  	{"file_" + otherOS + ".c", false},
    54  }
    55  
    56  func TestGoodOSArch(t *testing.T) {
    57  	for _, test := range tests {
    58  		if Default.goodOSArchFile(test.name, make(map[string]bool)) != test.result {
    59  			t.Fatalf("goodOSArchFile(%q) != %v", test.name, test.result)
    60  		}
    61  	}
    62  }