Index: visual_studio/NativeClientVSAddIn/UnitTests/ProjectSettingsTest.cs |
diff --git a/visual_studio/NativeClientVSAddIn/UnitTests/ProjectSettingsTest.cs b/visual_studio/NativeClientVSAddIn/UnitTests/ProjectSettingsTest.cs |
index 69fcac3d9046fae14f8e8d122cfbcefffa9d1f25..979eeb29d521c6d498bfd0662bc681135f91b028 100644 |
--- a/visual_studio/NativeClientVSAddIn/UnitTests/ProjectSettingsTest.cs |
+++ b/visual_studio/NativeClientVSAddIn/UnitTests/ProjectSettingsTest.cs |
@@ -78,6 +78,15 @@ namespace UnitTests |
public void TestSetup() |
{ |
dte_ = TestUtilities.StartVisualStudioInstance(); |
+ try |
+ { |
+ TestUtilities.AssertAddinLoaded(dte_, NativeClientVSAddIn.Strings.AddInName); |
+ } |
+ catch |
+ { |
+ TestUtilities.CleanUpVisualStudioInstance(dte_); |
+ throw; |
+ } |
} |
/// <summary> |
@@ -227,40 +236,42 @@ namespace UnitTests |
// General |
page = "ConfigurationGeneral"; |
- AllConfigsAssertPropertyEquals(page, "OutDir", @"$(ProjectDir)Win\", true); |
- AllConfigsAssertPropertyEquals(page, "IntDir", @"$(ProjectDir)Intermediate\Win\", true); |
+ AllConfigsAssertPropertyEquals(page, "OutDir", @"$(ProjectDir)win\", true); |
+ AllConfigsAssertPropertyEquals(page, "IntDir", @"$(ProjectDir)win\$(Configuration)\", true); |
AllConfigsAssertPropertyEquals(page, "TargetExt", ".dll", true); |
AllConfigsAssertPropertyEquals(page, "ConfigurationType", "DynamicLibrary", true); |
AllConfigsAssertPropertyEquals(page, "VSNaClSDKRoot", @"$(NACL_SDK_ROOT)\", false); |
+ AllConfigsAssertPropertyEquals(page, "NaClWebServerPort", "5103", false); |
AllConfigsAssertPropertyEquals(page, "CharacterSet", "Unicode", false); |
+ AllConfigsAssertPropertyIsNotNullOrEmpty(page, "NaClAddInVersion"); |
// Debugging |
page = "WindowsLocalDebugger"; |
+ string chromePath = System.Environment.GetEnvironmentVariable( |
+ NativeClientVSAddIn.Strings.ChromePathEnvironmentVariable); |
AllConfigsAssertPropertyEquals( |
- page, "LocalDebuggerCommand", @"$(CHROME_PATH)", true); |
+ page, "LocalDebuggerCommand", chromePath, true); |
+ string propName = "LocalDebuggerCommandArguments"; |
+ string dataDir = "--user-data-dir=\"$(ProjectDir)/chrome_data\""; |
+ string address = "localhost:$(NaClWebServerPort)"; |
+ string naclFlag = "--enable-nacl"; |
string targetFlag = "--register-pepper-plugins=\"$(TargetPath)\";application/x-nacl"; |
- string serverFlag = "localhost:5103"; |
- string debuggerFlag = "--wait-for-debugger-children"; |
- TestUtilities.AssertPropertyEquals( |
- debug_, |
- page, |
- "LocalDebuggerCommandArguments", |
- string.Format("{0} {1} {2}", targetFlag, serverFlag, debuggerFlag), |
- true); |
- TestUtilities.AssertPropertyEquals( |
- release_, |
- page, |
- "LocalDebuggerCommandArguments", |
- string.Format("{0} {1}", targetFlag, serverFlag), |
- true); |
+ string noSandBoxFlag = "--no-sandbox"; |
+ string debugChildrenFlag = "--wait-for-debugger-children"; |
+ AllConfigsAssertPropertyContains(page, propName, dataDir, true); |
+ AllConfigsAssertPropertyContains(page, propName, address, true); |
+ AllConfigsAssertPropertyContains(page, propName, naclFlag, true); |
+ AllConfigsAssertPropertyContains(page, propName, targetFlag, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, debugChildrenFlag, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, noSandBoxFlag, true); |
// VC++ Directories |
page = "ConfigurationDirectories"; |
AllConfigsAssertPropertyContains(page, "IncludePath", @"$(VSNaClSDKRoot)include;", true); |
AllConfigsAssertPropertyContains(page, "IncludePath", @"$(VCInstallDir)include", true); |
AllConfigsAssertPropertyContains( |
- page, "LibraryPath", @"$(VSNaClSDKRoot)lib\win_x86_32_host;", true); |
+ page, "LibraryPath", @"$(VSNaClSDKRoot)lib\win_x86_32_host\$(Configuration);", true); |
AllConfigsAssertPropertyContains(page, "LibraryPath", @"$(VCInstallDir)lib", true); |
// C/C++ Code Generation |
@@ -314,7 +325,7 @@ namespace UnitTests |
page = "ConfigurationGeneral"; |
AllConfigsAssertPropertyEquals(page, "OutDir", @"$(ProjectDir)$(ToolchainName)\", true); |
AllConfigsAssertPropertyEquals( |
- page, "IntDir", @"$(ProjectDir)Intermediate\$(ToolchainName)\", true); |
+ page, "IntDir", @"$(ProjectDir)$(ToolchainName)\$(Configuration)\", true); |
AllConfigsAssertPropertyEquals(page, "ToolchainName", "newlib", true); |
AllConfigsAssertPropertyEquals(page, "PlatformToolset", "win_x86_$(ToolchainName)", true); |
AllConfigsAssertPropertyEquals(page, "TargetArchitecture", "x86_64", true); |
@@ -322,19 +333,30 @@ namespace UnitTests |
AllConfigsAssertPropertyEquals(page, "NaClManifestPath", string.Empty, false); |
AllConfigsAssertPropertyEquals( |
page, "NaClIrtPath", @"$(VSNaClSDKRoot)\tools\irt_x86_64.nexe", false); |
+ AllConfigsAssertPropertyEquals(page, "NaClWebServerPort", "5103", false); |
+ AllConfigsAssertPropertyIsNotNullOrEmpty(page, "NaClAddInVersion"); |
// Debugging |
page = "WindowsLocalDebugger"; |
+ string chromePath = System.Environment.GetEnvironmentVariable( |
+ NativeClientVSAddIn.Strings.ChromePathEnvironmentVariable); |
AllConfigsAssertPropertyEquals( |
- page, "LocalDebuggerCommand", @"$(CHROME_PATH)", true); |
- TestUtilities.AssertPropertyEquals( |
- debug_, |
- page, |
- "LocalDebuggerCommandArguments", |
- "--enable-nacl-debug --no-sandbox localhost:5103", |
- true); |
- TestUtilities.AssertPropertyEquals( |
- release_, page, "LocalDebuggerCommandArguments", "localhost:5103", true); |
+ page, "LocalDebuggerCommand", chromePath, true); |
+ |
+ string propName = "LocalDebuggerCommandArguments"; |
+ string dataDir = "--user-data-dir=\"$(ProjectDir)/chrome_data\""; |
+ string address = "localhost:$(NaClWebServerPort)"; |
+ string naclFlag = "--enable-nacl"; |
+ string naclDebugFlag = "--enable-nacl-debug"; |
+ string noSandBoxFlag = "--no-sandbox"; |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, dataDir, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, address, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, naclFlag, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, naclDebugFlag, true); |
+ TestUtilities.AssertPropertyContains(debug_, page, propName, noSandBoxFlag, true); |
+ TestUtilities.AssertPropertyContains(release_, page, propName, dataDir, true); |
+ TestUtilities.AssertPropertyContains(release_, page, propName, address, true); |
+ TestUtilities.AssertPropertyContains(release_, page, propName, naclFlag, true); |
// VC++ Directories |
page = "ConfigurationDirectories"; |
@@ -386,7 +408,10 @@ namespace UnitTests |
private void TryCompile(string solutionPath, string configName, string platformName) |
{ |
string failFormat = "Project compile failed for {0} platform {1} config. Build output: {2}"; |
- |
+ string cygwinWarningFormat = "Did not pass cygwin nodosfilewarning environment var to tools" |
+ + " Platform: {0}, configuration: {1}"; |
+ StringComparison ignoreCase = StringComparison.InvariantCultureIgnoreCase; |
+ |
// Open Debug configuration and build. |
dte_.Solution.Open(solutionPath); |
TestUtilities.SetSolutionConfiguration( |
@@ -396,8 +421,12 @@ namespace UnitTests |
string compileOutput = TestUtilities.GetPaneText( |
dte_.ToolWindows.OutputWindow.OutputWindowPanes.Item("Build")); |
Assert.IsTrue( |
- compileOutput.Contains("Build succeeded.", StringComparison.InvariantCultureIgnoreCase), |
+ compileOutput.Contains("Build succeeded.", ignoreCase), |
string.Format(failFormat, platformName, configName, compileOutput)); |
+ Assert.IsFalse( |
+ compileOutput.Contains("MS-DOS style path detected", ignoreCase), |
+ string.Format(cygwinWarningFormat, platformName, configName)); |
+ |
dte_.Solution.Close(); |
} |
@@ -447,7 +476,7 @@ namespace UnitTests |
/// <summary> |
/// Tests that a given property contains a specific string for both Debug and Release |
- /// configurations under the NaCl platform. |
+ /// configurations under the current test's platform. |
/// </summary> |
/// <param name="pageName">Property page name where property resides.</param> |
/// <param name="propertyName">Name of the property to check.</param> |
@@ -472,5 +501,25 @@ namespace UnitTests |
expectedValue, |
ignoreCase); |
} |
+ |
+ /// <summary> |
+ /// Tests that a given property's value is not null or empty for both Debug and Release |
+ /// configurations under the current test's platform. |
+ /// </summary> |
+ /// <param name="pageName">Property page name where property resides.</param> |
+ /// <param name="propertyName">Name of the property to check.</param> |
+ private void AllConfigsAssertPropertyIsNotNullOrEmpty( |
+ string pageName, |
+ string propertyName) |
+ { |
+ TestUtilities.AssertPropertyIsNotNullOrEmpty( |
+ debug_, |
+ pageName, |
+ propertyName); |
+ TestUtilities.AssertPropertyIsNotNullOrEmpty( |
+ release_, |
+ pageName, |
+ propertyName); |
+ } |
} |
} |