mirror of
https://github.com/getsops/sops.git
synced 2026-02-07 00:46:15 +01:00
It's been around 9 months since our last vendor update. This is also needed for some new features being worked on for sops workspace. Additionally, this PR regenerates the kms mocks.
75 lines
1.9 KiB
Go
75 lines
1.9 KiB
Go
// Copyright 2017, The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE.md file.
|
|
|
|
package teststructs
|
|
|
|
import (
|
|
"time"
|
|
|
|
pb "github.com/google/go-cmp/cmp/internal/testprotos"
|
|
)
|
|
|
|
// This is an sanitized example of equality from a real use-case.
|
|
// The original equality function was as follows:
|
|
/*
|
|
func equalBatch(b1, b2 *GermBatch) bool {
|
|
for _, b := range []*GermBatch{b1, b2} {
|
|
for _, l := range b.DirtyGerms {
|
|
sort.Slice(l, func(i, j int) bool { return l[i].String() < l[j].String() })
|
|
}
|
|
for _, l := range b.CleanGerms {
|
|
sort.Slice(l, func(i, j int) bool { return l[i].String() < l[j].String() })
|
|
}
|
|
}
|
|
if !pb.DeepEqual(b1.DirtyGerms, b2.DirtyGerms) ||
|
|
!pb.DeepEqual(b1.CleanGerms, b2.CleanGerms) ||
|
|
!pb.DeepEqual(b1.GermMap, b2.GermMap) {
|
|
return false
|
|
}
|
|
if len(b1.DishMap) != len(b2.DishMap) {
|
|
return false
|
|
}
|
|
for id := range b1.DishMap {
|
|
kpb1, err1 := b1.DishMap[id].Proto()
|
|
kpb2, err2 := b2.DishMap[id].Proto()
|
|
if !pb.Equal(kpb1, kpb2) || !reflect.DeepEqual(err1, err2) {
|
|
return false
|
|
}
|
|
}
|
|
return b1.HasPreviousResult == b2.HasPreviousResult &&
|
|
b1.DirtyID == b2.DirtyID &&
|
|
b1.CleanID == b2.CleanID &&
|
|
b1.GermStrain == b2.GermStrain &&
|
|
b1.TotalDirtyGerms == b2.TotalDirtyGerms &&
|
|
b1.InfectedAt.Equal(b2.InfectedAt)
|
|
}
|
|
*/
|
|
|
|
type GermBatch struct {
|
|
DirtyGerms, CleanGerms map[int32][]*pb.Germ
|
|
GermMap map[int32]*pb.Germ
|
|
DishMap map[int32]*Dish
|
|
HasPreviousResult bool
|
|
DirtyID, CleanID int32
|
|
GermStrain int32
|
|
TotalDirtyGerms int
|
|
InfectedAt time.Time
|
|
}
|
|
|
|
type Dish struct {
|
|
pb *pb.Dish
|
|
err error
|
|
}
|
|
|
|
func CreateDish(m *pb.Dish, err error) *Dish {
|
|
return &Dish{pb: m, err: err}
|
|
}
|
|
|
|
func (d *Dish) Proto() (*pb.Dish, error) {
|
|
if d.err != nil {
|
|
return nil, d.err
|
|
}
|
|
return d.pb, nil
|
|
}
|