diff options
author | Filippo Valsorda <filippo@golang.org> | 2018-07-02 17:50:42 -0400 |
---|---|---|
committer | Filippo Valsorda <filippo@golang.org> | 2018-07-02 22:36:31 +0000 |
commit | 0bad1bef406e987b7b749efc3bb7ab5d08b36a1c (patch) | |
tree | 34b9f97d1683622d58605928e4d75fb4df711ae5 /test/fixedbugs/issue24817.go | |
parent | 3959ce667657defe1c99984adde93ca496953765 (diff) | |
parent | 7df09b4a03f9e53334672674ba7983d5e7128646 (diff) | |
download | go-0bad1bef406e987b7b749efc3bb7ab5d08b36a1c.tar.gz go-0bad1bef406e987b7b749efc3bb7ab5d08b36a1c.zip |
[dev.boringcrypto.go1.9] all: merge go1.9.7 into dev.boringcrypto.go1.9dev.boringcrypto.go1.9
Change-Id: I1f9769a0c2c7c090886afa31c86c403da29d2013
Diffstat (limited to 'test/fixedbugs/issue24817.go')
-rw-r--r-- | test/fixedbugs/issue24817.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/fixedbugs/issue24817.go b/test/fixedbugs/issue24817.go new file mode 100644 index 0000000000..ba2a138ed3 --- /dev/null +++ b/test/fixedbugs/issue24817.go @@ -0,0 +1,64 @@ +// run + +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Check all ways to compare a non-constant string to the empty string. + +package main + +import ( + "fmt" + "os" +) + +var ( + s = "abc" + e = "" + failed bool +) + +func main() { + want(true, "" < s, `"" < s`) + want(false, s < "", `s < ""`) + want(false, "" < e, `"" < e`) + want(false, e < "", `e < ""`) + + want(true, "" <= s, `"" <= s`) + want(false, s <= "", `s <= ""`) + want(true, "" <= e, `"" <= e`) + want(true, e <= "", `e <= ""`) + + want(false, "" > s, `"" > s`) + want(true, s > "", `s > ""`) + want(false, "" > e, `"" > e`) + want(false, e > "", `e > ""`) + + want(false, "" >= s, `"" >= s`) + want(true, s >= "", `s >= ""`) + want(true, "" >= e, `"" >= e`) + want(true, e >= "", `e >= ""`) + + want(false, "" == s, `"" == s`) + want(false, s == "", `s == ""`) + want(true, "" == e, `"" == e`) + want(true, e == "", `e == ""`) + + want(true, "" != s, `"" != s`) + want(true, s != "", `s != ""`) + want(false, "" != e, `"" != e`) + want(false, e != "", `e != ""`) + + if failed { + os.Exit(1) + } +} + +//go:noinline +func want(b bool, have bool, msg string) { + if b != have { + fmt.Println(msg) + failed = true + } +} |