Tags with special characters - #123
Conversation
|
Warning Review limit reached
More reviews will be available in 56 minutes and 8 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. 📝 WalkthroughWalkthroughThe PR broadens tag tokenization to accept additional punctuation, and adds parser, evaluator, and scenario-selection tests for dotted and special-character tags. ChangesTag tokenization and matching
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
gtest/run_scenarios_tags.cc (1)
486-509: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick winConsider adding a boundary/negative case for special-char tag filtering.
This test only exercises the positive OR path. A complementary case—e.g. a grouped expression like
(@my.tag.with.dotsand not@other)or a filter that should exclude one of the scenarios—would protect against future regressions where the broadened tag whitelist accidentally swallows a grouping/operator boundary.Note: the
performance_and_scalabilitycategory is not a perfect fit; the concern is test coverage of boundary behavior.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@gtest/run_scenarios_tags.cc` around lines 486 - 509, Add a negative/boundary test around special-character tag filtering in run_scenarios_special_tags::tag_with_special_chars to cover grouped tag expressions and exclusion behavior, not just the current positive OR case. Extend the scenario setup or add a nearby test that uses a filter such as a grouped expression with not/and so one scenario should be skipped, then assert the expected passed/skipped counts and that cuke::internal::get_runtime_options().ignore_scenario() stays correct. This will validate the parser and make sure the special-char whitelist in tag matching does not swallow grouping/operator boundaries.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@gtest/run_scenarios_tags.cc`:
- Around line 486-509: Add a negative/boundary test around special-character tag
filtering in run_scenarios_special_tags::tag_with_special_chars to cover grouped
tag expressions and exclusion behavior, not just the current positive OR case.
Extend the scenario setup or add a nearby test that uses a filter such as a
grouped expression with not/and so one scenario should be skipped, then assert
the expected passed/skipped counts and that
cuke::internal::get_runtime_options().ignore_scenario() stays correct. This will
validate the parser and make sure the special-char whitelist in tag matching
does not swallow grouping/operator boundaries.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9b973129-724e-4178-b171-a030bfcbc098
📒 Files selected for processing (3)
gtest/run_scenarios_tags.ccgtest/tags.ccsrc/scanner.cpp
First fix to allow special characters in tags. For now the whitelist approach is a good enough solution.
Reported here: #119
But this still faces the issue that there is no escape logic. Issue #122 created. This will be done in the future
Summary by CodeRabbit