Skip to content

Commit 7fbfc61

Browse files
authored
Adding trace level in diag argument (microsoft#1681)
* Diag verbosity param support initial commit * Trace level changes * Adding unit tests * resource correction * UT fix * removing platform abstractions dependency from translation layer
1 parent aad2f43 commit 7fbfc61

File tree

47 files changed

+1243
-404
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1243
-404
lines changed

src/Microsoft.TestPlatform.CoreUtilities/Tracing/EqtTrace.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,19 @@ public static bool IsWarningEnabled
146146
/// </returns>
147147
public static bool InitializeVerboseTrace(string customLogFile)
148148
{
149-
if (!traceImpl.InitializeVerboseTrace(customLogFile))
149+
return InitializeTrace(customLogFile, PlatformTraceLevel.Verbose);
150+
}
151+
152+
/// <summary>
153+
/// Initializes the tracing with custom log file and trace level.
154+
/// Overrides if any trace is set before.
155+
/// </summary>
156+
/// <param name="customLogFile">Custom log file for trace messages.</param>
157+
/// <param name="traceLevel">Trace level.</param>
158+
/// <returns>Trace initialized flag.</returns>
159+
public static bool InitializeTrace(string customLogFile, PlatformTraceLevel traceLevel)
160+
{
161+
if (!traceImpl.InitializeTrace(customLogFile, traceLevel))
150162
{
151163
ErrorOnInitialization = PlatformEqtTrace.ErrorOnInitialization;
152164
return false;

src/Microsoft.TestPlatform.CrossPlatEngine/Client/ProxyOperationManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public virtual bool SetupChannel(IEnumerable<string> sources)
116116
}
117117

118118
var processId = this.processHelper.GetCurrentProcessId();
119-
var connectionInfo = new TestRunnerConnectionInfo { Port = portNumber, ConnectionInfo = testHostConnectionInfo, RunnerProcessId = processId, LogFile = this.GetTimestampedLogFile(EqtTrace.LogFile) };
119+
var connectionInfo = new TestRunnerConnectionInfo { Port = portNumber, ConnectionInfo = testHostConnectionInfo, RunnerProcessId = processId, LogFile = this.GetTimestampedLogFile(EqtTrace.LogFile), TraceLevel = (int)EqtTrace.TraceLevel };
120120

121121
// Subscribe to TestHost Event
122122
this.testHostManager.HostLaunched += this.TestHostManagerHostLaunched;

src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/ProxyDataCollectionManager.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ internal class ProxyDataCollectionManager : IProxyDataCollectionManager
3838
private const string PortOption = "--port";
3939
private const string DiagOption = "--diag";
4040
private const string ParentProcessIdOption = "--parentprocessid";
41+
private const string TraceLevelOption = "--tracelevel";
4142
public const string DebugEnvironmentVaribleName = "VSTEST_DATACOLLECTOR_DEBUG";
4243

4344
private IDataCollectionRequestSender dataCollectionRequestSender;
@@ -299,6 +300,9 @@ private IList<string> GetCommandLineArguments(int portNumber)
299300
{
300301
commandlineArguments.Add(DiagOption);
301302
commandlineArguments.Add(this.GetTimestampedLogFile(EqtTrace.LogFile));
303+
304+
commandlineArguments.Add(TraceLevelOption);
305+
commandlineArguments.Add(((int)EqtTrace.TraceLevel).ToString());
302306
}
303307

304308
return commandlineArguments;

src/Microsoft.TestPlatform.ObjectModel/ConnectionInfo/TestRunnerConnectionInfo.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,15 @@ public string LogFile
9898
set;
9999
}
100100

101+
/// <summary>
102+
/// Gets or sets the trace level of logs.
103+
/// </summary>
104+
public int TraceLevel
105+
{
106+
get;
107+
set;
108+
}
109+
101110
/// <summary>
102111
/// Gets or sets the runner process id.
103112
/// </summary>

src/Microsoft.TestPlatform.ObjectModel/ConnectionInfo/TestRunnerConnectionInfoExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public static string ToCommandLineOptions(this TestRunnerConnectionInfo connecti
1919
if (!string.IsNullOrEmpty(connectionInfo.LogFile))
2020
{
2121
options += " --diag " + connectionInfo.LogFile;
22+
options += " --tracelevel " + connectionInfo.TraceLevel;
2223
}
2324

2425
return options;

src/Microsoft.TestPlatform.PlatformAbstractions/Interfaces/Tracing/IPlatformEqtTrace.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ bool DoNotInitialize
3737
/// </returns>
3838
bool InitializeVerboseTrace(string customLogFile);
3939

40+
/// <summary>
41+
/// Initializes the tracing with custom log file and trace level.
42+
/// Overrides if any trace is set before.
43+
/// </summary>
44+
/// <param name="customLogFile">Customr log file for trace messages.</param>
45+
/// <param name="traceLevel">Trace level.</param>
46+
/// <returns>Trace initialized flag.</returns>
47+
bool InitializeTrace(string customLogFile, PlatformTraceLevel traceLevel);
48+
4049
/// <summary>
4150
/// Gets a value indicating if tracing is enabled for a trace level.
4251
/// </summary>

src/Microsoft.TestPlatform.PlatformAbstractions/common/Tracing/PlatformEqtTrace.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,18 @@ private static TraceSource Source
161161

162162
/// <inheritdoc/>
163163
public bool InitializeVerboseTrace(string customLogFile)
164+
{
165+
return this.InitializeTrace(customLogFile, PlatformTraceLevel.Verbose);
166+
}
167+
168+
/// <inheritdoc/>
169+
public bool InitializeTrace(string customLogFile, PlatformTraceLevel platformTraceLevel)
164170
{
165171
isInitialized = false;
166172

167173
LogFile = customLogFile;
168-
TraceLevel = TraceLevel.Verbose;
169-
Source.Switch.Level = SourceLevels.All;
174+
TraceLevel = this.MapPlatformTraceToTrace(platformTraceLevel);
175+
Source.Switch.Level = TraceSourceLevelsMap[TraceLevel];
170176

171177
// Ensure trace is initlized
172178
return EnsureTraceIsInitialized();
@@ -351,7 +357,7 @@ private static bool EnsureTraceIsInitialized()
351357
}
352358
catch (Exception e)
353359
{
354-
UnInitializeVerboseTrace();
360+
UnInitializeTrace();
355361
ErrorOnInitialization = e.ToString();
356362
return false;
357363
}
@@ -419,7 +425,7 @@ private static int GetProcessId()
419425
}
420426
}
421427

422-
private static void UnInitializeVerboseTrace()
428+
private static void UnInitializeTrace()
423429
{
424430
isInitialized = false;
425431

src/Microsoft.TestPlatform.PlatformAbstractions/netstandard1.0/Tracing/PlatformEqtTrace.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ public bool InitializeVerboseTrace(string customLogFile)
3939
throw new NotImplementedException();
4040
}
4141

42+
public bool InitializeTrace(string customLogFile, PlatformTraceLevel traceLevel)
43+
{
44+
throw new NotImplementedException();
45+
}
46+
4247
public bool ShouldTrace(PlatformTraceLevel traceLevel)
4348
{
4449
throw new NotImplementedException();

src/Microsoft.TestPlatform.PlatformAbstractions/uap10.0/Tracing/PlatformEqtTrace.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ public void WriteLine(PlatformTraceLevel level, string message)
6969

7070
/// <inheritdoc/>
7171
public bool InitializeVerboseTrace(string customLogFile)
72+
{
73+
return this.InitializeTrace(customLogFile, PlatformTraceLevel.Verbose);
74+
}
75+
76+
/// <inheritdoc/>
77+
public bool InitializeTrace(string customLogFile, PlatformTraceLevel traceLevel)
7278
{
7379
string logFileName = string.Empty;
7480
try
@@ -81,7 +87,7 @@ public bool InitializeVerboseTrace(string customLogFile)
8187
}
8288

8389
LogFile = Path.Combine(Path.GetTempPath(), logFileName + ".TpTrace.log");
84-
TraceLevel = PlatformTraceLevel.Verbose;
90+
TraceLevel = traceLevel;
8591

8692
return this.TraceInitialized();
8793
}
@@ -154,7 +160,7 @@ private bool TraceInitialized()
154160
}
155161
catch (Exception ex)
156162
{
157-
this.UnInitializeVerboseTrace();
163+
this.UnInitializeTrace();
158164
ErrorOnInitialization = ex.Message;
159165
return false;
160166
}
@@ -163,7 +169,7 @@ private bool TraceInitialized()
163169
}
164170
}
165171

166-
private void UnInitializeVerboseTrace()
172+
private void UnInitializeTrace()
167173
{
168174
isInitialized = false;
169175
LogFile = null;

src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/ConsoleParameters.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33

44
namespace Microsoft.TestPlatform.VsTestConsole.TranslationLayer
55
{
6+
using System;
7+
using System.Diagnostics;
8+
using System.IO;
9+
610
using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Extensions;
711
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
812
using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers;
913
using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers.Interfaces;
10-
using System;
11-
using System.IO;
1214

1315
/// <summary>
1416
/// Class which defines additional specifiable parameters for vstest.console.exe
@@ -35,6 +37,11 @@ public ConsoleParameters(IFileHelper fileHelper)
3537
this.fileHelper = fileHelper;
3638
}
3739

40+
/// <summary>
41+
/// Trace level for logs.
42+
/// </summary>
43+
public TraceLevel TraceLevel { get; set; } = TraceLevel.Verbose;
44+
3845
/// <summary>
3946
/// Full path for the log file
4047
/// </summary>

0 commit comments

Comments
 (0)