test(inputs.tail): Add test coverage for plugin behavior#19136
Merged
Conversation
f5de462 to
4d5ca96
Compare
f52234f to
7d68e02
Compare
Contributor
|
Download PR build artifacts for linux_amd64.tar.gz, darwin_arm64.tar.gz, and windows_amd64.zip. 📦 Click here to get additional PR build artifactsArtifact URLs |
srebhan
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds engine-level tests for the tail plugin that exercise the tailer behaviors the existing suite leaves uncovered: follow-append, rename/recreate and copytruncate rotation, delete-and-recreate, partial (unterminated) lines, symlinks, and offset resume across a restart. Each scenario runs under both the native watcher and polling (polling only on Windows) so coverage is independent of the watch implementation.
Two behaviors the current library does not satisfy on any platform are recorded as documented
t.Skips rather than hidden, so the gaps stay visible:prevSize > sizein bothwatch/polling.goandwatch/inotify.go), so a truncate-and-rewrite back to the same length is missed under both the native watcher and polling;A few other scenarios are skipped only on the specific watch-method/OS combinations the current library cannot handle (rename/recreate and delete/recreate under the native watcher, symlink target writes via the native watcher on macOS, and several cases under Windows polling); these still run on every other combination.
Intent is to serve as a fixed acceptance gate for the in-progress replacement of the unmaintained
influxdata/taillibrary: the replacement should keep all scenarios green under both watch methods and ideally clear the two skipped behaviors.Checklist
Related issues
resolves #