From 223606fcd02e6d15e065d1e108e17c8848d35f9f Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 15 Jun 2022 17:09:55 -0500 Subject: Update some skipped tests to be dynamically skipped. --- src/libs/dutil/test/DUtilUnitTest/DUtilTests.cpp | 42 ++++++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) (limited to 'src/libs') diff --git a/src/libs/dutil/test/DUtilUnitTest/DUtilTests.cpp b/src/libs/dutil/test/DUtilUnitTest/DUtilTests.cpp index 70e5a256..5e2d69e1 100644 --- a/src/libs/dutil/test/DUtilUnitTest/DUtilTests.cpp +++ b/src/libs/dutil/test/DUtilUnitTest/DUtilTests.cpp @@ -5,26 +5,49 @@ using namespace System; using namespace Xunit; using namespace WixBuildTools::TestSupport; +using namespace WixBuildTools::TestSupport::XunitExtensions; namespace DutilTests { + [Collection("Dutil_TraceErrorSource")] public ref class DUtil { public: - [Fact(Skip="Flaky")] + [SkippableFact] void DUtilTraceErrorSourceFiltersOnTraceLevel() { DutilInitialize(&DutilTestTraceError); - CallDutilTraceErrorSource(); + try + { + CallDutilTraceErrorSource(); - Dutil_TraceSetLevel(REPORT_DEBUG, FALSE); + Dutil_TraceSetLevel(REPORT_DEBUG, FALSE); - Action^ action = gcnew Action(this, &DUtil::CallDutilTraceErrorSource); - // See the comments in WixBuildTools.WixAssert for details. - WixAssert::Throws(action); + Exception^ traceErrorException = nullptr; - DutilUninitialize(); + try + { + CallDutilTraceErrorSource(); + } + catch (Exception^ e) + { + traceErrorException = e; + } + + if (traceErrorException == nullptr) + { + WixAssert::Skip("Dutil_TraceErrorSource did not call the registered callback."); + } + else + { + WixAssert::StringEqual("hr = 0x80004005, message = Error message", traceErrorException->Message, false); + } + } + finally + { + DutilUninitialize(); + } } private: @@ -33,4 +56,9 @@ namespace DutilTests Dutil_TraceErrorSource(__FILE__, __LINE__, REPORT_DEBUG, DUTIL_SOURCE_EXTERNAL, E_FAIL, "Error message"); } }; + + [CollectionDefinition("Dutil_TraceErrorSource", DisableParallelization = true)] + public ref class Dutil_TraceErrorSourceCollectionDefinition + { + }; } -- cgit v1.2.3-55-g6feb