aboutsummaryrefslogtreecommitdiff
path: root/tests/legacy/build_constraints
diff options
context:
space:
mode:
Diffstat (limited to 'tests/legacy/build_constraints')
-rw-r--r--tests/legacy/build_constraints/BUILD.bazel40
-rw-r--r--tests/legacy/build_constraints/asm_arm64.s20
-rw-r--r--tests/legacy/build_constraints/asm_linux_amd64.s3
-rw-r--r--tests/legacy/build_constraints/asm_unknown.s5
-rw-r--r--tests/legacy/build_constraints/build_constraints_test.go55
-rw-r--r--tests/legacy/build_constraints/cgo_group_linux.c1
-rw-r--r--tests/legacy/build_constraints/cgo_group_unknown.c3
-rw-r--r--tests/legacy/build_constraints/cgo_linux.c1
-rw-r--r--tests/legacy/build_constraints/cgo_linux.go12
-rw-r--r--tests/legacy/build_constraints/cgo_unknown.c3
-rw-r--r--tests/legacy/build_constraints/cgo_unknown.go14
-rw-r--r--tests/legacy/build_constraints/suffix_linux.go3
-rw-r--r--tests/legacy/build_constraints/suffix_unknown.go5
-rw-r--r--tests/legacy/build_constraints/tag_l.go5
-rw-r--r--tests/legacy/build_constraints/tag_unknown.go5
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"