From c24c7ac12cf3a628673b51642ae5f617e0a64eff Mon Sep 17 00:00:00 2001 From: ClearScript Date: Wed, 10 Jul 2013 10:25:11 -0400 Subject: [PATCH] Version 5.3.4: Updated test code for V8ScriptEngine script interruption crash fix. --- ClearScript/Exports/VersionSymbols.h | 4 +- ClearScript/Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- ClearScriptConsole/Properties/AssemblyInfo.cs | 4 +- ClearScriptTest/BugFixTest.cs | 45 ++++++++----------- ClearScriptTest/Properties/AssemblyInfo.cs | 4 +- Version.tt | 2 +- 7 files changed, 30 insertions(+), 37 deletions(-) diff --git a/ClearScript/Exports/VersionSymbols.h b/ClearScript/Exports/VersionSymbols.h index a99d99d5..22ca91d7 100644 --- a/ClearScript/Exports/VersionSymbols.h +++ b/ClearScript/Exports/VersionSymbols.h @@ -63,5 +63,5 @@ #pragma once -#define CLEARSCRIPT_VERSION_STRING "5.3.3.0" -#define CLEARSCRIPT_VERSION_COMMA_SEPARATED 5,3,3,0 +#define CLEARSCRIPT_VERSION_STRING "5.3.4.0" +#define CLEARSCRIPT_VERSION_COMMA_SEPARATED 5,3,4,0 diff --git a/ClearScript/Properties/AssemblyInfo.cs b/ClearScript/Properties/AssemblyInfo.cs index 8a7cf1e9..e5a0005c 100644 --- a/ClearScript/Properties/AssemblyInfo.cs +++ b/ClearScript/Properties/AssemblyInfo.cs @@ -73,5 +73,5 @@ using System.Runtime.InteropServices; [assembly: InternalsVisibleTo("ClearScriptTest")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("5.3.3.0")] -[assembly: AssemblyFileVersion("5.3.3.0")] +[assembly: AssemblyVersion("5.3.4.0")] +[assembly: AssemblyFileVersion("5.3.4.0")] diff --git a/ClearScriptBenchmarks/Properties/AssemblyInfo.cs b/ClearScriptBenchmarks/Properties/AssemblyInfo.cs index a8384552..09405107 100644 --- a/ClearScriptBenchmarks/Properties/AssemblyInfo.cs +++ b/ClearScriptBenchmarks/Properties/AssemblyInfo.cs @@ -69,5 +69,5 @@ using System.Runtime.InteropServices; [assembly: AssemblyCopyright("© Microsoft Corporation")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("5.3.3.0")] -[assembly: AssemblyFileVersion("5.3.3.0")] +[assembly: AssemblyVersion("5.3.4.0")] +[assembly: AssemblyFileVersion("5.3.4.0")] diff --git a/ClearScriptConsole/Properties/AssemblyInfo.cs b/ClearScriptConsole/Properties/AssemblyInfo.cs index 24799ac4..0dcffd86 100644 --- a/ClearScriptConsole/Properties/AssemblyInfo.cs +++ b/ClearScriptConsole/Properties/AssemblyInfo.cs @@ -69,5 +69,5 @@ using System.Runtime.InteropServices; [assembly: AssemblyCopyright("© Microsoft Corporation")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("5.3.3.0")] -[assembly: AssemblyFileVersion("5.3.3.0")] +[assembly: AssemblyVersion("5.3.4.0")] +[assembly: AssemblyFileVersion("5.3.4.0")] diff --git a/ClearScriptTest/BugFixTest.cs b/ClearScriptTest/BugFixTest.cs index f5c67819..6252f6c8 100644 --- a/ClearScriptTest/BugFixTest.cs +++ b/ClearScriptTest/BugFixTest.cs @@ -146,43 +146,36 @@ namespace Microsoft.ClearScript.Test [TestMethod, TestCategory("BugFix")] public void BugFix_V8_ScriptInterruptCrash() { - // A V8 fatal error on a background thread may not kill the process, so a single run is - // inconclusive. It will kill the V8 runtime, however, causing subsequent runs to fail. + // run the test several times to verify post-interrupt engine functionality for (var iteration = 0; iteration < 16; iteration++) { var context = new PropertyBag(); engine.AddHostObject("context", context); - var startEvent = new ManualResetEventSlim(false); - var thread = new Thread(() => + using (var startEvent = new ManualResetEventSlim(false)) { context["startEvent"] = startEvent; - context["counter"] = 0; - try + var interrupted = false; + var thread = new Thread(() => { - engine.Execute( - @" - for (var i = 0; i < 10000000; i++ ) - { - context.counter++; - context.startEvent.Set(); - } - "); - } - catch (ScriptInterruptedException) - { - } - }); + try + { + engine.Execute("while (true) { context.startEvent.Set(); }"); + } + catch (ScriptInterruptedException) + { + interrupted = true; + } + }); - thread.Start(); - startEvent.Wait(); - engine.Interrupt(); - thread.Join(); - - var counter = (int)context["counter"]; - Assert.IsTrue((counter > 0) && (counter < 10000000)); + thread.Start(); + startEvent.Wait(); + engine.Interrupt(); + thread.Join(); + Assert.IsTrue(interrupted); + } } } diff --git a/ClearScriptTest/Properties/AssemblyInfo.cs b/ClearScriptTest/Properties/AssemblyInfo.cs index fde9be84..7cf3704b 100644 --- a/ClearScriptTest/Properties/AssemblyInfo.cs +++ b/ClearScriptTest/Properties/AssemblyInfo.cs @@ -69,5 +69,5 @@ using System.Runtime.InteropServices; [assembly: AssemblyCopyright("© Microsoft Corporation")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("5.3.3.0")] -[assembly: AssemblyFileVersion("5.3.3.0")] +[assembly: AssemblyVersion("5.3.4.0")] +[assembly: AssemblyFileVersion("5.3.4.0")] diff --git a/Version.tt b/Version.tt index 0aca113b..7a03bf82 100644 --- a/Version.tt +++ b/Version.tt @@ -1 +1 @@ -<# var version = new Version(5, 3, 3, 0); #> +<# var version = new Version(5, 3, 4, 0); #>