示例#1
0
        public void UserDefinedAssemblyResolve_InfiniteLoop()
        {
            var mayTerminate = new ManualResetEvent(false);
            _host.ErrorOutputReceived += (_, __) => mayTerminate.Set();

            _host.TryGetService().HookMaliciousAssemblyResolve();
            var executeTask = _host.AddReferenceAsync("nonexistingassembly" + Guid.NewGuid());

            Assert.True(mayTerminate.WaitOne());
            executeTask.Wait();

            Assert.True(Execute(@"1+1"));

            var output = ReadOutputToEnd();
            Assert.Equal("2\r\n", output);
        }