github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/syz-cluster/pkg/db/base_finding_repo_test.go (about)

     1  // Copyright 2025 syzkaller project authors. All rights reserved.
     2  // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  package db
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestBaseFindingRepository(t *testing.T) {
    14  	client, ctx := NewTransientDB(t)
    15  	repo := NewBaseFindingRepository(client)
    16  
    17  	// It works fine on unknown titles.
    18  	exists, err := repo.Exists(ctx, &BaseFinding{
    19  		CommitHash: "abcd",
    20  		Config:     "cfg",
    21  		Arch:       "x86",
    22  	})
    23  	require.NoError(t, err)
    24  	assert.False(t, exists)
    25  
    26  	// Add some new title.
    27  	finding := &BaseFinding{
    28  		CommitHash: "hash",
    29  		Config:     "config",
    30  		Arch:       "arch",
    31  		Title:      "title",
    32  	}
    33  	err = repo.Save(ctx, finding)
    34  	require.NoError(t, err)
    35  
    36  	// Verify it exists.
    37  	exists, err = repo.Exists(ctx, finding)
    38  	require.NoError(t, err)
    39  	assert.True(t, exists)
    40  }