diff options
Diffstat (limited to 'tests/legacy/build_constraints')
-rw-r--r-- | tests/legacy/build_constraints/BUILD.bazel | 40 | ||||
-rw-r--r-- | tests/legacy/build_constraints/asm_arm64.s | 20 | ||||
-rw-r--r-- | tests/legacy/build_constraints/asm_linux_amd64.s | 3 | ||||
-rw-r--r-- | tests/legacy/build_constraints/asm_unknown.s | 5 | ||||
-rw-r--r-- | tests/legacy/build_constraints/build_constraints_test.go | 55 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_group_linux.c | 1 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_group_unknown.c | 3 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_linux.c | 1 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_linux.go | 12 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_unknown.c | 3 | ||||
-rw-r--r-- | tests/legacy/build_constraints/cgo_unknown.go | 14 | ||||
-rw-r--r-- | tests/legacy/build_constraints/suffix_linux.go | 3 | ||||
-rw-r--r-- | tests/legacy/build_constraints/suffix_unknown.go | 5 | ||||
-rw-r--r-- | tests/legacy/build_constraints/tag_l.go | 5 | ||||
-rw-r--r-- | tests/legacy/build_constraints/tag_unknown.go | 5 |
15 files changed, 175 insertions, 0 deletions
diff --git a/tests/legacy/build_constraints/BUILD.bazel b/tests/legacy/build_constraints/BUILD.bazel new file mode 100644 index 00000000..bacd8e66 --- /dev/null +++ b/tests/legacy/build_constraints/BUILD.bazel @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_test( + name = "go_default_test", + size = "small", + srcs = ["build_constraints_test.go"], + embed = [":go_default_library"], +) + +go_library( + name = "go_default_library", + srcs = [ + # Check suffixes are filtered. + "suffix_linux.go", + "suffix_unknown.go", + # Check that tags are observed. + "tag_l.go", + "tag_unknown.go", + # Check that constraints apply to assembly files. + "asm_arm64.s", + "asm_linux_amd64.s", + "asm_unknown.s", + # Check that constraints apply to cgo files. + "cgo_linux.go", + "cgo_unknown.go", + "cgo_linux.c", + "cgo_unknown.c", + ":c_srcs_group", + ], + cgo = True, + importpath = "github.com/bazelbuild/rules_go/tests/build_constraints", +) + +filegroup( + name = "c_srcs_group", + srcs = [ + "cgo_group_linux.c", + "cgo_group_unknown.c", + ], +) diff --git a/tests/legacy/build_constraints/asm_arm64.s b/tests/legacy/build_constraints/asm_arm64.s new file mode 100644 index 00000000..1308af68 --- /dev/null +++ b/tests/legacy/build_constraints/asm_arm64.s @@ -0,0 +1,20 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build arm64 + +TEXT ·asm(SB),$0-0 + MOVD $75,R0 + MOVD R0,RET(FP) + RET diff --git a/tests/legacy/build_constraints/asm_linux_amd64.s b/tests/legacy/build_constraints/asm_linux_amd64.s new file mode 100644 index 00000000..cfbaa911 --- /dev/null +++ b/tests/legacy/build_constraints/asm_linux_amd64.s @@ -0,0 +1,3 @@ +TEXT ·asm(SB),$0-0 + MOVQ $12,RET(FP) + RET diff --git a/tests/legacy/build_constraints/asm_unknown.s b/tests/legacy/build_constraints/asm_unknown.s new file mode 100644 index 00000000..b44dc370 --- /dev/null +++ b/tests/legacy/build_constraints/asm_unknown.s @@ -0,0 +1,5 @@ +// +build !linux,amd64 + +TEXT ·asm(SB),$0-0 + MOVQ $34,RET(FP) + RET diff --git a/tests/legacy/build_constraints/build_constraints_test.go b/tests/legacy/build_constraints/build_constraints_test.go new file mode 100644 index 00000000..b2ac474e --- /dev/null +++ b/tests/legacy/build_constraints/build_constraints_test.go @@ -0,0 +1,55 @@ +package build_constraints + +import ( + "runtime" + "testing" +) + +func check(value string, t *testing.T) { + var want string + if runtime.GOOS == "linux" { + want = "linux" + } else { + want = "unknown" + } + if value != want { + t.Errorf("got %s; want %s", value, want) + } +} + +func TestSuffix(t *testing.T) { + check(suffix, t) +} + +func TestTag(t *testing.T) { + check(tag, t) +} + +func asm() int + +func TestAsm(t *testing.T) { + got := asm() + var want int + if runtime.GOOS == "linux" { + want = 12 + } else if runtime.GOARCH == "arm64" { + want = 75 + } else { + want = 34 + } + if got != want { + t.Errorf("got %d; want %d", got, want) + } +} + +func TestCgoGo(t *testing.T) { + check(cgoGo, t) +} + +func TestCgoC(t *testing.T) { + check(cgoC, t) +} + +func TestCgoCGroup(t *testing.T) { + check(cgoCGroup, t) +} diff --git a/tests/legacy/build_constraints/cgo_group_linux.c b/tests/legacy/build_constraints/cgo_group_linux.c new file mode 100644 index 00000000..1c77b797 --- /dev/null +++ b/tests/legacy/build_constraints/cgo_group_linux.c @@ -0,0 +1 @@ +const char* cgoCGroup = "linux"; diff --git a/tests/legacy/build_constraints/cgo_group_unknown.c b/tests/legacy/build_constraints/cgo_group_unknown.c new file mode 100644 index 00000000..de492e7b --- /dev/null +++ b/tests/legacy/build_constraints/cgo_group_unknown.c @@ -0,0 +1,3 @@ +// +build !linux + +const char* cgoCGroup = "unknown"; diff --git a/tests/legacy/build_constraints/cgo_linux.c b/tests/legacy/build_constraints/cgo_linux.c new file mode 100644 index 00000000..e1277b1c --- /dev/null +++ b/tests/legacy/build_constraints/cgo_linux.c @@ -0,0 +1 @@ +const char* cgoC = "linux"; diff --git a/tests/legacy/build_constraints/cgo_linux.go b/tests/legacy/build_constraints/cgo_linux.go new file mode 100644 index 00000000..5dd9eaa6 --- /dev/null +++ b/tests/legacy/build_constraints/cgo_linux.go @@ -0,0 +1,12 @@ +package build_constraints + +/* +const char* cgoGo = "linux"; +extern const char* cgoC; +extern const char* cgoCGroup; +*/ +import "C" + +var cgoGo = C.GoString(C.cgoGo) +var cgoC = C.GoString(C.cgoC) +var cgoCGroup = C.GoString(C.cgoCGroup) diff --git a/tests/legacy/build_constraints/cgo_unknown.c b/tests/legacy/build_constraints/cgo_unknown.c new file mode 100644 index 00000000..2d9d8fcc --- /dev/null +++ b/tests/legacy/build_constraints/cgo_unknown.c @@ -0,0 +1,3 @@ +// +build !linux + +const char* cgoC = "unknown"; diff --git a/tests/legacy/build_constraints/cgo_unknown.go b/tests/legacy/build_constraints/cgo_unknown.go new file mode 100644 index 00000000..ea289017 --- /dev/null +++ b/tests/legacy/build_constraints/cgo_unknown.go @@ -0,0 +1,14 @@ +// +build !linux + +package build_constraints + +/* +const char* cgoGo = "unknown"; +extern const char* cgoC; +extern const char* cgoCGroup; +*/ +import "C" + +var cgoGo = C.GoString(C.cgoGo) +var cgoC = C.GoString(C.cgoC) +var cgoCGroup = C.GoString(C.cgoCGroup) diff --git a/tests/legacy/build_constraints/suffix_linux.go b/tests/legacy/build_constraints/suffix_linux.go new file mode 100644 index 00000000..fdad5aff --- /dev/null +++ b/tests/legacy/build_constraints/suffix_linux.go @@ -0,0 +1,3 @@ +package build_constraints + +var suffix = "linux" diff --git a/tests/legacy/build_constraints/suffix_unknown.go b/tests/legacy/build_constraints/suffix_unknown.go new file mode 100644 index 00000000..f1952589 --- /dev/null +++ b/tests/legacy/build_constraints/suffix_unknown.go @@ -0,0 +1,5 @@ +// +build !linux + +package build_constraints + +var suffix = "unknown" diff --git a/tests/legacy/build_constraints/tag_l.go b/tests/legacy/build_constraints/tag_l.go new file mode 100644 index 00000000..f8269c76 --- /dev/null +++ b/tests/legacy/build_constraints/tag_l.go @@ -0,0 +1,5 @@ +// +build linux + +package build_constraints + +var tag = "linux" diff --git a/tests/legacy/build_constraints/tag_unknown.go b/tests/legacy/build_constraints/tag_unknown.go new file mode 100644 index 00000000..ef73cafd --- /dev/null +++ b/tests/legacy/build_constraints/tag_unknown.go @@ -0,0 +1,5 @@ +// +build !linux + +package build_constraints + +var tag = "unknown" |