vendor: update gotest.tools v3.0.2
full diff: https://github.com/gotestyourself/gotest.tools/compare/v2.3.0...v3.0.2 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
4d242818bf
commit
f2edc6f164
@ -33,8 +33,8 @@ import (
|
|||||||
|
|
||||||
"github.com/containerd/fifo"
|
"github.com/containerd/fifo"
|
||||||
"github.com/google/go-cmp/cmp/cmpopts"
|
"github.com/google/go-cmp/cmp/cmpopts"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func assertHasPrefix(t *testing.T, s, prefix string) {
|
func assertHasPrefix(t *testing.T, s, prefix string) {
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOpenFifos(t *testing.T) {
|
func TestOpenFifos(t *testing.T) {
|
||||||
|
@ -21,7 +21,7 @@ package cio
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewFifoSetInDir_NoTerminal(t *testing.T) {
|
func TestNewFifoSetInDir_NoTerminal(t *testing.T) {
|
||||||
|
@ -26,7 +26,7 @@ import (
|
|||||||
"github.com/containerd/containerd/pkg/ttrpcutil"
|
"github.com/containerd/containerd/pkg/ttrpcutil"
|
||||||
"github.com/containerd/ttrpc"
|
"github.com/containerd/ttrpc"
|
||||||
"github.com/gogo/protobuf/types"
|
"github.com/gogo/protobuf/types"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestClientTTRPC_New(t *testing.T) {
|
func TestClientTTRPC_New(t *testing.T) {
|
||||||
|
@ -26,8 +26,8 @@ import (
|
|||||||
|
|
||||||
"github.com/containerd/containerd/errdefs"
|
"github.com/containerd/containerd/errdefs"
|
||||||
"github.com/opencontainers/go-digest"
|
"github.com/opencontainers/go-digest"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type copySource struct {
|
type copySource struct {
|
||||||
|
@ -40,7 +40,7 @@ import (
|
|||||||
|
|
||||||
"github.com/opencontainers/go-digest"
|
"github.com/opencontainers/go-digest"
|
||||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
type memoryLabelStore struct {
|
type memoryLabelStore struct {
|
||||||
|
@ -36,7 +36,7 @@ import (
|
|||||||
digest "github.com/opencontainers/go-digest"
|
digest "github.com/opencontainers/go-digest"
|
||||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containerd/containerd/gc"
|
"github.com/containerd/containerd/gc"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPauseThreshold(t *testing.T) {
|
func TestPauseThreshold(t *testing.T) {
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoggerContext(t *testing.T) {
|
func TestLoggerContext(t *testing.T) {
|
||||||
|
@ -31,7 +31,7 @@ import (
|
|||||||
// so we use continuity/testutil instead.
|
// so we use continuity/testutil instead.
|
||||||
"github.com/containerd/continuity/testutil"
|
"github.com/containerd/continuity/testutil"
|
||||||
"github.com/containerd/continuity/testutil/loopback"
|
"github.com/containerd/continuity/testutil/loopback"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func checkLookup(t *testing.T, fsType, mntPoint, dir string) {
|
func checkLookup(t *testing.T, fsType, mntPoint, dir string) {
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/containerd/mount"
|
"github.com/containerd/containerd/mount"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Unmount unmounts a given mountPoint and sets t.Error if it fails
|
// Unmount unmounts a given mountPoint and sets t.Error if it fails
|
||||||
|
@ -29,7 +29,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFetcherOpen(t *testing.T) {
|
func TestFetcherOpen(t *testing.T) {
|
||||||
|
@ -21,8 +21,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/containerd/reference"
|
"github.com/containerd/containerd/reference"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
"gotest.tools/assert/cmp"
|
"gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRepositoryScope(t *testing.T) {
|
func TestRepositoryScope(t *testing.T) {
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
|
|
||||||
"github.com/containerd/containerd/plugin"
|
"github.com/containerd/containerd/plugin"
|
||||||
)
|
)
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
srvconfig "github.com/containerd/containerd/services/server/config"
|
srvconfig "github.com/containerd/containerd/services/server/config"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateTopLevelDirectoriesErrorsWithSamePathForRootAndState(t *testing.T) {
|
func TestCreateTopLevelDirectoriesErrorsWithSamePathForRootAndState(t *testing.T) {
|
||||||
|
@ -32,7 +32,7 @@ import (
|
|||||||
"github.com/containerd/continuity/fs/fstest"
|
"github.com/containerd/continuity/fs/fstest"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
|
|
||||||
"github.com/containerd/containerd/mount"
|
"github.com/containerd/containerd/mount"
|
||||||
"github.com/containerd/containerd/snapshots"
|
"github.com/containerd/containerd/snapshots"
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
"github.com/hashicorp/go-multierror"
|
"github.com/hashicorp/go-multierror"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoadConfig(t *testing.T) {
|
func TestLoadConfig(t *testing.T) {
|
||||||
|
@ -26,8 +26,8 @@ import (
|
|||||||
|
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
|
|
||||||
"github.com/containerd/containerd/pkg/testutil"
|
"github.com/containerd/containerd/pkg/testutil"
|
||||||
"github.com/containerd/containerd/snapshots/devmapper/losetup"
|
"github.com/containerd/containerd/snapshots/devmapper/losetup"
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
|
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
|
|
||||||
"github.com/containerd/containerd/pkg/testutil"
|
"github.com/containerd/containerd/pkg/testutil"
|
||||||
)
|
)
|
||||||
|
@ -28,8 +28,8 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"go.etcd.io/bbolt"
|
"go.etcd.io/bbolt"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -34,7 +34,7 @@ import (
|
|||||||
"github.com/containerd/containerd/snapshots/devmapper/losetup"
|
"github.com/containerd/containerd/snapshots/devmapper/losetup"
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -30,7 +30,7 @@ import (
|
|||||||
"github.com/containerd/continuity/fs/fstest"
|
"github.com/containerd/continuity/fs/fstest"
|
||||||
"github.com/hashicorp/go-multierror"
|
"github.com/hashicorp/go-multierror"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
|
|
||||||
"github.com/containerd/containerd/mount"
|
"github.com/containerd/containerd/mount"
|
||||||
"github.com/containerd/containerd/namespaces"
|
"github.com/containerd/containerd/namespaces"
|
||||||
|
@ -28,8 +28,8 @@ import (
|
|||||||
"github.com/containerd/containerd/snapshots"
|
"github.com/containerd/containerd/snapshots"
|
||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type testFunc func(context.Context, *testing.T, *MetaStore)
|
type testFunc func(context.Context, *testing.T, *MetaStore)
|
||||||
|
@ -34,8 +34,8 @@ import (
|
|||||||
"github.com/containerd/containerd/pkg/testutil"
|
"github.com/containerd/containerd/pkg/testutil"
|
||||||
"github.com/containerd/containerd/snapshots"
|
"github.com/containerd/containerd/snapshots"
|
||||||
"github.com/containerd/continuity/fs/fstest"
|
"github.com/containerd/continuity/fs/fstest"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SnapshotterFunc is used in SnapshotterSuite
|
// SnapshotterFunc is used in SnapshotterSuite
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"gotest.tools/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSetPositiveOomScoreAdjustment(t *testing.T) {
|
func TestSetPositiveOomScoreAdjustment(t *testing.T) {
|
||||||
|
@ -50,7 +50,7 @@ golang.org/x/sys c990c680b611ac1aeb7d8f2af94a
|
|||||||
golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4
|
golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4
|
||||||
google.golang.org/genproto e50cd9704f63023d62cd06a1994b98227fc4d21a
|
google.golang.org/genproto e50cd9704f63023d62cd06a1994b98227fc4d21a
|
||||||
google.golang.org/grpc f495f5b15ae7ccda3b38c53a1bfcde4c1a58a2bc # v1.27.1
|
google.golang.org/grpc f495f5b15ae7ccda3b38c53a1bfcde4c1a58a2bc # v1.27.1
|
||||||
gotest.tools 1083505acf35a0bd8a696b26837e1fb3187a7a83 # v2.3.0
|
gotest.tools/v3 bb0d8a963040ea5048dcef1a14d8f8b58a33d4b3 # v3.0.2
|
||||||
|
|
||||||
# cri dependencies
|
# cri dependencies
|
||||||
github.com/containerd/cri c0294ebfe0b4342db85c0faf7727ceb8d8c3afce # master
|
github.com/containerd/cri c0294ebfe0b4342db85c0faf7727ceb8d8c3afce # master
|
||||||
|
8
vendor/gotest.tools/go.mod
vendored
8
vendor/gotest.tools/go.mod
vendored
@ -1,8 +0,0 @@
|
|||||||
module gotest.tools
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/google/go-cmp v0.2.0
|
|
||||||
github.com/pkg/errors v0.8.0
|
|
||||||
github.com/spf13/pflag v1.0.3
|
|
||||||
golang.org/x/tools v0.0.0-20180810170437-e96c4e24768d
|
|
||||||
)
|
|
@ -2,26 +2,41 @@
|
|||||||
|
|
||||||
A collection of packages to augment `testing` and support common patterns.
|
A collection of packages to augment `testing` and support common patterns.
|
||||||
|
|
||||||
[](https://godoc.org/gotest.tools)
|
[](http://gotest.tools)
|
||||||
[](https://circleci.com/gh/gotestyourself/gotest.tools/tree/master)
|
[](https://circleci.com/gh/gotestyourself/gotest.tools/tree/master)
|
||||||
[](https://goreportcard.com/report/gotest.tools)
|
[](https://goreportcard.com/report/gotest.tools)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
With Go modules enabled (go1.11+)
|
||||||
|
|
||||||
|
```
|
||||||
|
$ go get gotest.tools/v3
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
import "gotest.tools/v3/assert"
|
||||||
|
```
|
||||||
|
|
||||||
|
To use `gotest.tools` with an older version of Go that does not understand Go
|
||||||
|
module paths pin to version `v2.3.0`.
|
||||||
|
|
||||||
|
|
||||||
## Packages
|
## Packages
|
||||||
|
|
||||||
* [assert](http://godoc.org/gotest.tools/assert) -
|
* [assert](http://gotest.tools/assert) -
|
||||||
compare values and fail the test when a comparison fails
|
compare values and fail the test when a comparison fails
|
||||||
* [env](http://godoc.org/gotest.tools/env) -
|
* [env](http://gotest.tools/env) -
|
||||||
test code which uses environment variables
|
test code which uses environment variables
|
||||||
* [fs](http://godoc.org/gotest.tools/fs) -
|
* [fs](http://gotest.tools/fs) -
|
||||||
create temporary files and compare a filesystem tree to an expected value
|
create temporary files and compare a filesystem tree to an expected value
|
||||||
* [golden](http://godoc.org/gotest.tools/golden) -
|
* [golden](http://gotest.tools/golden) -
|
||||||
compare large multi-line strings against values frozen in golden files
|
compare large multi-line strings against values frozen in golden files
|
||||||
* [icmd](http://godoc.org/gotest.tools/icmd) -
|
* [icmd](http://gotest.tools/icmd) -
|
||||||
execute binaries and test the output
|
execute binaries and test the output
|
||||||
* [poll](http://godoc.org/gotest.tools/poll) -
|
* [poll](http://gotest.tools/poll) -
|
||||||
test asynchronous code by polling until a desired state is reached
|
test asynchronous code by polling until a desired state is reached
|
||||||
* [skip](http://godoc.org/gotest.tools/skip) -
|
* [skip](http://gotest.tools/skip) -
|
||||||
skip a test and print the source code of the condition used to skip the test
|
skip a test and print the source code of the condition used to skip the test
|
||||||
|
|
||||||
## Related
|
## Related
|
@ -49,30 +49,31 @@ The example below shows assert used with some common types.
|
|||||||
|
|
||||||
Comparisons
|
Comparisons
|
||||||
|
|
||||||
Package https://godoc.org/gotest.tools/assert/cmp provides
|
Package http://gotest.tools/assert/cmp provides
|
||||||
many common comparisons. Additional comparisons can be written to compare
|
many common comparisons. Additional comparisons can be written to compare
|
||||||
values in other ways. See the example Assert (CustomComparison).
|
values in other ways. See the example Assert (CustomComparison).
|
||||||
|
|
||||||
Automated migration from testify
|
Automated migration from testify
|
||||||
|
|
||||||
gty-migrate-from-testify is a binary which can update source code which uses
|
gty-migrate-from-testify is a command which translates Go source code from
|
||||||
testify assertions to use the assertions provided by this package.
|
testify assertions to the assertions provided by this package.
|
||||||
|
|
||||||
See http://bit.do/cmd-gty-migrate-from-testify.
|
See http://gotest.tools/assert/cmd/gty-migrate-from-testify.
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
package assert // import "gotest.tools/assert"
|
package assert // import "gotest.tools/v3/assert"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"go/ast"
|
"go/ast"
|
||||||
"go/token"
|
"go/token"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
gocmp "github.com/google/go-cmp/cmp"
|
gocmp "github.com/google/go-cmp/cmp"
|
||||||
"gotest.tools/assert/cmp"
|
"gotest.tools/v3/assert/cmp"
|
||||||
"gotest.tools/internal/format"
|
"gotest.tools/v3/internal/format"
|
||||||
"gotest.tools/internal/source"
|
"gotest.tools/v3/internal/source"
|
||||||
)
|
)
|
||||||
|
|
||||||
// BoolOrComparison can be a bool, or cmp.Comparison. See Assert() for usage.
|
// BoolOrComparison can be a bool, or cmp.Comparison. See Assert() for usage.
|
||||||
@ -118,8 +119,8 @@ func assert(
|
|||||||
return true
|
return true
|
||||||
|
|
||||||
case error:
|
case error:
|
||||||
msg := "error is not nil: "
|
msg := failureMsgFromError(check)
|
||||||
t.Log(format.WithCustomMessage(failureMessage+msg+check.Error(), msgAndArgs...))
|
t.Log(format.WithCustomMessage(failureMessage+msg, msgAndArgs...))
|
||||||
|
|
||||||
case cmp.Comparison:
|
case cmp.Comparison:
|
||||||
success = runComparison(t, argSelector, check, msgAndArgs...)
|
success = runComparison(t, argSelector, check, msgAndArgs...)
|
||||||
@ -174,6 +175,15 @@ func logFailureFromBool(t TestingT, msgAndArgs ...interface{}) {
|
|||||||
t.Log(format.WithCustomMessage(failureMessage+msg, msgAndArgs...))
|
t.Log(format.WithCustomMessage(failureMessage+msg, msgAndArgs...))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func failureMsgFromError(err error) string {
|
||||||
|
// Handle errors with non-nil types
|
||||||
|
v := reflect.ValueOf(err)
|
||||||
|
if v.Kind() == reflect.Ptr && v.IsNil() {
|
||||||
|
return fmt.Sprintf("error is not nil: error has type %T", err)
|
||||||
|
}
|
||||||
|
return "error is not nil: " + err.Error()
|
||||||
|
}
|
||||||
|
|
||||||
func boolFailureMessage(expr ast.Expr) (string, error) {
|
func boolFailureMessage(expr ast.Expr) (string, error) {
|
||||||
if binaryExpr, ok := expr.(*ast.BinaryExpr); ok && binaryExpr.Op == token.NEQ {
|
if binaryExpr, ok := expr.(*ast.BinaryExpr); ok && binaryExpr.Op == token.NEQ {
|
||||||
x, err := source.FormatNode(binaryExpr.X)
|
x, err := source.FormatNode(binaryExpr.X)
|
||||||
@ -202,17 +212,20 @@ func boolFailureMessage(expr ast.Expr) (string, error) {
|
|||||||
return "expression is false: " + formatted, nil
|
return "expression is false: " + formatted, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assert performs a comparison. If the comparison fails the test is marked as
|
// Assert performs a comparison. If the comparison fails, the test is marked as
|
||||||
// failed, a failure message is logged, and execution is stopped immediately.
|
// failed, a failure message is logged, and execution is stopped immediately.
|
||||||
//
|
//
|
||||||
// The comparison argument may be one of three types: bool, cmp.Comparison or
|
// The comparison argument may be one of three types:
|
||||||
// error.
|
// bool
|
||||||
// When called with a bool the failure message will contain the literal source
|
// True is success. False is a failure.
|
||||||
// code of the expression.
|
// The failure message will contain the literal source code of the expression.
|
||||||
// When called with a cmp.Comparison the comparison is responsible for producing
|
// cmp.Comparison
|
||||||
// a helpful failure message.
|
// Uses cmp.Result.Success() to check for success of failure.
|
||||||
// When called with an error a nil value is considered success. A non-nil error
|
// The comparison is responsible for producing a helpful failure message.
|
||||||
// is a failure, and Error() is used as the failure message.
|
// http://gotest.tools/assert/cmp provides many common comparisons.
|
||||||
|
// error
|
||||||
|
// A nil value is considered success.
|
||||||
|
// A non-nil error is a failure, err.Error() is used as the failure message.
|
||||||
func Assert(t TestingT, comparison BoolOrComparison, msgAndArgs ...interface{}) {
|
func Assert(t TestingT, comparison BoolOrComparison, msgAndArgs ...interface{}) {
|
||||||
if ht, ok := t.(helperT); ok {
|
if ht, ok := t.(helperT); ok {
|
||||||
ht.Helper()
|
ht.Helper()
|
||||||
@ -260,10 +273,10 @@ func Equal(t TestingT, x, y interface{}, msgAndArgs ...interface{}) {
|
|||||||
assert(t, t.FailNow, argsAfterT, cmp.Equal(x, y), msgAndArgs...)
|
assert(t, t.FailNow, argsAfterT, cmp.Equal(x, y), msgAndArgs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepEqual uses google/go-cmp (http://bit.do/go-cmp) to assert two values are
|
// DeepEqual uses google/go-cmp (https://godoc.org/github.com/google/go-cmp/cmp)
|
||||||
// equal and fails the test if they are not equal.
|
// to assert two values are equal and fails the test if they are not equal.
|
||||||
//
|
//
|
||||||
// Package https://godoc.org/gotest.tools/assert/opt provides some additional
|
// Package http://gotest.tools/assert/opt provides some additional
|
||||||
// commonly used Options.
|
// commonly used Options.
|
||||||
//
|
//
|
||||||
// This is equivalent to Assert(t, cmp.DeepEqual(x, y)).
|
// This is equivalent to Assert(t, cmp.DeepEqual(x, y)).
|
||||||
@ -295,14 +308,19 @@ func ErrorContains(t TestingT, err error, substring string, msgAndArgs ...interf
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ErrorType fails the test if err is nil, or err is not the expected type.
|
// ErrorType fails the test if err is nil, or err is not the expected type.
|
||||||
|
// Equivalent to Assert(t, cmp.ErrorType(err, expected)).
|
||||||
//
|
//
|
||||||
// Expected can be one of:
|
// Expected can be one of:
|
||||||
// a func(error) bool which returns true if the error is the expected type,
|
// func(error) bool
|
||||||
// an instance of (or a pointer to) a struct of the expected type,
|
// Function should return true if the error is the expected type.
|
||||||
// a pointer to an interface the error is expected to implement,
|
// type struct{}, type &struct{}
|
||||||
// a reflect.Type of the expected struct or interface.
|
// A struct or a pointer to a struct.
|
||||||
//
|
// Fails if the error is not of the same type as expected.
|
||||||
// Equivalent to Assert(t, cmp.ErrorType(err, expected)).
|
// type &interface{}
|
||||||
|
// A pointer to an interface type.
|
||||||
|
// Fails if err does not implement the interface.
|
||||||
|
// reflect.Type
|
||||||
|
// Fails if err does not implement the reflect.Type
|
||||||
func ErrorType(t TestingT, err error, expected interface{}, msgAndArgs ...interface{}) {
|
func ErrorType(t TestingT, err error, expected interface{}, msgAndArgs ...interface{}) {
|
||||||
if ht, ok := t.(helperT); ok {
|
if ht, ok := t.(helperT); ok {
|
||||||
ht.Helper()
|
ht.Helper()
|
@ -1,5 +1,5 @@
|
|||||||
/*Package cmp provides Comparisons for Assert and Check*/
|
/*Package cmp provides Comparisons for Assert and Check*/
|
||||||
package cmp // import "gotest.tools/assert/cmp"
|
package cmp // import "gotest.tools/v3/assert/cmp"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -8,7 +8,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
"gotest.tools/internal/format"
|
"gotest.tools/v3/internal/format"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Comparison is a function which compares values and returns ResultSuccess if
|
// Comparison is a function which compares values and returns ResultSuccess if
|
||||||
@ -16,11 +16,12 @@ import (
|
|||||||
// Result will contain a message about why it failed.
|
// Result will contain a message about why it failed.
|
||||||
type Comparison func() Result
|
type Comparison func() Result
|
||||||
|
|
||||||
// DeepEqual compares two values using google/go-cmp (http://bit.do/go-cmp)
|
// DeepEqual compares two values using google/go-cmp
|
||||||
|
// (https://godoc.org/github.com/google/go-cmp/cmp)
|
||||||
// and succeeds if the values are equal.
|
// and succeeds if the values are equal.
|
||||||
//
|
//
|
||||||
// The comparison can be customized using comparison Options.
|
// The comparison can be customized using comparison Options.
|
||||||
// Package https://godoc.org/gotest.tools/assert/opt provides some additional
|
// Package http://gotest.tools/assert/opt provides some additional
|
||||||
// commonly used Options.
|
// commonly used Options.
|
||||||
func DeepEqual(x, y interface{}, opts ...cmp.Option) Comparison {
|
func DeepEqual(x, y interface{}, opts ...cmp.Option) Comparison {
|
||||||
return func() (result Result) {
|
return func() (result Result) {
|
||||||
@ -103,10 +104,10 @@ func Equal(x, y interface{}) Comparison {
|
|||||||
return multiLineDiffResult(diff)
|
return multiLineDiffResult(diff)
|
||||||
}
|
}
|
||||||
return ResultFailureTemplate(`
|
return ResultFailureTemplate(`
|
||||||
{{- .Data.x}} (
|
{{- printf "%v" .Data.x}} (
|
||||||
{{- with callArg 0 }}{{ formatNode . }} {{end -}}
|
{{- with callArg 0 }}{{ formatNode . }} {{end -}}
|
||||||
{{- printf "%T" .Data.x -}}
|
{{- printf "%T" .Data.x -}}
|
||||||
) != {{ .Data.y}} (
|
) != {{ printf "%v" .Data.y}} (
|
||||||
{{- with callArg 1 }}{{ formatNode . }} {{end -}}
|
{{- with callArg 1 }}{{ formatNode . }} {{end -}}
|
||||||
{{- printf "%T" .Data.y -}}
|
{{- printf "%T" .Data.y -}}
|
||||||
)`,
|
)`,
|
||||||
@ -241,10 +242,12 @@ func ErrorContains(err error, substring string) Comparison {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type causer interface {
|
||||||
|
Cause() error
|
||||||
|
}
|
||||||
|
|
||||||
func formatErrorMessage(err error) string {
|
func formatErrorMessage(err error) string {
|
||||||
if _, ok := err.(interface {
|
if _, ok := err.(causer); ok {
|
||||||
Cause() error
|
|
||||||
}); ok {
|
|
||||||
return fmt.Sprintf("%q\n%+v", err, err)
|
return fmt.Sprintf("%q\n%+v", err, err)
|
||||||
}
|
}
|
||||||
// This error was not wrapped with github.com/pkg/errors
|
// This error was not wrapped with github.com/pkg/errors
|
||||||
@ -283,10 +286,16 @@ func isNil(obj interface{}, msgFunc func(reflect.Value) string) Comparison {
|
|||||||
// ErrorType succeeds if err is not nil and is of the expected type.
|
// ErrorType succeeds if err is not nil and is of the expected type.
|
||||||
//
|
//
|
||||||
// Expected can be one of:
|
// Expected can be one of:
|
||||||
// a func(error) bool which returns true if the error is the expected type,
|
// func(error) bool
|
||||||
// an instance of (or a pointer to) a struct of the expected type,
|
// Function should return true if the error is the expected type.
|
||||||
// a pointer to an interface the error is expected to implement,
|
// type struct{}, type &struct{}
|
||||||
// a reflect.Type of the expected struct or interface.
|
// A struct or a pointer to a struct.
|
||||||
|
// Fails if the error is not of the same type as expected.
|
||||||
|
// type &interface{}
|
||||||
|
// A pointer to an interface type.
|
||||||
|
// Fails if err does not implement the interface.
|
||||||
|
// reflect.Type
|
||||||
|
// Fails if err does not implement the reflect.Type
|
||||||
func ErrorType(err error, expected interface{}) Comparison {
|
func ErrorType(err error, expected interface{}) Comparison {
|
||||||
return func() Result {
|
return func() Result {
|
||||||
switch expectedType := expected.(type) {
|
switch expectedType := expected.(type) {
|
@ -6,7 +6,7 @@ import (
|
|||||||
"go/ast"
|
"go/ast"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"gotest.tools/internal/source"
|
"gotest.tools/v3/internal/source"
|
||||||
)
|
)
|
||||||
|
|
||||||
// A Result of a Comparison.
|
// A Result of a Comparison.
|
@ -4,9 +4,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"go/ast"
|
"go/ast"
|
||||||
|
|
||||||
"gotest.tools/assert/cmp"
|
"gotest.tools/v3/assert/cmp"
|
||||||
"gotest.tools/internal/format"
|
"gotest.tools/v3/internal/format"
|
||||||
"gotest.tools/internal/source"
|
"gotest.tools/v3/internal/source"
|
||||||
)
|
)
|
||||||
|
|
||||||
func runComparison(
|
func runComparison(
|
10
vendor/gotest.tools/v3/go.mod
vendored
Normal file
10
vendor/gotest.tools/v3/go.mod
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
module gotest.tools/v3
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/google/go-cmp v0.3.0
|
||||||
|
github.com/pkg/errors v0.8.1
|
||||||
|
github.com/spf13/pflag v1.0.3
|
||||||
|
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4
|
||||||
|
)
|
||||||
|
|
||||||
|
go 1.11
|
@ -4,7 +4,7 @@ Original source: https://github.com/pmezard/go-difflib
|
|||||||
|
|
||||||
This file is trimmed to only the parts used by this repository.
|
This file is trimmed to only the parts used by this repository.
|
||||||
*/
|
*/
|
||||||
package difflib // import "gotest.tools/internal/difflib"
|
package difflib // import "gotest.tools/v3/internal/difflib"
|
||||||
|
|
||||||
func min(a, b int) int {
|
func min(a, b int) int {
|
||||||
if a < b {
|
if a < b {
|
@ -6,7 +6,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
|
||||||
"gotest.tools/internal/difflib"
|
"gotest.tools/v3/internal/difflib"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
@ -1,4 +1,4 @@
|
|||||||
package format // import "gotest.tools/internal/format"
|
package format // import "gotest.tools/v3/internal/format"
|
||||||
|
|
||||||
import "fmt"
|
import "fmt"
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package source // import "gotest.tools/internal/source"
|
package source // import "gotest.tools/v3/internal/source"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
@ -92,7 +92,9 @@ func nodePosition(fileset *token.FileSet, node ast.Node) token.Position {
|
|||||||
return fileset.Position(node.Pos())
|
return fileset.Position(node.Pos())
|
||||||
}
|
}
|
||||||
|
|
||||||
var goVersionBefore19 = func() bool {
|
// GoVersionLessThan returns true if runtime.Version() is semantically less than
|
||||||
|
// version 1.minor.
|
||||||
|
func GoVersionLessThan(minor int64) bool {
|
||||||
version := runtime.Version()
|
version := runtime.Version()
|
||||||
// not a release version
|
// not a release version
|
||||||
if !strings.HasPrefix(version, "go") {
|
if !strings.HasPrefix(version, "go") {
|
||||||
@ -103,9 +105,11 @@ var goVersionBefore19 = func() bool {
|
|||||||
if len(parts) < 2 {
|
if len(parts) < 2 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
minor, err := strconv.ParseInt(parts[1], 10, 32)
|
actual, err := strconv.ParseInt(parts[1], 10, 32)
|
||||||
return err == nil && parts[0] == "1" && minor < 9
|
return err == nil && parts[0] == "1" && actual < minor
|
||||||
}()
|
}
|
||||||
|
|
||||||
|
var goVersionBefore19 = GoVersionLessThan(9)
|
||||||
|
|
||||||
func getCallExprArgs(node ast.Node) ([]ast.Expr, error) {
|
func getCallExprArgs(node ast.Node) ([]ast.Expr, error) {
|
||||||
visitor := &callExprVisitor{}
|
visitor := &callExprVisitor{}
|
Loading…
Reference in New Issue
Block a user