Fix projectmodel-server regression
1. Address the null reference exception when a project dependency is broken. 2. Address the duplicate key issues after the logic of redirecting System pacage to reference assembly was added Update projectmodel-server and tests 1. Fix test timeout caused by undisconnected socket; 2. Update project model server
This commit is contained in:
parent
c4b3925e46
commit
b9f2d8fe3d
12 changed files with 81 additions and 48 deletions
|
@ -9,6 +9,7 @@ using System.Net;
|
|||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Xunit;
|
||||
|
||||
|
@ -29,18 +30,19 @@ namespace Microsoft.DotNet.ProjectModel.Server.Tests
|
|||
// works in visual studio
|
||||
private readonly Dictionary<string, int> _projectContexts = new Dictionary<string, int>();
|
||||
private int _nextContextId;
|
||||
private readonly Socket _socket;
|
||||
|
||||
public DthTestClient(DthTestServer server)
|
||||
{
|
||||
var socket = new Socket(AddressFamily.InterNetwork,
|
||||
SocketType.Stream,
|
||||
ProtocolType.Tcp);
|
||||
_socket = new Socket(AddressFamily.InterNetwork,
|
||||
SocketType.Stream,
|
||||
ProtocolType.Tcp);
|
||||
|
||||
socket.Connect(new IPEndPoint(IPAddress.Loopback, server.Port));
|
||||
_socket.Connect(new IPEndPoint(IPAddress.Loopback, server.Port));
|
||||
|
||||
_hostId = server.HostId;
|
||||
|
||||
_networkStream = new NetworkStream(socket);
|
||||
_networkStream = new NetworkStream(_socket);
|
||||
_reader = new BinaryReader(_networkStream);
|
||||
_writer = new BinaryWriter(_networkStream);
|
||||
|
||||
|
@ -221,6 +223,7 @@ namespace Microsoft.DotNet.ProjectModel.Server.Tests
|
|||
_writer.Dispose();
|
||||
_networkStream.Dispose();
|
||||
_readCancellationToken.Cancel();
|
||||
_socket.Shutdown(SocketShutdown.Both);
|
||||
}
|
||||
|
||||
private void ReadMessage(CancellationToken cancellationToken)
|
||||
|
|
|
@ -5,13 +5,14 @@ using System;
|
|||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
using Microsoft.DotNet.ProjectModel.Server;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Microsoft.DotNet.ProjectModel.Server.Tests
|
||||
{
|
||||
public class DthTestServer : IDisposable
|
||||
{
|
||||
private readonly Program _program;
|
||||
private readonly ProjectModelServerCommand _program;
|
||||
private readonly Thread _thread;
|
||||
|
||||
public DthTestServer(ILoggerFactory loggerFactory)
|
||||
|
@ -21,9 +22,9 @@ namespace Microsoft.DotNet.ProjectModel.Server.Tests
|
|||
Port = FindFreePort();
|
||||
HostId = Guid.NewGuid().ToString();
|
||||
|
||||
_program = new Program(Port, HostId, LoggerFactory);
|
||||
_program = new ProjectModelServerCommand(Port, HostId, LoggerFactory);
|
||||
|
||||
_thread = new Thread(() => { _program.OpenChannel(); });
|
||||
_thread = new Thread(() => { _program.OpenChannel(); }) { IsBackground = true };
|
||||
_thread.Start();
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ namespace Microsoft.DotNet.ProjectModel.Server.Tests
|
|||
[Theory]
|
||||
[InlineData("Project", "UnresolvedProjectSample", "EmptyLibrary", "Project")]
|
||||
[InlineData("Package", "UnresolvedPackageSample", "NoSuchPackage", null)]
|
||||
[InlineData("Package", "IncompatiblePackageSample", "Newtonsoft.Json", "Package")]
|
||||
[InlineData("Package", "IncompatiblePackageSample", "Microsoft.Web.Administration", "Package")]
|
||||
public void DthCompilation_Initialize_UnresolvedDependency(string referenceType,
|
||||
string testProjectName,
|
||||
string expectedUnresolvedDependency,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue