diff options
author | Spandan Das <spandandas@google.com> | 2023-06-15 02:30:50 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-06-15 02:30:50 +0000 |
commit | 9bb1b549b6a84214c53be0924760be030e66b93a (patch) | |
tree | d9fac15bb5a835ae6ba757dc5eaf6ef597ea44cf /tests/core/build_stdlib/build_stdlib_test.go | |
parent | 9803cf8403d7105bddc1d5304d6e694b781a6605 (diff) | |
parent | 780ccd3956961690db3e36d8fa1ed7649cb0057b (diff) | |
download | bazelbuild-rules_go-9bb1b549b6a84214c53be0924760be030e66b93a.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge_rules_go am: 49dcd02124 am: 711a453236 am: 6cf433ad1b am: de80525bba am: 96939a977e am: 780ccd3956HEADandroid-14.0.0_r51android-14.0.0_r50android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android-14.0.0_r28mastermainandroid14-qpr3-releaseandroid14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Original change: https://android-review.googlesource.com/c/platform/external/bazelbuild-rules_go/+/2625353
Change-Id: Id4ca3195d832eca77b29b2896b89027d847bb72d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'tests/core/build_stdlib/build_stdlib_test.go')
-rw-r--r-- | tests/core/build_stdlib/build_stdlib_test.go | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/core/build_stdlib/build_stdlib_test.go b/tests/core/build_stdlib/build_stdlib_test.go new file mode 100644 index 00000000..31851b3a --- /dev/null +++ b/tests/core/build_stdlib/build_stdlib_test.go @@ -0,0 +1,97 @@ +// Copyright 2022 The Bazel Authors. All rights reserved. +// +// 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 +// +// http://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. + +package build_stdlib_test + +import ( + "bytes" + "os" + "testing" + + "github.com/bazelbuild/rules_go/go/tools/bazel_testing" +) + +func TestMain(m *testing.M) { + bazel_testing.TestMain(m, bazel_testing.Args{ + Main: ` +-- BUILD.bazel -- +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_binary( + name = "program", + srcs = ["main.go"], + deps = [":library"], + visibility = ["//visibility:public"], +) + +go_library( + name = "library", + srcs = ["library.go"], + importpath = "example.com/library" +) +-- main.go -- +package main + +import "example.com/library" + +func main() { + library.F() +} +-- library.go -- +package library + +func F() {} +`, + }) +} + +const origWrapSDK = `go_wrap_sdk( + name = "go_sdk", + root_file = "@local_go_sdk//:ROOT", +) + +go_register_toolchains()` + +const toolchain120 = `go_register_toolchains(version = "1.20rc1")` + +func TestBoringcryptoExperimentPresent(t *testing.T) { + mustReplaceInFile(t, "WORKSPACE", origWrapSDK, toolchain120) + defer mustReplaceInFile(t, "WORKSPACE", toolchain120, origWrapSDK) + + cmd := bazel_testing.BazelCmd("build", "//:program") + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stdout + if err := cmd.Run(); err != nil { + t.Fatal("failed to run bazel build: ", err) + } + +} + +func mustReplaceInFile(t *testing.T, path, old, new string) { + t.Helper() + if old == new { + return + } + data, err := os.ReadFile(path) + if err != nil { + t.Fatal(err) + } + if !bytes.Contains(data, []byte(old)) { + t.Fatalf("bytes to replace %q not found in file %q with contents, %q", old, path, data) + } + data = bytes.ReplaceAll(data, []byte(old), []byte(new)) + if err := os.WriteFile(path, data, 0666); err != nil { + t.Fatal(err) + } +} |