1// Copyright 2015 The etcd Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package v3compactor
16
17import (
18	"context"
19	"sync/atomic"
20
21	pb "go.etcd.io/etcd/etcdserver/etcdserverpb"
22	"go.etcd.io/etcd/pkg/testutil"
23)
24
25type fakeCompactable struct {
26	testutil.Recorder
27}
28
29func (fc *fakeCompactable) Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.CompactionResponse, error) {
30	fc.Record(testutil.Action{Name: "c", Params: []interface{}{r}})
31	return &pb.CompactionResponse{}, nil
32}
33
34type fakeRevGetter struct {
35	testutil.Recorder
36	rev int64
37}
38
39func (fr *fakeRevGetter) Rev() int64 {
40	fr.Record(testutil.Action{Name: "g"})
41	rev := atomic.AddInt64(&fr.rev, 1)
42	return rev
43}
44
45func (fr *fakeRevGetter) SetRev(rev int64) {
46	atomic.StoreInt64(&fr.rev, rev)
47}
48