| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // Copyright (C) 2014 The Syncthing Authors.
- //
- // This Source Code Form is subject to the terms of the Mozilla Public
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
- // You can obtain one at http://mozilla.org/MPL/2.0/.
- package versioner
- import (
- "io/ioutil"
- "os"
- "path/filepath"
- "testing"
- "time"
- )
- func TestStaggeredVersioningVersionCount(t *testing.T) {
- if testing.Short() {
- t.Skip("Test takes some time, skipping.")
- }
- dir, err := ioutil.TempDir("", "")
- defer os.RemoveAll(dir)
- if err != nil {
- t.Error(err)
- }
- v := NewStaggered("", dir, map[string]string{"maxAge": "365"})
- versionDir := filepath.Join(dir, ".stversions")
- path := filepath.Join(dir, "test")
- for i := 1; i <= 3; i++ {
- f, err := os.Create(path)
- if err != nil {
- t.Error(err)
- }
- f.Close()
- v.Archive(path)
- d, err := os.Open(versionDir)
- if err != nil {
- t.Error(err)
- }
- n, err := d.Readdirnames(-1)
- if err != nil {
- t.Error(err)
- }
- if len(n) != 1 {
- t.Error("Wrong count")
- }
- d.Close()
- time.Sleep(time.Second)
- }
- os.RemoveAll(path)
- for i := 1; i <= 3; i++ {
- f, err := os.Create(path)
- if err != nil {
- t.Error(err)
- }
- f.Close()
- v.Archive(path)
- d, err := os.Open(versionDir)
- if err != nil {
- t.Error(err)
- }
- n, err := d.Readdirnames(-1)
- if err != nil {
- t.Error(err)
- }
- if len(n) != i {
- t.Error("Wrong count")
- }
- d.Close()
- time.Sleep(31 * time.Second)
- }
- os.RemoveAll(path)
- }
|