Skip to content

Commit

Permalink
add small tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mjkkirschner committed Feb 26, 2024
1 parent 00510d7 commit 2dc5d10
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
67 changes: 67 additions & 0 deletions test/DynamoCoreTests/Logging/AnalyticsServiceTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,72 @@ public void DisableAnalytics()
dynamoCLI?.Kill();
}
}

[Test]
[Platform("win")]//nunit attribute for now only run on windows until we know it's useful on linux.
public void DisableAnalyticsViaNoNetWorkMode()
{
var versions = new List<Version>(){

new Version(230, 0,0),
};

var directory = new DirectoryInfo(Assembly.GetExecutingAssembly().Location);
var testDirectory = Path.Combine(directory.Parent.Parent.Parent.FullName, "test");
string openPath = Path.Combine(testDirectory, @"core\Angle.dyn");
//go get a valid asm path.
var locatedPath = string.Empty;
var coreDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Process dynamoCLI = null;
//TODO an approach we could take to get this running on linux.
//unclear if this needs to be compiled with an ifdef or runtime is ok.
//related to https://jira.autodesk.com/browse/DYN-5705
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
DynamoShapeManager.Utilities.SearchForASMInLibGFallback(versions, ref locatedPath, coreDirectory, out _);
}
else
{
DynamoShapeManager.Utilities.GetInstalledAsmVersion2(versions, ref locatedPath, coreDirectory);
}
try
{
Assert.DoesNotThrow(() =>
{
dynamoCLI = Process.Start(new ProcessStartInfo(Path.Combine(coreDirectory, "DynamoCLI.exe"), $"--GeometryPath \"{locatedPath}\" -k --NoNetworkMode -o \"{openPath}\" ") { UseShellExecute = true });
Thread.Sleep(5000);// Wait 5 seconds to open the dyn
Assert.IsFalse(dynamoCLI.HasExited);
var dt = DataTarget.AttachToProcess(dynamoCLI.Id, false);
var assemblies = dt
.ClrVersions
.Select(dtClrVersion => dtClrVersion.CreateRuntime())
.SelectMany(runtime => runtime.AppDomains.SelectMany(runtimeAppDomain => runtimeAppDomain.Modules))
.Select(clrModule => clrModule.AssemblyName)
.Distinct()
.Where(x => x != null)
.ToList();
var firstASMmodulePath = string.Empty;
foreach (string module in assemblies)
{
if (module.IndexOf("Analytics", StringComparison.OrdinalIgnoreCase) != -1)
{
Assert.Fail("Analytics module was loaded");
}
if (module.IndexOf("AdpSDKCSharpWrapper", StringComparison.OrdinalIgnoreCase) != -1)
{
Assert.Fail("ADP module was loaded");
}
}
});
}
finally
{

dynamoCLI?.Kill();
}
}
}
}
10 changes: 10 additions & 0 deletions test/System/IntegrationTests/DynamoApplicationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
using System.Diagnostics;
using System.IO;
using Dynamo.Applications;
using Dynamo.Logging;
using Dynamo.Models;
using NUnit.Framework;
using static Dynamo.Models.DynamoModel;

namespace IntegrationTests
{
Expand Down Expand Up @@ -64,6 +66,14 @@ public void DynamoMakeModelWithHostName()
var model = Dynamo.Applications.StartupUtils.MakeModel(false, string.Empty, "DynamoFormIt");
Assert.AreEqual(DynamoModel.HostAnalyticsInfo.HostName, "DynamoFormIt");
}
[Test]
public void DynamoModelStartedWithNoNetworkMode_AlsoDisablesAnalytics()
{
var startConfig = new DefaultStartConfiguration() { NoNetworkMode = true };
var model = DynamoModel.Start(startConfig);
Assert.AreEqual(true, Analytics.DisableAnalytics);
model.ShutDown(false);
}

[Test]
public void IfASMPathInvalidExceptionNotThrown()
Expand Down

0 comments on commit 2dc5d10

Please sign in to comment.