@@ -28,9 +28,11 @@ public OleTxTests(OleTxFixture fixture)
2828 [ InlineData ( Phase1Vote . ForceRollback , Phase1Vote . Prepared , EnlistmentOutcome . Aborted , EnlistmentOutcome . Aborted , TransactionStatus . Aborted ) ]
2929 public void Two_durable_enlistments_commit ( Phase1Vote vote1 , Phase1Vote vote2 , EnlistmentOutcome expectedOutcome1 , EnlistmentOutcome expectedOutcome2 , TransactionStatus expectedTxStatus )
3030 {
31- if ( ! Environment . Is64BitProcess )
31+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
3232 {
33- return ; // Temporarily skip on 32-bit where we have an issue
33+ // Temporarily skip on 32-bit where we have an issue
34+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
35+ return ;
3436 }
3537
3638 using var tx = new CommittableTransaction ( ) ;
@@ -61,9 +63,11 @@ public void Two_durable_enlistments_commit(Phase1Vote vote1, Phase1Vote vote2, E
6163 [ ConditionalFact ( typeof ( PlatformDetection ) , nameof ( PlatformDetection . IsNotWindowsNanoServer ) ) ]
6264 public void Two_durable_enlistments_rollback ( )
6365 {
64- if ( ! Environment . Is64BitProcess )
66+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
6567 {
66- return ; // Temporarily skip on 32-bit where we have an issue
68+ // Temporarily skip on 32-bit where we have an issue
69+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
70+ return ;
6771 }
6872
6973 using var tx = new CommittableTransaction ( ) ;
@@ -89,9 +93,11 @@ public void Two_durable_enlistments_rollback()
8993 [ InlineData ( 2 ) ]
9094 public void Volatile_and_durable_enlistments ( int volatileCount )
9195 {
92- if ( ! Environment . Is64BitProcess )
96+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
9397 {
94- return ; // Temporarily skip on 32-bit where we have an issue
98+ // Temporarily skip on 32-bit where we have an issue
99+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
100+ return ;
95101 }
96102
97103 using var tx = new CommittableTransaction ( ) ;
@@ -122,9 +128,11 @@ public void Volatile_and_durable_enlistments(int volatileCount)
122128 [ ConditionalFact ( nameof ( IsRemoteExecutorSupportedAndNotNano ) ) ]
123129 public void Promotion ( )
124130 {
125- if ( ! Environment . Is64BitProcess )
131+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
126132 {
127- return ; // Temporarily skip on 32-bit where we have an issue
133+ // Temporarily skip on 32-bit where we have an issue
134+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
135+ return ;
128136 }
129137
130138 // This simulates the full promotable flow, as implemented for SQL Server.
@@ -301,9 +309,11 @@ public void SinglePhaseCommit(SinglePhaseEnlistment singlePhaseEnlistment)
301309 [ ConditionalFact ( nameof ( IsRemoteExecutorSupportedAndNotNano ) ) ]
302310 public void Recovery ( )
303311 {
304- if ( ! Environment . Is64BitProcess )
312+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
305313 {
306- return ; // Temporarily skip on 32-bit where we have an issue
314+ // Temporarily skip on 32-bit where we have an issue
315+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
316+ return ;
307317 }
308318
309319 // We are going to spin up an external process to also enlist in the transaction, and then to crash when it
@@ -413,9 +423,11 @@ public void InDoubt(Enlistment enlistment)
413423 [ ConditionalFact ( typeof ( PlatformDetection ) , nameof ( PlatformDetection . IsNotWindowsNanoServer ) ) ]
414424 public void TransmitterPropagationToken ( )
415425 {
416- if ( ! Environment . Is64BitProcess )
426+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
417427 {
418- return ; // Temporarily skip on 32-bit where we have an issue
428+ // Temporarily skip on 32-bit where we have an issue
429+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
430+ return ;
419431 }
420432
421433 using var tx = new CommittableTransaction ( ) ;
@@ -434,9 +446,11 @@ public void TransmitterPropagationToken()
434446 [ ConditionalFact ( typeof ( PlatformDetection ) , nameof ( PlatformDetection . IsNotWindowsNanoServer ) ) ]
435447 public void GetExportCookie ( )
436448 {
437- if ( ! Environment . Is64BitProcess )
449+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
438450 {
439- return ; // Temporarily skip on 32-bit where we have an issue
451+ // Temporarily skip on 32-bit where we have an issue
452+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
453+ return ;
440454 }
441455
442456 using var tx = new CommittableTransaction ( ) ;
@@ -483,9 +497,11 @@ public class OleTxFixture
483497 {
484498 public OleTxFixture ( )
485499 {
486- if ( ! Environment . Is64BitProcess )
500+ if ( ! Environment . Is64BitProcess || PlatformDetection . IsArm64Process )
487501 {
488- return ; // Temporarily skip on 32-bit where we have an issue
502+ // Temporarily skip on 32-bit where we have an issue
503+ // ARM64 issue: https://github.com/dotnet/runtime/issues/74170
504+ return ;
489505 }
490506
491507 // In CI, we sometimes get XACT_E_TMNOTAVAILABLE on the very first attempt to connect to MSDTC;
0 commit comments