Skip to content

Implement comms_lifecycle test#5

Merged
rgbkrk merged 1 commit into
mainfrom
comms-testing
Feb 25, 2026
Merged

Implement comms_lifecycle test#5
rgbkrk merged 1 commit into
mainfrom
comms-testing

Conversation

@rgbkrk

@rgbkrk rgbkrk commented Feb 25, 2026

Copy link
Copy Markdown
Member

Summary

Implements the comms_lifecycle test to validate kernel comm handling.

Changes:

  • Add send_comm_open() helper that sends comm_open and checks for rejection
  • Add send_comm_close() helper to clean up comms
  • Test opens a comm to a test target and verifies kernel handles it correctly:
    • If kernel rejects with comm_close → Pass (proper behavior)
    • If kernel accepts/ignores → Send comm_close, verify kernel still responsive

Results:

  • ipykernel: 5/5 Tier 4 tests passing (100%)
  • All 23 tests now have real implementations (no more stubs)

Test plan

  • Verify ipykernel passes comms test
  • Check deno/evcxr behavior
  • Confirm no regressions

- Add send_comm_open() and send_comm_close() helpers to harness
- Test sends comm_open with test target, checks for rejection or acceptance
- Verifies kernel remains responsive after comm operations
- ipykernel now passes 5/5 Tier 4 tests (100%)

The test handles both scenarios:
- Kernel rejects unknown target with comm_close (proper behavior)
- Kernel accepts/ignores the comm (also valid, we clean up and verify responsiveness)
@github-actions

Copy link
Copy Markdown

Kernel Conformance Matrix

Kernel Tier 1 Tier 2 Tier 3 Tier 4 Total
deno 8/9 6/7 1/2 3/5 18/23
evcxr 9/9 3/7 1/2 3/5 16/23
ipykernel 9/9 7/7 2/2 5/5 23/23

deno (Deno kernel) - 3 failures, 2 skipped

Language: typescript | Protocol: 5.3

Failures

Test Message Type Likely Source Reason
interrupt_request interrupt_request unknown Timeout waiting for control reply
shutdown_reply shutdown_request unknown Timeout waiting for control reply

Skipped (Not Implemented)

  • display_data: Kernel can produce display_data messages for rich output
  • stdin_input_request: Kernel can request input from frontend via stdin channel
evcxr (evcxr_jupyter) - 5 failures, 2 skipped

Language: Rust | Protocol: 5.3

Failures

Test Message Type Likely Source Reason
inspect_request inspect_request unknown Timeout waiting for shell reply
history_request history_request unknown Timeout waiting for shell reply
comm_info_request comm_info_request unknown Timeout waiting for shell reply
interrupt_request interrupt_request unknown Protocol error: Error deserializing content for msg_type interrupt_reply: missing field status

Skipped (Not Implemented)

  • display_data: Kernel can produce display_data messages for rich output
  • stdin_input_request: Kernel can request input from frontend via stdin channel

Test Results by Message Type

Test Message Type deno evcxr ipykernel
comm_info_request comm_info_request
comms_lifecycle comm_open
complete_request complete_request
display_data display_data ⏭️ ⏭️
error_handling execute_request
execute_input_broadcast execute_input
execute_reply_ok execute_request
execute_result execute_result
execute_stdout execute_request
execution_count_increments execute_request
heartbeat_responds heartbeat
history_request history_request
inspect_request inspect_request
interrupt_request interrupt_request
is_complete_complete is_complete_request
is_complete_incomplete is_complete_request ⚠️ ⚠️
kernel_info_has_language_info kernel_info_request
kernel_info_has_protocol_version kernel_info_request
kernel_info_reply_valid kernel_info_request
parent_header_correlation parent_header
shutdown_reply shutdown_request
status_busy_idle_lifecycle status
stdin_input_request input_request ⏭️ ⏭️

@rgbkrk
rgbkrk merged commit 6e964c6 into main Feb 25, 2026
4 checks passed
@rgbkrk
rgbkrk deleted the comms-testing branch February 25, 2026 22:50
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.

1 participant