diff options
Diffstat (limited to '')
-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 0000000..ba2a138 --- /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 + } +} |