tka: fix go vet complaint on copy of lock value in tailchonk_test.go (#8208)

go vet complains when we copy a lock value. Create clone function that
copies everything but the lock value.

Fixes #8207

Signed-off-by: Val <valerie@tailscale.com>
This commit is contained in:
valscale 2023-05-25 13:34:13 -07:00 committed by GitHub
parent cb94ddb7b8
commit 370b2c37e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"sync"
"testing" "testing"
"time" "time"
@ -620,6 +621,14 @@ func (c *compactingChonkFake) PurgeAUMs(hashes []AUMHash) error {
return nil return nil
} }
// Avoid go vet complaining about copying a lock value
func cloneMem(src, dst *Mem) {
dst.l = sync.RWMutex{}
dst.aums = src.aums
dst.parentIndex = src.parentIndex
dst.lastActiveAncestor = src.lastActiveAncestor
}
func TestCompact(t *testing.T) { func TestCompact(t *testing.T) {
fakeState := &State{ fakeState := &State{
Keys: []Key{{Kind: Key25519, Votes: 1}}, Keys: []Key{{Kind: Key25519, Votes: 1}},
@ -661,12 +670,13 @@ func TestCompact(t *testing.T) {
`, optTemplate("checkpoint", AUM{MessageKind: AUMCheckpoint, State: fakeState})) `, optTemplate("checkpoint", AUM{MessageKind: AUMCheckpoint, State: fakeState}))
storage := &compactingChonkFake{ storage := &compactingChonkFake{
Mem: (*c.Chonk().(*Mem)),
aumAge: map[AUMHash]time.Time{(c.AUMHashes["F1"]): time.Now()}, aumAge: map[AUMHash]time.Time{(c.AUMHashes["F1"]): time.Now()},
t: t, t: t,
wantDelete: []AUMHash{c.AUMHashes["A"], c.AUMHashes["B"], c.AUMHashes["OLD"]}, wantDelete: []AUMHash{c.AUMHashes["A"], c.AUMHashes["B"], c.AUMHashes["OLD"]},
} }
cloneMem(c.Chonk().(*Mem), &storage.Mem)
lastActiveAncestor, err := Compact(storage, c.AUMHashes["H"], CompactionOptions{MinChain: 2, MinAge: time.Hour}) lastActiveAncestor, err := Compact(storage, c.AUMHashes["H"], CompactionOptions{MinChain: 2, MinAge: time.Hour})
if err != nil { if err != nil {
t.Errorf("Compact() failed: %v", err) t.Errorf("Compact() failed: %v", err)