]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmp: add test case for uinitptr
authorlxl-renren <gnnu_d13@163.com>
Fri, 12 Jan 2024 15:09:17 +0000 (15:09 +0000)
committerGopher Robot <gobot@golang.org>
Wed, 17 Jan 2024 17:58:34 +0000 (17:58 +0000)
Change-Id: Iebe79be01eb5208e9b9dea9297c464fe2b2dd3dd
GitHub-Last-Rev: 875ab08627b1fb0db3dc2a14ac332fdbc9af8b4b
GitHub-Pull-Request: golang/go#65017
Reviewed-on: https://go-review.googlesource.com/c/go/+/554595
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmp/cmp_test.go

index dcf783af517c28eea3b3b57700236f2f0e97a4b4..e265464f4f0fd71a2ba59996320fdc0ddbc763b5 100644 (file)
@@ -11,9 +11,12 @@ import (
        "slices"
        "sort"
        "testing"
+       "unsafe"
 )
 
 var negzero = math.Copysign(0, -1)
+var nonnilptr uintptr = uintptr(unsafe.Pointer(&negzero))
+var nilptr uintptr = uintptr(unsafe.Pointer(nil))
 
 var tests = []struct {
        x, y    any
@@ -45,6 +48,9 @@ var tests = []struct {
        {0.0, negzero, 0},
        {negzero, 1.0, -1},
        {negzero, -1.0, +1},
+       {nilptr, nonnilptr, -1},
+       {nonnilptr, nilptr, 1},
+       {nonnilptr, nonnilptr, 0},
 }
 
 func TestLess(t *testing.T) {
@@ -57,6 +63,8 @@ func TestLess(t *testing.T) {
                        b = cmp.Less(test.x.(string), test.y.(string))
                case float64:
                        b = cmp.Less(test.x.(float64), test.y.(float64))
+               case uintptr:
+                       b = cmp.Less(test.x.(uintptr), test.y.(uintptr))
                }
                if b != (test.compare < 0) {
                        t.Errorf("Less(%v, %v) == %t, want %t", test.x, test.y, b, test.compare < 0)
@@ -74,6 +82,8 @@ func TestCompare(t *testing.T) {
                        c = cmp.Compare(test.x.(string), test.y.(string))
                case float64:
                        c = cmp.Compare(test.x.(float64), test.y.(float64))
+               case uintptr:
+                       c = cmp.Compare(test.x.(uintptr), test.y.(uintptr))
                }
                if c != test.compare {
                        t.Errorf("Compare(%v, %v) == %d, want %d", test.x, test.y, c, test.compare)