|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.IO;
using System.Linq;
using Microsoft.Build.Shared;
using Shouldly;
using Xunit;
using Xunit.Abstractions;
#nullable disable
namespace Microsoft.Build.UnitTests
{
public class DebugUtils_Tests
{
[Fact]
public void DumpExceptionToFileShouldWriteInDebugDumpPath()
{
var exceptionFilesBefore = Directory.GetFiles(ExceptionHandling.DebugDumpPath, "MSBuild_*failure.txt");
string[] exceptionFiles = null;
try
{
ExceptionHandling.DumpExceptionToFile(new Exception("hello world"));
exceptionFiles = Directory.GetFiles(ExceptionHandling.DebugDumpPath, "MSBuild_*failure.txt");
}
finally
{
exceptionFilesBefore.ShouldNotBeNull();
exceptionFiles.ShouldNotBeNull();
(exceptionFiles.Length - exceptionFilesBefore.Length).ShouldBe(1);
var exceptionFile = exceptionFiles.Except(exceptionFilesBefore).Single();
File.ReadAllText(exceptionFile).ShouldContain("hello world");
File.Delete(exceptionFile);
}
}
}
}
|