69 lines
2.1 KiB
C#
69 lines
2.1 KiB
C#
//
|
|
// Copyright (c) 2022-present, Trail of Bits, Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source code is licensed in accordance with the terms specified in
|
|
// the LICENSE file found in the root directory of this source tree.
|
|
//
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using RpcInvestigator;
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace UnitTests
|
|
{
|
|
internal class Environment
|
|
{
|
|
public Settings m_Settings;
|
|
public RpcLibrary m_Library;
|
|
|
|
public Environment()
|
|
{
|
|
}
|
|
|
|
public void Initialize()
|
|
{
|
|
TraceLogger.Initialize();
|
|
|
|
try
|
|
{
|
|
m_Settings = Settings.LoadDefault();
|
|
//
|
|
// TODO: This is hard-coded to match our github workflow action that installs
|
|
// the debugging tools from an MSI stored in Digital Ocean. This sucks.
|
|
//
|
|
m_Settings.m_DbghelpPath = "C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\dbghelp.dll";
|
|
m_Settings.m_SymbolPath = @"srv*c:\\symbols*https://msdl.microsoft.com/download/symbols";
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Assert.Fail("Exception loading default settings: " + ex.Message);
|
|
}
|
|
|
|
Assert.IsTrue(File.Exists(m_Settings.m_DbghelpPath));
|
|
|
|
try
|
|
{
|
|
//
|
|
// Important: each instance of Environment must setup a database unique
|
|
// to the caller, as the database is not meant to be thread-safe and
|
|
// tests can run in parallel.
|
|
//
|
|
m_Library = new RpcLibrary(Path.GetRandomFileName());
|
|
m_Library.Load();
|
|
//
|
|
// Wipe any existing entries from a prior test.
|
|
//
|
|
m_Library.Clear();
|
|
m_Library.Save();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Assert.Fail("Exception loading default library: " + ex.Message);
|
|
}
|
|
|
|
Assert.AreEqual(0, m_Library.GetServerCount());
|
|
}
|
|
}
|
|
}
|