aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/internal/boring/boring.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2017-09-13 23:06:54 -0400
committerRuss Cox <rsc@golang.org>2017-09-18 00:27:12 +0000
commitaa4a4a80ff4f91d58b9a9e645f1367098183856a (patch)
tree30254908ab3dd26871cbdfbe009527088e54ff8b /src/crypto/internal/boring/boring.go
parentc9e2d9eb06d2c57cb2a78707fb60a639a94efb42 (diff)
downloadgo-aa4a4a80ff4f91d58b9a9e645f1367098183856a.tar.gz
go-aa4a4a80ff4f91d58b9a9e645f1367098183856a.zip
[dev.boringcrypto] crypto/internal/boring: fix detection of tests to allow *.test and *_test
When using the go command, test binaries end in .test, but when using Bazel, test binaries conventionally end in _test. Change-Id: Ic4cac8722fd93ae316169f87b321f68e0b71f0c3 Reviewed-on: https://go-review.googlesource.com/63913 Reviewed-by: Adam Langley <agl@golang.org>
Diffstat (limited to 'src/crypto/internal/boring/boring.go')
-rw-r--r--src/crypto/internal/boring/boring.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/crypto/internal/boring/boring.go b/src/crypto/internal/boring/boring.go
index 97659e4ff7..1dd49fecfb 100644
--- a/src/crypto/internal/boring/boring.go
+++ b/src/crypto/internal/boring/boring.go
@@ -30,12 +30,17 @@ func Unreachable() {
// provided by runtime to avoid os import
func runtime_arg0() string
+func hasSuffix(s, t string) bool {
+ return len(s) > len(t) && s[len(s)-len(t):] == t
+}
+
// UnreachableExceptTests marks code that should be unreachable
// when BoringCrypto is in use. It panics.
func UnreachableExceptTests() {
- arg0 := runtime_arg0()
- if len(arg0) < 5 || arg0[len(arg0)-5:] != ".test" {
- println("ARG0", arg0)
+ name := runtime_arg0()
+ // If BoringCrypto ran on Windows we'd need to allow _test.exe and .test.exe as well.
+ if !hasSuffix(name, "_test") && !hasSuffix(name, ".test") {
+ println("boringcrypto: unexpected code execution in", name)
panic("boringcrypto: invalid code execution")
}
}