[corlib] Use AppContextSwitches implementation from RS. Fixes #54448 (#4682)
[mono.git] / mcs / class / corlib / Test / System.Threading / CancellationTokenSourceTest.cs
index f5b4dd9a3ba1d029449ab8125eaf508c6710cca2..59d9b8cbba522efdb0c89b5bcdddab9a3cbc48de 100644 (file)
@@ -325,10 +325,14 @@ namespace MonoTests.System.Threading
                        } catch (ObjectDisposedException) {
                        }
 
-                       try {
-                               token.Register (() => { });
-                               Assert.Fail ("#3");
-                       } catch (ObjectDisposedException) {
+                       bool throwOnDispose = false;
+                       AppContext.TryGetSwitch ("Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource", out throwOnDispose);
+                       if (throwOnDispose) { 
+                               try {
+                                       token.Register (() => { });
+                                       Assert.Fail ("#3");
+                               } catch (ObjectDisposedException) {
+                               }
                        }
 
                        try {
@@ -337,10 +341,12 @@ namespace MonoTests.System.Threading
                        } catch (ObjectDisposedException) {
                        }
 
-                       try {
-                               CancellationTokenSource.CreateLinkedTokenSource (token);
-                               Assert.Fail ("#5");
-                       } catch (ObjectDisposedException) {
+                       if (throwOnDispose) {
+                               try {
+                                       CancellationTokenSource.CreateLinkedTokenSource (token);
+                                       Assert.Fail ("#5");
+                               } catch (ObjectDisposedException) {
+                               }
                        }
 
                        try {