19 Commits

Author SHA1 Message Date
Rainer Gerhards
3ba5a77455
testbench: make more robust against slow CI env; modernize tests 2018-12-20 15:40:40 +01:00
Rainer Gerhards
e6452079ec
testbench: modernize bash style
detected by shellcheck
2018-11-30 17:27:33 +01:00
Jan Gerhards
50edbc510e testbench: cleanup bash codestyle
detected by shellcheck
2018-10-25 15:09:34 +02:00
Rainer Gerhards
69ef6e329b fix bad bash coding style and disable shellcheck false positives
Also now permit interactivly running tests without explicitly setting
$srcdir. This now works if we are inside ./tests and fails, as before,
when we are in a different directory.

Detected by shellcheck via CodeFactor.io
2018-10-23 13:27:37 +02:00
44306daf7d testbench: moved testbench init to top
Added full filecheck back to imfile-wildcard check but presorted
2018-09-24 15:11:02 +02:00
2abaf732f5 testbench: Fixed timing issues in some imfile wildcard/regex tests
Added touch command in all imfile wildcard tests which should make sure
directories exist before files are created in it.

Changed content checking in some tests by using "content_check_with_count"
instead of sleeptimes.
2018-09-24 15:11:02 +02:00
Rainer Gerhards
27cc298a3d squash: content-check 2018-09-03 10:05:18 +02:00
Rainer Gerhards
a43a03f17e
testbench: make more test file names dynamic
This is required to support parallel test runs.

Among others, make thise files dynamic:
* test-spool
* rsyslog.input
* rsyslog.out*.log
* tmp.in

Also:
* convert presort test statement to function
* cleanup imfile truncation test
* cleanup imfile-growing-file-id test
  some cruft was left due to copy and paste error
* serialize mysql tests
2018-08-29 10:46:32 +02:00
Rainer Gerhards
8ea166d89d
testbench: fix some hardcoded names (#2895)
* testbench: fix some hardcoded names

This is prework to make parallel execution of tests possible.
2018-08-01 12:52:17 +02:00
Florian Riedl
6fbe23d4c9 Test refactor part 5 2018-07-25 13:42:52 +02:00
Rainer Gerhards
2ba3c8ddde
testbench: modernize testbench plumbing
changes some of the test commands to use bash functions
includes some small bug fixes to tests where bugs were
previously not seen due to different plumbing.
2018-07-23 17:26:34 +02:00
Rainer Gerhards
ab1bd8c01b imfile: large refactoring of complete module
This commit greatly refactors imfile internal workings. It changes the
handling of inotify, FEN, and polling modes. Mostly unchanged is the
processing of the way a file is read and state files are kept.

This is about a 50% rewrite of the module.

Polling, inotify, and FEN modes now use greatly unified code. Some
differences still exists and may be changed with further commits. The
internal handling of wildcards and file detection has been completely
re-written from scratch. For example, previously when multi-level
wildcards were used these were not reliably detected. The code also
now provides much of the same functionality in all modes, most importantly
wildcards are now also supported in polling mode.

The refactoring sets ground for further enhancements and smaller
refactorings. This commit provides the same feature set that imfile
had previously and all existing CI tests pass, as do some newly
created tests.

Some specific changes:
- bugfix: module parameter "sortfiles" ignored
  This parameter only works in Solaris FEN mode, but is otherwise
  ignored.  Most importantly it is ignored under Linux.
  fixes https://github.com/rsyslog/rsyslog/issues/2528
- bugfix: imfile did not pick up all files when not present
  at startup
  fixes https://github.com/rsyslog/rsyslog/issues/2241
  fixes https://github.com/rsyslog/rsyslog/issues/2230
  fixes https://github.com/rsyslog/rsyslog/issues/2354
- bugfix: directories only support "*" wildcard, no others
  fixes https://github.com/rsyslog/rsyslog/issues/2303
- bugfix: parameter "sortfiles" did only work in FEN mode
  fixes https://github.com/rsyslog/rsyslog/issues/2528
- provides the ability to dynamically add and remove files via
  multi-level wildcards
  see also https://github.com/rsyslog/rsyslog/issues/1280
- the state file name currently has been changed to inode number
  This will further be worked on in upcoming PRs
  see also https://github.com/rsyslog/rsyslog/issues/2231
- some enhancements were also done to CI tests, most importantly
  they were made more compatibile with BSD

Note that most of the mentioned bug fixes cannot be applied to older
versions, as they fix design issues which are solved by the refactoring.
Thus there are not separate commits for them.

Distro maintainers: you need to decide to apply this patch as whole
or not. Believe me, it is not worth the effort to try to extract
specific patches from this commit. There is a good reason we do
not have multiple commits.

closes https://github.com/rsyslog/rsyslog/issues/2359
2018-03-22 08:25:47 +01:00
af09d33b49 imfile: Partially fixed issues not detecting files in directory when wildcards are used.
When directories and files are created at the same time,
imfile may missed subdirs or file if the machine is on high load.

The handling has been enhanced to scan newly created directories ALWAYS for
matching files.

This should fix following issues:
closes https://github.com/rsyslog/rsyslog/issues/2271

However we still have a problem when a multilevel directory configurations.
Details are discussed here https://github.com/rsyslog/rsyslog/issues/2354
2018-01-05 12:59:19 +01:00
4486cc0131 imfile: implemented wildcard support into FEN mode (solaris)
Partitionally moved inotify code to global imfile code as needed
for FEN Mode.
Enabled all wildcard tests that are supported by FEN API.
2017-12-19 11:03:34 +01:00
PascalWithopf
bd8a1b8136 freeBSD: disable tests that are not working
FreeBSD is not able to run all tests, therefore all tests that can't be run will be disabled.
2017-10-27 12:18:59 +02:00
PascalWithopf
1628ef2a37 testbench: workaround for solaris 2017-04-13 14:07:38 +02:00
faca9c8ced imfile: Fixed bug in dynamic dir watch found using testsuite.
testsuite: Also added msleep between directory and file creation
in imfile wildcard tests. Sometimes a directory watch was not created
before the testsuite created a logfile.
2017-01-19 13:41:00 +01:00
8025057e39 imfile: Fixed multiple bugs in new wildcard directory handling
Fixed removal for directory watch and helper functions
Fixed invalid setupdirwatch indexes.
Changed logfile extensions for new tests
2017-01-17 14:38:32 +01:00
3bf605255a testsuite: Added 3 new tests for imfile checking wildcard support.
Testing wildcards matching in filename and directory name including
dynamically adding and removing directories and files.
2017-01-17 14:38:32 +01:00