| package fileutil |
| |
| import ( |
| "testing" |
| "time" |
| |
| assert "github.com/stretchr/testify/require" |
| "go.skia.org/infra/go/testutils" |
| ) |
| |
| func TestGetHourlyDirs(t *testing.T) { |
| testutils.SmallTest(t) |
| startTS := time.Date(1972, time.November, 29, 13, 45, 20, 67, time.UTC).Unix() |
| endTS := time.Date(1982, time.February, 2, 3, 45, 20, 67, time.UTC).Unix() |
| testFirstLastGetHourly(t, startTS, endTS, "prefix/1972/11/29/13", "prefix/1982/02/02/03") |
| |
| // Test when the boundary is exactly on the hour. |
| startTS = time.Date(1985, time.November, 20, 13, 00, 00, 00, time.UTC).Unix() |
| endTS = time.Date(1985, time.November, 20, 15, 00, 00, 00, time.UTC).Unix() |
| testFirstLastGetHourly(t, startTS, endTS, "prefix/1985/11/20/13", "prefix/1985/11/20/15") |
| |
| // Test boundaries within an hour. |
| startTS = time.Date(1985, time.November, 20, 13, 00, 00, 00, time.UTC).Unix() |
| endTS = time.Date(1985, time.November, 20, 13, 01, 00, 00, time.UTC).Unix() |
| testFirstLastGetHourly(t, startTS, endTS, "prefix/1985/11/20/13") |
| |
| // Make sure we get nothing when the endTime is before the start time. |
| assert.Equal(t, []string{}, GetHourlyDirs("prefix", startTS, startTS-10)) |
| } |
| |
| func testFirstLastGetHourly(t *testing.T, startTS, endTS int64, firstLast ...string) { |
| ret := GetHourlyDirs("prefix", startTS, endTS) |
| assert.Equal(t, firstLast[0], ret[0]) |
| if len(firstLast) > 1 { |
| assert.Equal(t, firstLast[1], ret[len(ret)-1]) |
| } |
| } |