本文整理汇总了Golang中github.com/pingcap/check.C类的典型用法代码示例。如果您正苦于以下问题:Golang C类的具体用法?Golang C怎么用?Golang C使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了C类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestDefaultTypeForValue
func (s *testFieldTypeSuite) TestDefaultTypeForValue(c *check.C) {
nullType := DefaultTypeForValue(nil)
di := &DataItem{Type: nullType}
cases := []struct {
value interface{}
tp byte
}{
{nil, mysql.TypeNull},
{1, mysql.TypeLonglong},
{uint64(1), mysql.TypeLonglong},
{"abc", mysql.TypeVarString},
{1.1, mysql.TypeNewDecimal},
{[]byte("abc"), mysql.TypeBlob},
{mysql.Bit{}, mysql.TypeBit},
{mysql.Hex{}, mysql.TypeVarchar},
{mysql.Time{Type: mysql.TypeDatetime}, mysql.TypeDatetime},
{mysql.Duration{}, mysql.TypeDuration},
{mysql.Decimal{}, mysql.TypeNewDecimal},
{mysql.Enum{}, mysql.TypeEnum},
{mysql.Set{}, mysql.TypeSet},
{di, mysql.TypeNull},
}
for _, ca := range cases {
ft := DefaultTypeForValue(ca.value)
c.Assert(ft.Tp, check.Equals, ca.tp, check.Commentf("%v %v", ft, ca))
}
}
示例2: AfterTest
// AfterTest gets the current goroutines and runs the returned function to
// get the goroutines at that time to contrast wheter any goroutines leaked.
// Usage: defer testleak.AfterTest(c)()
// It can call with BeforeTest() at the beginning of check.Suite.TearDownSuite() or
// call alone at the beginning of each test.
func AfterTest(c *check.C) func() {
if len(beforeTestGorountines) == 0 {
for _, g := range interestingGoroutines() {
beforeTestGorountines[g] = true
}
}
return func() {
defer func() {
beforeTestGorountines = map[string]bool{}
}()
var leaked []string
for i := 0; i < 50; i++ {
for _, g := range interestingGoroutines() {
if !beforeTestGorountines[g] {
leaked = append(leaked, g)
}
}
// Bad stuff found, but goroutines might just still be
// shutting down, so give it some time.
if len(leaked) != 0 {
leaked = leaked[:0]
time.Sleep(50 * time.Millisecond)
continue
}
return
}
for _, g := range leaked {
c.Errorf("Test appears to have leaked: %v", g)
}
}
}
示例3: TestLogfAndGetTestLog
func (s *BootstrapS) TestLogfAndGetTestLog(c *check.C) {
c.Logf("Hello %v", "there!")
log := c.GetTestLog()
if log != "Hello there!\n" {
critical(fmt.Sprintf("Logf() or GetTestLog() is not working! Got: %#v", log))
}
}
示例4: testToFloat64
func testToFloat64(c *check.C, val interface{}, expect float64) {
b, err := ToFloat64(val)
c.Assert(err, check.IsNil)
diff := math.Abs(b - expect)
Epsilon := float64(0.00000001)
c.Assert(Epsilon, check.Greater, diff)
}
示例5: Benchmark2
func (s *FixtureHelper) Benchmark2(c *check.C) {
s.trace("Benchmark2", c)
c.SetBytes(1024)
for i := 0; i < c.N; i++ {
time.Sleep(s.sleep)
}
}
示例6: TestComment
func (s *CheckersS) TestComment(c *check.C) {
bug := check.Commentf("a %d bc", 42)
comment := bug.CheckCommentString()
if comment != "a 42 bc" {
c.Fatalf("Commentf returned %#v", comment)
}
}
示例7: TestPanics
func (s *CheckersS) TestPanics(c *check.C) {
testInfo(c, check.Panics, "Panics", []string{"function", "expected"})
// Some errors.
testCheck(c, check.Panics, false, "Function has not panicked", func() bool { return false }, "BOOM")
testCheck(c, check.Panics, false, "Function must take zero arguments", 1, "BOOM")
// Plain strings.
testCheck(c, check.Panics, true, "", func() { panic("BOOM") }, "BOOM")
testCheck(c, check.Panics, false, "", func() { panic("KABOOM") }, "BOOM")
testCheck(c, check.Panics, true, "", func() bool { panic("BOOM") }, "BOOM")
// Error values.
testCheck(c, check.Panics, true, "", func() { panic(errors.New("BOOM")) }, errors.New("BOOM"))
testCheck(c, check.Panics, false, "", func() { panic(errors.New("KABOOM")) }, errors.New("BOOM"))
type deep struct{ i int }
// Deep value
testCheck(c, check.Panics, true, "", func() { panic(&deep{99}) }, &deep{99})
// Verify params/names mutation
params, names := testCheck(c, check.Panics, false, "", func() { panic(errors.New("KABOOM")) }, errors.New("BOOM"))
c.Assert(params[0], check.ErrorMatches, "KABOOM")
c.Assert(names[0], check.Equals, "panic")
// Verify a nil panic
testCheck(c, check.Panics, true, "", func() { panic(nil) }, nil)
testCheck(c, check.Panics, false, "", func() { panic(nil) }, "NOPE")
}
示例8: testHasKey
func testHasKey(c *check.C, expectedResult bool, expectedErr string, params ...interface{}) {
actualResult, actualErr := check.HasKey.Check(params, nil)
if actualResult != expectedResult || actualErr != expectedErr {
c.Fatalf(
"Check returned (%#v, %#v) rather than (%#v, %#v)",
actualResult, actualErr, expectedResult, expectedErr)
}
}
示例9: TestExpectFailureSucceed
func (s *FoundationS) TestExpectFailureSucceed(c *check.C) {
helper := ExpectFailureSucceedHelper{}
output := String{}
result := check.Run(&helper, &check.RunConf{Output: &output})
c.Assert(output.value, check.Equals, "")
c.Assert(result.ExpectedFailures, check.Equals, 1)
}
示例10: testInfo
func testInfo(c *check.C, checker check.Checker, name string, paramNames []string) {
info := checker.Info()
if info.Name != name {
c.Fatalf("Got name %s, expected %s", info.Name, name)
}
if !reflect.DeepEqual(info.Params, paramNames) {
c.Fatalf("Got param names %#v, expected %#v", info.Params, paramNames)
}
}
示例11: TestSkip
func (s *FoundationS) TestSkip(c *check.C) {
helper := SkipTestHelper{}
output := String{}
check.Run(&helper, &check.RunConf{Output: &output})
if output.value != "" {
c.Error("Skip() logged something:\n", output.value)
}
}
示例12: TestMinLogger
func (s *BootstrapS) TestMinLogger(c *check.C) {
var logger minLogger
logger = log.New(os.Stderr, "", 0)
logger = c
logger.Output(0, "Hello there")
expected := `\[LOG\] [0-9]+:[0-9][0-9]\.[0-9][0-9][0-9] +Hello there\n`
output := c.GetTestLog()
c.Assert(output, check.Matches, expected)
}
示例13: TestCheckSucceedWithoutExpected
func (s *HelpersS) TestCheckSucceedWithoutExpected(c *check.C) {
checker := &MyChecker{result: true, info: &check.CheckerInfo{Params: []string{"myvalue"}}}
testHelperSuccess(c, "Check(1, checker)", true, func() interface{} {
return c.Check(1, checker)
})
if !reflect.DeepEqual(checker.params, []interface{}{1}) {
c.Fatalf("Bad params for check: %#v", checker.params)
}
}
示例14: TestCheckSucceedWithExpected
func (s *HelpersS) TestCheckSucceedWithExpected(c *check.C) {
checker := &MyChecker{result: true}
testHelperSuccess(c, "Check(1, checker, 2)", true, func() interface{} {
return c.Check(1, checker, 2)
})
if !reflect.DeepEqual(checker.params, []interface{}{1, 2}) {
c.Fatalf("Bad params for check: %#v", checker.params)
}
}
示例15: accept
func accept(c *check.C, tp byte, value interface{}, unsigned bool, expected string) {
ft := NewFieldType(tp)
if unsigned {
ft.Flag |= mysql.UnsignedFlag
}
// casted, err := col.CastValue(nil, value)
casted, err := Convert(value, ft)
c.Assert(err, check.IsNil, check.Commentf("%v", ft))
c.Assert(fmt.Sprintf("%v", casted), check.Equals, expected)
}