blob: 6d630d4bfa5a4bb84cfc30259e1f176e2b3a1537 [file] [log] [blame]
package db
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"go.skia.org/infra/go/testutils"
"go.skia.org/infra/go/trace/db/perftypes"
"go.skia.org/infra/go/util"
)
func TestAdd(t *testing.T) {
testutils.MediumTest(t)
ts, cleanup := setupClientServerForTesting(t.Fatalf)
defer cleanup()
now := time.Unix(100, 0)
commitIDs := []*CommitID{
{
Timestamp: now.Unix(),
ID: "abc123",
Source: "master",
},
{
Timestamp: now.Add(time.Hour).Unix(),
ID: "xyz789",
Source: "master",
},
}
entries := map[string]*Entry{
"key:8888:android": {
Params: map[string]string{
"config": "8888",
"platform": "android",
"type": "skp",
},
Value: perftypes.BytesFromFloat64(0.01),
},
"key:gpu:win8": {
Params: map[string]string{
"config": "gpu",
"platform": "win8",
"type": "skp",
},
Value: perftypes.BytesFromFloat64(1.234),
},
}
err := ts.Add(commitIDs[0], entries)
assert.NoError(t, err)
tile, hashes, err := ts.TileFromCommits(commitIDs)
assert.NoError(t, err)
assert.Equal(t, 2, len(tile.Traces))
assert.Equal(t, 2, len(tile.Commits))
assert.Equal(t, 2, len(hashes))
assert.True(t, util.In("d41d8cd98f00b204e9800998ecf8427e", hashes))
assert.NotEqual(t, hashes[0], hashes[1])
tr := tile.Traces["key:8888:android"].(*perftypes.PerfTrace)
assert.Equal(t, 0.01, tr.Values[0])
assert.True(t, tr.IsMissing(1))
assert.Equal(t, "8888", tr.Params()["config"])
tr = tile.Traces["key:gpu:win8"].(*perftypes.PerfTrace)
assert.Equal(t, 1.234, tr.Values[0])
assert.True(t, tr.IsMissing(1))
assert.Equal(t, "abc123", tile.Commits[0].Hash)
assert.Equal(t, "xyz789", tile.Commits[1].Hash)
foundCommits, err := ts.List(now, now.Add(time.Hour))
assert.NoError(t, err)
assert.Equal(t, 1, len(foundCommits))
}