aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/gopkg.in/check.v1/benchmark_test.go
blob: 4dd827c160da4b3eec00018051d56fc6938537e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// These tests verify the test running logic.

package check_test

import (
    "time"
    . "gopkg.in/check.v1"
)

var benchmarkS = Suite(&BenchmarkS{})

type BenchmarkS struct{}

func (s *BenchmarkS) TestCountSuite(c *C) {
    suitesRun += 1
}

func (s *BenchmarkS) TestBasicTestTiming(c *C) {
    helper := FixtureHelper{sleepOn: "Test1", sleep: 1000000 * time.Nanosecond}
    output := String{}
    runConf := RunConf{Output: &output, Verbose: true}
    Run(&helper, &runConf)

    expected := "PASS: check_test\\.go:[0-9]+: FixtureHelper\\.Test1\t0\\.001s\n" +
        "PASS: check_test\\.go:[0-9]+: FixtureHelper\\.Test2\t0\\.000s\n"
    c.Assert(output.value, Matches, expected)
}

func (s *BenchmarkS) TestStreamTestTiming(c *C) {
    helper := FixtureHelper{sleepOn: "SetUpSuite", sleep: 1000000 * time.Nanosecond}
    output := String{}
    runConf := RunConf{Output: &output, Stream: true}
    Run(&helper, &runConf)

    expected := "(?s).*\nPASS: check_test\\.go:[0-9]+: FixtureHelper\\.SetUpSuite\t *0\\.001s\n.*"
    c.Assert(output.value, Matches, expected)
}

func (s *BenchmarkS) TestBenchmark(c *C) {
    helper := FixtureHelper{sleep: 100000}
    output := String{}
    runConf := RunConf{
        Output:        &output,
        Benchmark:     true,
        BenchmarkTime: 10000000,
        Filter:        "Benchmark1",
    }
    Run(&helper, &runConf)
    c.Check(helper.calls[0], Equals, "SetUpSuite")
    c.Check(helper.calls[1], Equals, "SetUpTest")
    c.Check(helper.calls[2], Equals, "Benchmark1")
    c.Check(helper.calls[3], Equals, "TearDownTest")
    c.Check(helper.calls[4], Equals, "SetUpTest")
    c.Check(helper.calls[5], Equals, "Benchmark1")
    c.Check(helper.calls[6], Equals, "TearDownTest")
    // ... and more.

    expected := "PASS: check_test\\.go:[0-9]+: FixtureHelper\\.Benchmark1\t *100\t *[12][0-9]{5} ns/op\n"
    c.Assert(output.value, Matches, expected)
}

func (s *BenchmarkS) TestBenchmarkBytes(c *C) {
    helper := FixtureHelper{sleep: 100000}
    output := String{}
    runConf := RunConf{
        Output:        &output,
        Benchmark:     true,
        BenchmarkTime: 10000000,
        Filter:        "Benchmark2",
    }
    Run(&helper, &runConf)

    expected := "PASS: check_test\\.go:[0-9]+: FixtureHelper\\.Benchmark2\t *100\t *[12][0-9]{5} ns/op\t *[4-9]\\.[0-9]{2} MB/s\n"
    c.Assert(output.value, Matches, expected)
}

func (s *BenchmarkS) TestBenchmarkMem(c *C) {
    helper := FixtureHelper{sleep: 100000}
    output := String{}
    runConf := RunConf{
        Output:        &output,
        Benchmark:     true,
        BenchmarkMem:  true,
        BenchmarkTime: 10000000,
        Filter:        "Benchmark3",
    }
    Run(&helper, &runConf)

    expected := "PASS: check_test\\.go:[0-9]+: FixtureHelper\\.Benchmark3\t *100\t *[12][0-9]{5} ns/op\t *[0-9]+ B/op\t *[1-9] allocs/op\n"
    c.Assert(output.value, Matches, expected)
}