Files
dolt/go/performance/sysbench/sysbench_test.go
2022-12-09 11:59:01 -08:00

144 lines
5.0 KiB
Go

// Copyright 2022 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package sysbench
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestPopulateHistogram(t *testing.T) {
tests := []struct {
name string
in []byte
exp Result
}{
{
name: "w/ histogram",
in: []byte(`
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Creating table 'sbtest1'...
Inserting 10000 records into 'sbtest1'
Creating a secondary index on 'sbtest1'...
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 1
Initializing random number generator from seed (1).
Initializing worker threads...
Threads started!
Latency histogram (values are in milliseconds)
value ------------- distribution ------------- count
1.319 |**** 3
1.343 |******** 6
1.367 |****************** 14
1.392 |********************* 17
1.417 |******************************* 25
1.443 |**************************************** 32
1.469 |************************ 19
1.496 |******************* 15
1.523 |****** 5
1.551 |****** 5
1.579 |******** 6
1.608 |******** 6
1.637 |****** 5
1.667 |*** 2
1.697 |***** 4
1.791 |* 1
1.891 |* 1
2.106 |**** 3
2.184 |*** 2
2.223 |**** 3
2.264 |*** 2
2.305 |**** 3
2.347 |**** 3
2.389 |**** 3
2.433 |****** 5
2.477 |*** 2
2.522 |**** 3
2.568 |*** 2
2.662 |* 1
2.760 |* 1
3.130 |* 1
SQL statistics:
queries performed:
read: 200
write: 0
other: 0
total: 200
transactions: 200 (609.48 per sec.)
queries: 200 (609.48 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 0.3272s
total number of events: 200
Latency (ms):
min: 1.32
avg: 1.62
max: 3.14
95th percentile: 2.43
sum: 324.91
Threads fairness:
events (avg/stddev): 200.0000/0.00
execution time (avg/stddev): 0.3249/0.00
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Dropping table 'sbtest1'...`),
exp: Result{
time: .327,
iters: 200,
avg: 1.62,
median: 1.496,
stddev: .369,
hist: &Hist{
bins: []float64{1.319, 1.343, 1.367, 1.392, 1.417, 1.443, 1.469, 1.496, 1.523, 1.551, 1.579, 1.608, 1.637, 1.667, 1.697, 1.791, 1.891, 2.106, 2.184, 2.223, 2.264, 2.305, 2.347, 2.389, 2.433, 2.477, 2.522, 2.568, 2.662, 2.760, 3.130},
cnts: []int{3, 6, 14, 17, 25, 32, 19, 15, 5, 5, 6, 6, 5, 2, 4, 1, 1, 3, 2, 3, 2, 3, 3, 3, 5, 2, 3, 2, 1, 1, 1},
cnt: 200,
mn: 1.623,
md: 1.496,
v: .136,
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
r := &Result{}
r.populateHistogram(tt.in)
require.Equal(t, r.String(), tt.exp.String())
})
}
}
func TestLogJoin(t *testing.T) {
t.Skip()
scriptDir := "/Users/max-hoffman/go/src/github.com/dolthub/systab-sysbench-scripts"
RunTestsFile(t, "testdata/log-join.yaml", scriptDir)
}