Skip to content

Commit

Permalink
Merge pull request #1505 from stretchr/more-unsafe.Pointer-tests
Browse files Browse the repository at this point in the history
assert: improve unsafe.Pointer tests
  • Loading branch information
MovieStoreGuy committed Jan 17, 2024
2 parents db8608e + 858080f commit 1f53b4e
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 8 deletions.
8 changes: 0 additions & 8 deletions assert/assertions_test.go
Expand Up @@ -16,7 +16,6 @@ import (
"strings"
"testing"
"time"
"unsafe"
)

var (
Expand Down Expand Up @@ -3138,10 +3137,3 @@ func TestErrorAs(t *testing.T) {
})
}
}

func TestIsNil(t *testing.T) {
var n unsafe.Pointer = nil
if !isNil(n) {
t.Fatal("fail")
}
}
4 changes: 4 additions & 0 deletions assert/internal/unsafetests/doc.go
@@ -0,0 +1,4 @@
// This package exists just to isolate tests that reference the [unsafe] package.
//
// The tests in this package are totally safe.
package unsafetests
34 changes: 34 additions & 0 deletions assert/internal/unsafetests/unsafetests_test.go
@@ -0,0 +1,34 @@
package unsafetests_test

import (
"fmt"
"testing"
"unsafe"

"github.com/stretchr/testify/assert"
)

type ignoreTestingT struct{}

var _ assert.TestingT = ignoreTestingT{}

func (ignoreTestingT) Helper() {}

func (ignoreTestingT) Errorf(format string, args ...interface{}) {
// Run the formatting, but ignore the result
msg := fmt.Sprintf(format, args...)
_ = msg
}

func TestUnsafePointers(t *testing.T) {
var ignore ignoreTestingT

assert.True(t, assert.Nil(t, unsafe.Pointer(nil), "unsafe.Pointer(nil) is nil"))
assert.False(t, assert.NotNil(ignore, unsafe.Pointer(nil), "unsafe.Pointer(nil) is nil"))

assert.True(t, assert.Nil(t, unsafe.Pointer((*int)(nil)), "unsafe.Pointer((*int)(nil)) is nil"))
assert.False(t, assert.NotNil(ignore, unsafe.Pointer((*int)(nil)), "unsafe.Pointer((*int)(nil)) is nil"))

assert.False(t, assert.Nil(ignore, unsafe.Pointer(new(int)), "unsafe.Pointer(new(int)) is NOT nil"))
assert.True(t, assert.NotNil(t, unsafe.Pointer(new(int)), "unsafe.Pointer(new(int)) is NOT nil"))
}

0 comments on commit 1f53b4e

Please sign in to comment.