|
5 | 5 | package dirwatcher |
6 | 6 |
|
7 | 7 | import ( |
| 8 | + "testing" |
| 9 | + "time" |
| 10 | + |
8 | 11 | . "github.com/smartystreets/goconvey/convey" |
9 | 12 | "gitlab.com/lightmeter/controlcenter/pkg/postfix" |
10 | 13 | parsertimeutil "gitlab.com/lightmeter/controlcenter/pkg/postfix/logparser/timeutil" |
11 | 14 | "gitlab.com/lightmeter/controlcenter/util/testutil" |
12 | 15 | "gitlab.com/lightmeter/controlcenter/util/timeutil" |
13 | | - "testing" |
14 | 16 | ) |
15 | 17 |
|
16 | 18 | func TestRegressionIssue368(t *testing.T) { |
@@ -199,3 +201,34 @@ Mar 8 10:11:12 cloud2 postfix/qmgr[1428]: 5EEC73E8C6: removed`, ``), |
199 | 201 | }) |
200 | 202 | }) |
201 | 203 | } |
| 204 | + |
| 205 | +func TestDuplicatedFiles(t *testing.T) { |
| 206 | + Convey("If the same file seems to be present in both compressed and non compressed form, choose the compressed ont", t, func() { |
| 207 | + Convey("Some files are duplicated, due to rsync'ng generated artifacts", func() { |
| 208 | + f := fileEntryList{ |
| 209 | + fileEntry{filename: "mail.log", modificationTime: testutil.MustParseTime(`2023-03-02 19:38:51 +0100`)}, |
| 210 | + fileEntry{filename: "mail.log-20220722", modificationTime: testutil.MustParseTime(`2022-07-25 15:07:12 +0200`)}, |
| 211 | + fileEntry{filename: "mail.log-20220722.bz2", modificationTime: testutil.MustParseTime(`2022-07-25 15:07:12 +0200`)}, |
| 212 | + fileEntry{filename: "mail.log-20220728", modificationTime: testutil.MustParseTime(`2022-07-29 16:14:44 +0200`)}, |
| 213 | + fileEntry{filename: "mail.log-20220728.bz2", modificationTime: testutil.MustParseTime(`2022-07-29 16:14:44 +0200`)}, |
| 214 | + fileEntry{filename: "mail.log-20220731", modificationTime: testutil.MustParseTime(`2022-08-02 14:20:14 +0200`)}, |
| 215 | + fileEntry{filename: "mail.log-20220731.bz2", modificationTime: testutil.MustParseTime(`2022-08-02 14:20:14 +0200`)}, |
| 216 | + fileEntry{filename: "mail.log-20220804", modificationTime: testutil.MustParseTime(`2022-08-22 11:20:08 +0200`)}, |
| 217 | + } |
| 218 | + |
| 219 | + // We ignore all files that have a correspondent compressed version of it |
| 220 | + So(buildFilesToImport(f, BuildLogPatterns([]string{"mail.log", "mail.err", "mail.warn"}), time.Time{}), ShouldResemble, |
| 221 | + fileQueues{ |
| 222 | + "mail.log": fileEntryList{ |
| 223 | + fileEntry{filename: "mail.log-20220722.bz2", modificationTime: testutil.MustParseTime(`2022-07-25 15:07:12 +0200`)}, |
| 224 | + fileEntry{filename: "mail.log-20220728.bz2", modificationTime: testutil.MustParseTime(`2022-07-29 16:14:44 +0200`)}, |
| 225 | + fileEntry{filename: "mail.log-20220731.bz2", modificationTime: testutil.MustParseTime(`2022-08-02 14:20:14 +0200`)}, |
| 226 | + fileEntry{filename: "mail.log-20220804", modificationTime: testutil.MustParseTime(`2022-08-22 11:20:08 +0200`)}, |
| 227 | + fileEntry{filename: "mail.log", modificationTime: testutil.MustParseTime(`2023-03-02 19:38:51 +0100`)}, |
| 228 | + }, |
| 229 | + "mail.err": {}, |
| 230 | + "mail.warn": {}, |
| 231 | + }) |
| 232 | + }) |
| 233 | + }) |
| 234 | +} |
0 commit comments