aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/pkg/controller
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-07-11 13:17:34 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-07-14 11:30:46 +0000
commit76718eb73e3d1e2a43363d80ab15366706b6491f (patch)
tree4d8008f2b7fcfb674e7f8c9562c9cc3643aea50f /syz-cluster/pkg/controller
parent0bfc1202cebeedf826d470296424f85dee4fe842 (diff)
syz-cluster: generate web dashboard URLs for reports
Take web dashboard URL from the config and use it to generate links for logs, reproducers, etc.
Diffstat (limited to 'syz-cluster/pkg/controller')
-rw-r--r--syz-cluster/pkg/controller/api_test.go20
-rw-r--r--syz-cluster/pkg/controller/testutil.go26
2 files changed, 29 insertions, 17 deletions
diff --git a/syz-cluster/pkg/controller/api_test.go b/syz-cluster/pkg/controller/api_test.go
index 621be5686..c086f31ce 100644
--- a/syz-cluster/pkg/controller/api_test.go
+++ b/syz-cluster/pkg/controller/api_test.go
@@ -16,14 +16,14 @@ import (
func TestAPIGetSeries(t *testing.T) {
env, ctx := app.TestEnvironment(t)
client := TestServer(t, env)
- seriesID, sessionID := UploadTestSeries(t, ctx, client, testSeries)
+ ids := UploadTestSeries(t, ctx, client, testSeries)
- ret, err := client.GetSessionSeries(ctx, sessionID)
+ ret, err := client.GetSessionSeries(ctx, ids.SessionID)
assert.NoError(t, err)
ret.ID = ""
assert.Equal(t, testSeries, ret)
- ret, err = client.GetSeries(ctx, seriesID)
+ ret, err = client.GetSeries(ctx, ids.SeriesID)
assert.NoError(t, err)
ret.ID = ""
assert.Equal(t, testSeries, ret)
@@ -47,10 +47,10 @@ func TestAPISaveFinding(t *testing.T) {
env, ctx := app.TestEnvironment(t)
client := TestServer(t, env)
- _, sessionID := UploadTestSeries(t, ctx, client, testSeries)
+ ids := UploadTestSeries(t, ctx, client, testSeries)
buildResp := UploadTestBuild(t, ctx, client, testBuild)
err := client.UploadTestResult(ctx, &api.TestResult{
- SessionID: sessionID,
+ SessionID: ids.SessionID,
BaseBuildID: buildResp.ID,
TestName: "test",
Result: api.TestRunning,
@@ -60,7 +60,7 @@ func TestAPISaveFinding(t *testing.T) {
t.Run("not existing test", func(t *testing.T) {
err = client.UploadFinding(ctx, &api.NewFinding{
- SessionID: sessionID,
+ SessionID: ids.SessionID,
TestName: "unknown test",
})
assert.Error(t, err)
@@ -68,7 +68,7 @@ func TestAPISaveFinding(t *testing.T) {
t.Run("must succeed", func(t *testing.T) {
finding := &api.NewFinding{
- SessionID: sessionID,
+ SessionID: ids.SessionID,
TestName: "test",
Report: []byte("report"),
Log: []byte("log"),
@@ -88,17 +88,17 @@ func TestAPIUploadTestArtifacts(t *testing.T) {
env, ctx := app.TestEnvironment(t)
client := TestServer(t, env)
- _, sessionID := UploadTestSeries(t, ctx, client, testSeries)
+ ids := UploadTestSeries(t, ctx, client, testSeries)
buildResp := UploadTestBuild(t, ctx, client, testBuild)
err := client.UploadTestResult(ctx, &api.TestResult{
- SessionID: sessionID,
+ SessionID: ids.SessionID,
BaseBuildID: buildResp.ID,
TestName: "test",
Result: api.TestRunning,
Log: []byte("some log"),
})
assert.NoError(t, err)
- err = client.UploadTestArtifacts(ctx, sessionID, "test", bytes.NewReader([]byte("artifacts content")))
+ err = client.UploadTestArtifacts(ctx, ids.SessionID, "test", bytes.NewReader([]byte("artifacts content")))
assert.NoError(t, err)
}
diff --git a/syz-cluster/pkg/controller/testutil.go b/syz-cluster/pkg/controller/testutil.go
index f4d813e2f..0a72914c7 100644
--- a/syz-cluster/pkg/controller/testutil.go
+++ b/syz-cluster/pkg/controller/testutil.go
@@ -16,16 +16,24 @@ import (
"github.com/stretchr/testify/assert"
)
+type EntityIDs struct {
+ SeriesID string
+ SessionID string
+}
+
// UploadTestSeries returns a (series ID, session ID) tuple.
func UploadTestSeries(t *testing.T, ctx context.Context,
- client *api.Client, series *api.Series) (string, string) {
+ client *api.Client, series *api.Series) EntityIDs {
retSeries, err := client.UploadSeries(ctx, series)
assert.NoError(t, err)
retSession, err := client.UploadSession(ctx, &api.NewSession{
ExtID: series.ExtID,
})
assert.NoError(t, err)
- return retSeries.ID, retSession.ID
+ return EntityIDs{
+ SeriesID: retSeries.ID,
+ SessionID: retSession.ID,
+ }
}
func UploadTestBuild(t *testing.T, ctx context.Context, client *api.Client,
@@ -76,18 +84,21 @@ func DummyFindings() []*api.NewFinding {
Title: fmt.Sprintf("finding %d", i),
TestName: "test",
Report: []byte(fmt.Sprintf("report %d", i)),
+ Log: []byte(fmt.Sprintf("log %d", i)),
+ SyzRepro: []byte(fmt.Sprintf("log %d", i)),
+ CRepro: []byte(fmt.Sprintf("log %d", i)),
})
}
return findings
}
func FakeSeriesWithFindings(t *testing.T, ctx context.Context, env *app.AppEnvironment,
- client *api.Client, series *api.Series) {
- _, sessionID := UploadTestSeries(t, ctx, client, series)
+ client *api.Client, series *api.Series) EntityIDs {
+ ids := UploadTestSeries(t, ctx, client, series)
baseBuild := UploadTestBuild(t, ctx, client, DummyBuild())
patchedBuild := UploadTestBuild(t, ctx, client, DummyBuild())
err := client.UploadTestResult(ctx, &api.TestResult{
- SessionID: sessionID,
+ SessionID: ids.SessionID,
BaseBuildID: baseBuild.ID,
PatchedBuildID: patchedBuild.ID,
TestName: "test",
@@ -97,11 +108,12 @@ func FakeSeriesWithFindings(t *testing.T, ctx context.Context, env *app.AppEnvir
findings := DummyFindings()
for _, finding := range findings {
- finding.SessionID = sessionID
+ finding.SessionID = ids.SessionID
err = client.UploadFinding(ctx, finding)
assert.NoError(t, err)
}
- MarkSessionFinished(t, env, sessionID)
+ MarkSessionFinished(t, env, ids.SessionID)
+ return ids
}
func MarkSessionFinished(t *testing.T, env *app.AppEnvironment, sessionID string) {