Skip to content

test: add OTLP output support to integration tests#1012

Open
Molter73 wants to merge 1 commit into
mainfrom
mauro/tests/otel-support
Open

test: add OTLP output support to integration tests#1012
Molter73 wants to merge 1 commit into
mainfrom
mauro/tests/otel-support

Conversation

@Molter73

@Molter73 Molter73 commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Description

Extend the test infrastructure to support both gRPC and OTLP output modes. Both servers translate their native message format into the test's Event/Process types, keeping protocol-specific code isolated.

Changes:

  • Add EventServer base class with shared queue/wait logic
  • Add GrpcServer translating FileActivity protobufs into Events
  • Add OtlpServer receiving OTLP/HTTP binary protobuf log exports
  • Refactor Event.diff() and Process.diff() to compare Event vs Event
  • Add --output pytest option (grpc, otlp, all; default: grpc)
  • Parameterize server fixture so tests run per output mode
  • Add pytest-otlp and pytest-all Makefile targets
  • Fix rust_style_quote to match Rust shlex backslash handling
  • Add opentelemetry-proto dependency
  • Add CARGO_ARGS build arg to Containerfile
  • Add image-otel Makefile target

Assisted-by: claude-opus-4-6@default noreply@opencode.ai

Checklist

  • Patch has a change log entry OR does not need one.
  • Investigated and inspected CI test results
  • Updated documentation accordingly

Automated testing

  • Added unit tests
  • Added integration tests
  • Added regression tests

If any of these don't apply, please comment below.

Testing Performed

Run the tests manually + added them to CI in a follow up (#1013)

Summary by CodeRabbit

  • New Features
    • Added an OpenTelemetry-enabled container image variant.
    • Enabled passing extra Cargo release build options into the image build.
    • Added integration test modes/targets to validate gRPC, OTLP, or both.
  • Bug Fixes
    • Improved cross-mode event matching, including ACLs and rename scenarios.
    • Refined special-character quoting to reduce test assertion mismatches.
  • Tests
    • Expanded integration coverage with OTLP/combined execution (including junit results output).

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The container build accepts configurable Cargo arguments, including the OTEL feature. Make targets expose OTEL and OTLP test modes. Test infrastructure adds shared gRPC and OTLP event servers, protocol-independent comparisons, output-mode parametrization, and updates existing tests to use the shared server abstraction.

Changes

Event output testing

Layer / File(s) Summary
OTEL image and test targets
Containerfile, Makefile, tests/Makefile
Adds configurable Cargo flags, an OTEL image target, and pytest targets for gRPC, OTLP, and combined output modes.
Event server and comparison infrastructure
tests/server.py, tests/conftest.py, tests/event.py, tests/requirements.txt
Adds shared gRPC and OTLP servers, output-mode fixtures, OTLP configuration, protocol-independent comparisons, and the pinned OTLP protobuf dependency.
Integration test migration and quoting support
tests/test_*.py, tests/test_editors/*, tests/utils.py
Updates integration tests to use EventServer and revises Rust-style shell quoting behavior.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant FactContainer
  participant GrpcServer
  participant OtlpServer
  participant EventServer
  FactContainer->>GrpcServer: send gRPC FileActivity events
  FactContainer->>OtlpServer: POST /v1/logs
  GrpcServer->>EventServer: enqueue translated Event
  OtlpServer->>EventServer: enqueue translated Event
  EventServer->>FactContainer: compare wait_events expectations
Loading

Possibly related PRs

  • stackrox/fact#790: Updates xattr integration tests in the same test module migrated to EventServer.
  • stackrox/fact#878: Overlaps with ACL event support and ACL diff translation in the event test infrastructure.

Suggested reviewers: ovalenti

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly names the main change: adding OTLP output support to integration tests.
Description check ✅ Passed The PR description includes a detailed change summary, checklist, and testing notes, and mostly matches the template.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch mauro/tests/otel-support

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

codecov-commenter commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 32.95%. Comparing base (c5c30be) to head (cbf9c70).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1012   +/-   ##
=======================================
  Coverage   32.95%   32.95%           
=======================================
  Files          21       21           
  Lines        2971     2971           
  Branches     2971     2971           
=======================================
  Hits          979      979           
  Misses       1989     1989           
  Partials        3        3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Molter73 Molter73 force-pushed the mauro/feat/otel-output branch from a52c44e to b915ce8 Compare July 7, 2026 16:02
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 85722a4 to e2a1695 Compare July 7, 2026 16:03
@Molter73 Molter73 force-pushed the mauro/feat/otel-output branch 2 times, most recently from 4214811 to 3629e66 Compare July 8, 2026 15:20
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch 2 times, most recently from f964087 to 5c66700 Compare July 9, 2026 10:56

@Stringy Stringy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat! LGTM

Base automatically changed from mauro/feat/otel-output to main July 10, 2026 10:54
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 5c66700 to 69acc30 Compare July 10, 2026 10:56
@Molter73 Molter73 marked this pull request as ready for review July 10, 2026 10:56
@Molter73 Molter73 requested a review from a team as a code owner July 10, 2026 10:56

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
Makefile (1)

23-31: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider deduplicating image and image-otel targets.

image-otel (lines 23-30) repeats the entire image recipe (lines 15-21) with only an extra --build-arg and a different tag. A shared variable/pattern rule would remove the duplication and also resolves the checkmake body-length warning below.

♻️ Suggested refactor
-image:
-	$(DOCKER) build \
-		-f Containerfile \
-		--build-arg FACT_VERSION=$(FACT_VERSION) \
-		--build-arg RUST_VERSION=$(RUST_VERSION) \
-		-t $(FACT_IMAGE_NAME) \
-		$(CURDIR)
-
-image-otel:
-	$(DOCKER) build \
-		-f Containerfile \
-		--build-arg FACT_VERSION=$(FACT_VERSION) \
-		--build-arg RUST_VERSION=$(RUST_VERSION) \
-		--build-arg CARGO_ARGS="--features otel" \
-		-t $(FACT_IMAGE_NAME)-otel \
-		$(CURDIR)
+DOCKER_BUILD = $(DOCKER) build \
+		-f Containerfile \
+		--build-arg FACT_VERSION=$(FACT_VERSION) \
+		--build-arg RUST_VERSION=$(RUST_VERSION)
+
+image:
+	$(DOCKER_BUILD) -t $(FACT_IMAGE_NAME) $(CURDIR)
+
+image-otel:
+	$(DOCKER_BUILD) --build-arg CARGO_ARGS="--features otel" -t $(FACT_IMAGE_NAME)-otel $(CURDIR)

Static analysis (checkmake) flags image-otel for exceeding the max body length (7 lines vs 5 allowed).

🤖 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 `@Makefile` around lines 23 - 31, Deduplicate the Docker build recipes for the
image and image-otel targets. Refactor the shared arguments and build command
into a reusable variable or pattern rule, while allowing image-otel to add the
otel CARGO_ARGS value and use its distinct tag; update both targets to invoke
the shared logic and keep image-otel within the checkmake body-length limit.

Source: Linters/SAST tools

tests/server.py (1)

380-389: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove leftover debug prints in ACL translation.

print('#### Got ACL event') and print(f'{kwargs}') are debug artifacts that will spam test output on every ACL event processed via OTLP.

🧹 Proposed fix
         elif event_type == EventType.ACL:
-            print('#### Got ACL event')
             kwargs['acl_type'] = ACL_TYPE_MAP.get(file_data.get('acl_type'))
             kwargs['acl_entries'] = [
                 OtlpServer._acl_entry_translate(entry)
                 for entry in file_data.get('entries', [])
             ]
-
-            print(f'{kwargs}')
🤖 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 `@tests/server.py` around lines 380 - 389, Remove the two leftover debug print
statements from the EventType.ACL branch that translates ACL events, while
preserving the acl_type and acl_entries assignments and translation behavior.
🤖 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.

Inline comments:
In `@tests/utils.py`:
- Around line 61-68: Update the single-quote fallback in the string-quoting
helper to use POSIX escaping: replace each literal apostrophe with the `'\''`
sequence rather than `\'`. Preserve the existing double-quote path and ensure
inputs containing apostrophes, including those with `$` or backticks, produce
valid shell arguments.

---

Nitpick comments:
In `@Makefile`:
- Around line 23-31: Deduplicate the Docker build recipes for the image and
image-otel targets. Refactor the shared arguments and build command into a
reusable variable or pattern rule, while allowing image-otel to add the otel
CARGO_ARGS value and use its distinct tag; update both targets to invoke the
shared logic and keep image-otel within the checkmake body-length limit.

In `@tests/server.py`:
- Around line 380-389: Remove the two leftover debug print statements from the
EventType.ACL branch that translates ACL events, while preserving the acl_type
and acl_entries assignments and translation behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Enterprise

Run ID: bdfa6f98-bfb0-45ea-ba86-4ae054632132

📥 Commits

Reviewing files that changed from the base of the PR and between 0648d2d and 69acc30.

📒 Files selected for processing (25)
  • Containerfile
  • Makefile
  • tests/Makefile
  • tests/conftest.py
  • tests/event.py
  • tests/requirements.txt
  • tests/server.py
  • tests/test_acl.py
  • tests/test_config_hotreload.py
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_sed.py
  • tests/test_editors/test_vi.py
  • tests/test_editors/test_vim.py
  • tests/test_file_open.py
  • tests/test_misc.py
  • tests/test_path_chmod.py
  • tests/test_path_chown.py
  • tests/test_path_mkdir.py
  • tests/test_path_rename.py
  • tests/test_path_rmdir.py
  • tests/test_path_unlink.py
  • tests/test_rate_limit.py
  • tests/test_wildcard.py
  • tests/test_xattr.py
  • tests/utils.py

Comment thread tests/utils.py
@Molter73

Copy link
Copy Markdown
Collaborator Author

Apparently I must have dropped some change while rebasing (which is honestly weird since all PRs in this stacked set are a single commit each), the tests are failing in a way I swear I've fixed already.

@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 69acc30 to 046a472 Compare July 10, 2026 11:21

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
tests/server.py (1)

380-388: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove leftover debug prints.

print('#### Got ACL event') and print(f'{kwargs}') look like debugging artifacts and add noise to test output.

♻️ Proposed cleanup
         elif event_type == EventType.ACL:
-            print('#### Got ACL event')
             kwargs['acl_type'] = ACL_TYPE_MAP.get(file_data.get('acl_type'))
             kwargs['acl_entries'] = [
                 OtlpServer._acl_entry_translate(entry)
                 for entry in file_data.get('entries', [])
             ]
-
-            print(f'{kwargs}')
🤖 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 `@tests/server.py` around lines 380 - 388, Remove the leftover debug print
statements from the EventType.ACL branch, specifically the `print('#### Got ACL
event')` and `print(f'{kwargs}')` calls, while preserving the ACL translation
and kwargs construction logic.
🤖 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 `@tests/server.py`:
- Around line 380-388: Remove the leftover debug print statements from the
EventType.ACL branch, specifically the `print('#### Got ACL event')` and
`print(f'{kwargs}')` calls, while preserving the ACL translation and kwargs
construction logic.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Enterprise

Run ID: fbdae493-138b-4d46-b687-5c4451ecadb0

📥 Commits

Reviewing files that changed from the base of the PR and between 69acc30 and 046a472.

📒 Files selected for processing (25)
  • Containerfile
  • Makefile
  • tests/Makefile
  • tests/conftest.py
  • tests/event.py
  • tests/requirements.txt
  • tests/server.py
  • tests/test_acl.py
  • tests/test_config_hotreload.py
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_sed.py
  • tests/test_editors/test_vi.py
  • tests/test_editors/test_vim.py
  • tests/test_file_open.py
  • tests/test_misc.py
  • tests/test_path_chmod.py
  • tests/test_path_chown.py
  • tests/test_path_mkdir.py
  • tests/test_path_rename.py
  • tests/test_path_rmdir.py
  • tests/test_path_unlink.py
  • tests/test_rate_limit.py
  • tests/test_wildcard.py
  • tests/test_xattr.py
  • tests/utils.py
✅ Files skipped from review due to trivial changes (8)
  • tests/test_path_mkdir.py
  • tests/test_misc.py
  • tests/test_file_open.py
  • tests/test_path_rmdir.py
  • tests/test_path_chmod.py
  • tests/test_acl.py
  • tests/test_path_chown.py
  • tests/test_xattr.py
🚧 Files skipped from review as they are similar to previous changes (15)
  • tests/Makefile
  • tests/requirements.txt
  • Containerfile
  • tests/test_rate_limit.py
  • tests/test_editors/test_vim.py
  • tests/test_editors/test_vi.py
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_sed.py
  • tests/utils.py
  • tests/test_path_unlink.py
  • tests/test_path_rename.py
  • tests/test_wildcard.py
  • tests/test_config_hotreload.py
  • tests/conftest.py
  • tests/event.py

@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 046a472 to 693ce75 Compare July 10, 2026 11:26

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
tests/server.py (1)

382-390: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove leftover debug prints.

The #### Got ACL event and f'{kwargs}' prints look like debugging artifacts and will spam test output.

♻️ Proposed cleanup
         elif event_type == EventType.ACL:
-            print('#### Got ACL event')
             kwargs['acl_type'] = ACL_TYPE_MAP.get(file_data.get('acl_type'))
             kwargs['acl_entries'] = [
                 OtlpServer._acl_entry_translate(entry)
                 for entry in file_data.get('entries', [])
             ]
-
-            print(f'{kwargs}')
🤖 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 `@tests/server.py` around lines 382 - 390, Remove the two leftover debug print
statements from the EventType.ACL branch, including the “Got ACL event” message
and the kwargs dump, while preserving the ACL translation and assignment logic.
🤖 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 `@tests/server.py`:
- Around line 382-390: Remove the two leftover debug print statements from the
EventType.ACL branch, including the “Got ACL event” message and the kwargs dump,
while preserving the ACL translation and assignment logic.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Enterprise

Run ID: cf9a8bba-0625-4396-af77-514bb84a348a

📥 Commits

Reviewing files that changed from the base of the PR and between 046a472 and 693ce75.

📒 Files selected for processing (25)
  • Containerfile
  • Makefile
  • tests/Makefile
  • tests/conftest.py
  • tests/event.py
  • tests/requirements.txt
  • tests/server.py
  • tests/test_acl.py
  • tests/test_config_hotreload.py
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_sed.py
  • tests/test_editors/test_vi.py
  • tests/test_editors/test_vim.py
  • tests/test_file_open.py
  • tests/test_misc.py
  • tests/test_path_chmod.py
  • tests/test_path_chown.py
  • tests/test_path_mkdir.py
  • tests/test_path_rename.py
  • tests/test_path_rmdir.py
  • tests/test_path_unlink.py
  • tests/test_rate_limit.py
  • tests/test_wildcard.py
  • tests/test_xattr.py
  • tests/utils.py
✅ Files skipped from review due to trivial changes (6)
  • tests/test_rate_limit.py
  • tests/test_path_rmdir.py
  • tests/test_path_unlink.py
  • tests/test_misc.py
  • tests/test_path_rename.py
  • tests/test_path_chmod.py
🚧 Files skipped from review as they are similar to previous changes (17)
  • tests/requirements.txt
  • Containerfile
  • tests/Makefile
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_vi.py
  • tests/test_path_mkdir.py
  • tests/test_editors/test_sed.py
  • tests/utils.py
  • tests/test_editors/test_vim.py
  • tests/test_path_chown.py
  • tests/test_file_open.py
  • tests/test_config_hotreload.py
  • tests/test_acl.py
  • tests/test_wildcard.py
  • tests/event.py
  • tests/conftest.py
  • tests/test_xattr.py

@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch 2 times, most recently from 735c159 to 16f5d71 Compare July 10, 2026 12:47

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
tests/server.py (1)

112-118: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Stale parameter name after refactor.

skip_oneof_names used to hold protobuf oneof field-name strings; it now holds EventType enum members (per the type hint and call site). The name is misleading for future readers.

🤖 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 `@tests/server.py` around lines 112 - 118, The _wait_events method uses the
misleading parameter name skip_oneof_names even though it now contains EventType
enum members. Rename this parameter to reflect its EventType-based contents and
update all references and call sites consistently.
Makefile (1)

15-31: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract shared build args to avoid duplicating the image target.

image-otel repeats the entire body of image verbatim aside from one extra --build-arg and the tag. This drives the checkmake maxbodylength warning and creates a maintenance hazard (a future change to shared args must be applied in two places).

♻️ Proposed refactor
+COMMON_BUILD_ARGS := \
+	-f Containerfile \
+	--build-arg FACT_VERSION=$(FACT_VERSION) \
+	--build-arg RUST_VERSION=$(RUST_VERSION)
+
 image:
 	$(DOCKER) build \
-		-f Containerfile \
-		--build-arg FACT_VERSION=$(FACT_VERSION) \
-		--build-arg RUST_VERSION=$(RUST_VERSION) \
+		$(COMMON_BUILD_ARGS) \
 		-t $(FACT_IMAGE_NAME) \
 		$(CURDIR)

 image-otel:
 	$(DOCKER) build \
-		-f Containerfile \
-		--build-arg FACT_VERSION=$(FACT_VERSION) \
-		--build-arg RUST_VERSION=$(RUST_VERSION) \
+		$(COMMON_BUILD_ARGS) \
 		--build-arg CARGO_ARGS="--features otel" \
 		-t $(FACT_IMAGE_NAME)-otel \
 		$(CURDIR)
🤖 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 `@Makefile` around lines 15 - 31, Extract the shared Docker build arguments and
commands from the image and image-otel targets into reusable Make variables or a
common target, then have each target supply only its distinct image tag and
optional CARGO_ARGS value. Update image and image-otel to use the shared
implementation so common build arguments are defined in one place.

Source: Linters/SAST tools

🤖 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.

Inline comments:
In `@tests/server.py`:
- Around line 149-163: Update the skip_oneof_names construction in the relevant
event-search method to replace EVENT_TYPE_MAP.get(key, EventType.UNKNOWN) with
EVENT_TYPE_MAP[key], while preserving SKIP_EVENT_TYPES precedence, so
unrecognized skip keys raise KeyError instead of silently becoming a no-op.

---

Nitpick comments:
In `@Makefile`:
- Around line 15-31: Extract the shared Docker build arguments and commands from
the image and image-otel targets into reusable Make variables or a common
target, then have each target supply only its distinct image tag and optional
CARGO_ARGS value. Update image and image-otel to use the shared implementation
so common build arguments are defined in one place.

In `@tests/server.py`:
- Around line 112-118: The _wait_events method uses the misleading parameter
name skip_oneof_names even though it now contains EventType enum members. Rename
this parameter to reflect its EventType-based contents and update all references
and call sites consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Enterprise

Run ID: cb2b7231-ac74-49c6-9cde-b6560e75c91e

📥 Commits

Reviewing files that changed from the base of the PR and between 693ce75 and 16f5d71.

📒 Files selected for processing (25)
  • Containerfile
  • Makefile
  • tests/Makefile
  • tests/conftest.py
  • tests/event.py
  • tests/requirements.txt
  • tests/server.py
  • tests/test_acl.py
  • tests/test_config_hotreload.py
  • tests/test_editors/test_nvim.py
  • tests/test_editors/test_sed.py
  • tests/test_editors/test_vi.py
  • tests/test_editors/test_vim.py
  • tests/test_file_open.py
  • tests/test_misc.py
  • tests/test_path_chmod.py
  • tests/test_path_chown.py
  • tests/test_path_mkdir.py
  • tests/test_path_rename.py
  • tests/test_path_rmdir.py
  • tests/test_path_unlink.py
  • tests/test_rate_limit.py
  • tests/test_wildcard.py
  • tests/test_xattr.py
  • tests/utils.py
✅ Files skipped from review due to trivial changes (9)
  • tests/requirements.txt
  • tests/test_rate_limit.py
  • tests/test_misc.py
  • tests/test_path_mkdir.py
  • tests/test_editors/test_vim.py
  • tests/test_xattr.py
  • tests/test_path_chmod.py
  • tests/test_acl.py
  • tests/test_path_unlink.py
🚧 Files skipped from review as they are similar to previous changes (13)
  • Containerfile
  • tests/test_path_rmdir.py
  • tests/test_editors/test_sed.py
  • tests/Makefile
  • tests/test_editors/test_nvim.py
  • tests/test_file_open.py
  • tests/test_path_chown.py
  • tests/test_editors/test_vi.py
  • tests/test_wildcard.py
  • tests/test_config_hotreload.py
  • tests/test_path_rename.py
  • tests/utils.py
  • tests/event.py

Comment thread tests/server.py
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 16f5d71 to 31f8ee3 Compare July 10, 2026 13:56
Extend the test infrastructure to support both gRPC and OTLP output
modes. Both servers translate their native message format into the
test's Event/Process types, keeping protocol-specific code isolated.

Changes:
- Add EventServer base class with shared queue/wait logic
- Add GrpcServer translating FileActivity protobufs into Events
- Add OtlpServer receiving OTLP/HTTP binary protobuf log exports
- Refactor Event.diff() and Process.diff() to compare Event vs Event
- Add --output pytest option (grpc, otlp, all; default: grpc)
- Parameterize server fixture so tests run per output mode
- Add pytest-otlp and pytest-all Makefile targets
- Fix rust_style_quote to match Rust shlex backslash handling
- Add opentelemetry-proto dependency
- Add CARGO_ARGS build arg to Containerfile
- Add image-otel Makefile target

Assisted-by: claude-opus-4-6@default <noreply@opencode.ai>
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 31f8ee3 to cbf9c70 Compare July 10, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants