1// +build darwin
2
3package libkb
4
5import (
6	"crypto/sha256"
7	"testing"
8
9	"github.com/pkg/xattr"
10	"github.com/stretchr/testify/require"
11)
12
13func TestSetDisableBackup(t *testing.T) {
14	tc := SetupTest(t, "erasable kv store disable backup", 1)
15	defer tc.Cleanup()
16	mctx := NewMetaContextForTest(tc)
17
18	subDir := ""
19	s := NewFileErasableKVStore(mctx, subDir, func(_ MetaContext, noise NoiseBytes) ([32]byte, error) {
20		return sha256.Sum256(noise[:]), nil
21	})
22	key := "test-key"
23	value := "value"
24
25	require.NoError(t, s.Put(mctx, key, value))
26
27	storageDir := getStorageDir(mctx, subDir)
28	// Check that we set noBackup on the key
29	metadata, err := xattr.Get(storageDir, key)
30	require.NoError(t, err)
31	require.Equal(t, []byte(noBackup), metadata)
32
33	// Check that we set noBackup on the noise
34	metadata, err = xattr.Get(storageDir, key+noiseSuffix)
35	require.NoError(t, err)
36	require.Equal(t, []byte(noBackup), metadata)
37}
38