Fix: Check FrameType before accessing ComponentId in tests #64147
  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
Fixes test failures on big-endian architectures (s390x) by checking
FrameTypebefore accessingComponentIdinRendererTest.Tests Fixed
QueuedRenderIsSkippedIfComponentWasAlreadyDisposedInSameBatchProblem
Test was failing on s390x with
System.InvalidOperationException: Sequence contains more than one element.Root Cause
Field Overlap in RenderTreeFrame
RenderTreeFrameuses explicit struct layout with overlapping fields:API Contract
The API documentation at RenderTreeFrame.cs:161-165 clearly states:
The test accessed
ComponentIdwithout first checkingFrameType == Component, violating this documented precondition.Why It Failed on s390x (Big-Endian)
Due to the field overlap at offset 12-15, endianness affects what value is read:
01 00 00 00 00 00 00 0000 00 00 00 00 00 00 01On little-endian: Reading
ComponentIdfrom an Attribute frame returns 0 (bug hidden)On big-endian: Reading
ComponentIdfrom an Attribute frame returns the AttributeEventHandlerId value (bug exposed)Change 2: Fix same pattern preventively
File:
src/Components/Components/test/RendererTest.csTest:
RenderBatchIncludesListOfDisposedComponentsStatus: Not currently failing, but uses the same incorrect pattern
cc: @giritrivedi