diff --git a/fs/filter.go b/fs/filter.go index d3e8173fa..0a6d689ad 100644 --- a/fs/filter.go +++ b/fs/filter.go @@ -182,6 +182,7 @@ func NewFilter() (f *Filter, err error) { return nil, err } f.ModTimeTo = time.Now().Add(-duration) + Debug(nil, "--min-age %v to %v", duration, f.ModTimeTo) } if *maxAge != "" { duration, err := ParseDuration(*maxAge) @@ -192,6 +193,7 @@ func NewFilter() (f *Filter, err error) { if !f.ModTimeTo.IsZero() && f.ModTimeTo.Before(f.ModTimeFrom) { return nil, fmt.Errorf("Argument --min-age can't be larger than --max-age") } + Debug(nil, "--max-age %v to %v", duration, f.ModTimeFrom) } if *dumpFilters { fmt.Println("--- start filters ---") @@ -265,7 +267,7 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time) bool { if !f.ModTimeFrom.IsZero() && modTime.Before(f.ModTimeFrom) { return false } - if !f.ModTimeFrom.IsZero() && modTime.After(f.ModTimeTo) { + if !f.ModTimeTo.IsZero() && modTime.After(f.ModTimeTo) { return false } if f.MinSize != 0 && size < f.MinSize { @@ -288,7 +290,7 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time) bool { func (f *Filter) IncludeObject(o Object) bool { var modTime time.Time - if !f.ModTimeFrom.IsZero() || !f.ModTimeFrom.IsZero() { + if !f.ModTimeFrom.IsZero() || !f.ModTimeTo.IsZero() { modTime = o.ModTime() } else { modTime = time.Unix(0, 0) diff --git a/fs/filter_test.go b/fs/filter_test.go index dcc317ce0..cbfea924a 100644 --- a/fs/filter_test.go +++ b/fs/filter_test.go @@ -234,19 +234,49 @@ func TestNewFilterMaxSize(t *testing.T) { }) } -func TestNewFilterModFile(t *testing.T) { +func TestNewFilterMinAndMaxAge(t *testing.T) { f, err := NewFilter() if err != nil { t.Fatal(err) } - f.ModTimeFrom = time.Unix(1447346230, 0) - f.ModTimeTo = time.Unix(1447432630, 0) + f.ModTimeFrom = time.Unix(1440000002, 0) + f.ModTimeTo = time.Unix(1440000003, 0) testInclude(t, f, []includeTest{ - {"file1.jpg", 100, 1447346230, true}, - {"file2.jpg", 101, 1447389430, true}, - {"file3.jpg", 102, 1447432630, true}, - {"potato/file1.jpg", 98, 1447346229, false}, - {"potato/file2.jpg", 99, 1447432631, false}, + {"file1.jpg", 100, 1440000000, false}, + {"file2.jpg", 101, 1440000001, false}, + {"file3.jpg", 102, 1440000002, true}, + {"potato/file1.jpg", 98, 1440000003, true}, + {"potato/file2.jpg", 99, 1440000004, false}, + }) +} + +func TestNewFilterMinAge(t *testing.T) { + f, err := NewFilter() + if err != nil { + t.Fatal(err) + } + f.ModTimeTo = time.Unix(1440000002, 0) + testInclude(t, f, []includeTest{ + {"file1.jpg", 100, 1440000000, true}, + {"file2.jpg", 101, 1440000001, true}, + {"file3.jpg", 102, 1440000002, true}, + {"potato/file1.jpg", 98, 1440000003, false}, + {"potato/file2.jpg", 99, 1440000004, false}, + }) +} + +func TestNewFilterMaxAge(t *testing.T) { + f, err := NewFilter() + if err != nil { + t.Fatal(err) + } + f.ModTimeFrom = time.Unix(1440000002, 0) + testInclude(t, f, []includeTest{ + {"file1.jpg", 100, 1440000000, false}, + {"file2.jpg", 101, 1440000001, false}, + {"file3.jpg", 102, 1440000002, true}, + {"potato/file1.jpg", 98, 1440000003, true}, + {"potato/file2.jpg", 99, 1440000004, true}, }) }