<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Changed in r305519</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 12, 2017, at 11:02 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Not sure I understand - what's the motivation for that? What difference in usability/behavior comes from that?<br class=""><br class="">Seems to me that gunit ASSERT is a good tool (compared to report_fatal_error) for checking setup invariants - it provides more precise error messages, and allows tests to continue running (well, actually, I'm not sure what happens when a test crashes like that - I guess gunit probably still manages to recover and run more tests), etc.</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Jun 12, 2017 at 10:36 AM Matthias Braun <<a href="mailto:matze@braunis.de" class="">matze@braunis.de</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class=""><div class=""></div><div class="">This is not about the thing being tested here, it's just sanity checking that we can parse the inputs before starting the actual test. I think it is better to only use the gunit ASSERTs for the partsthat the test actually wants to test.</div></div><div dir="auto" class=""><div class=""><br class=""></div><div class="">- Matthias</div></div><div dir="auto" class=""><div class=""><br class="">On Jun 12, 2017, at 10:06 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank" class="">dblaikie@gmail.com</a>> wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class="">Shouldn't this use the gunit ASSERT macros instead? probably.</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, Jun 6, 2017 at 12:01 PM Matthias Braun via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: matze<br class="">
Date: Tue Jun  6 14:00:54 2017<br class="">
New Revision: 304814<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=304814&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=304814&view=rev</a><br class="">
Log:<br class="">
UnitTests: Do not use assert() for error checking<br class="">
<br class="">
Use `if (!X) report_fatal_error()` instead of `assert()` for the ad-hoc<br class="">
error handling in two unittests. This reduces unnecessary differences<br class="">
between release and debug builds (motivated by unused variable warnings<br class="">
triggered in release builds).<br class="">
<br class="">
Modified:<br class="">
    llvm/trunk/unittests/MI/LiveIntervalTest.cpp<br class="">
    llvm/trunk/unittests/Target/AArch64/InstSizes.cpp<br class="">
<br class="">
Modified: llvm/trunk/unittests/MI/LiveIntervalTest.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/MI/LiveIntervalTest.cpp?rev=304814&r1=304813&r2=304814&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/MI/LiveIntervalTest.cpp?rev=304814&r1=304813&r2=304814&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/unittests/MI/LiveIntervalTest.cpp (original)<br class="">
+++ llvm/trunk/unittests/MI/LiveIntervalTest.cpp Tue Jun  6 14:00:54 2017<br class="">
@@ -151,7 +151,8 @@ body: |<br class="">
   std::unique_ptr<MIRParser> MIR;<br class="">
   std::unique_ptr<Module> M = parseMIR(Context, PM, MIR, *TM, MIRString,<br class="">
                                        "func");<br class="">
-  assert(M && "MIR parsing successfull");<br class="">
+  if (!M)<br class="">
+    report_fatal_error("Could not parse MIR code\n");<br class="">
<br class="">
   PM.add(new TestPass(T));<br class="">
<br class="">
<br class="">
Modified: llvm/trunk/unittests/Target/AArch64/InstSizes.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Target/AArch64/InstSizes.cpp?rev=304814&r1=304813&r2=304814&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Target/AArch64/InstSizes.cpp?rev=304814&r1=304813&r2=304814&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/unittests/Target/AArch64/InstSizes.cpp (original)<br class="">
+++ llvm/trunk/unittests/Target/AArch64/InstSizes.cpp Tue Jun  6 14:00:54 2017<br class="">
@@ -21,7 +21,8 @@ std::unique_ptr<TargetMachine> createTar<br class="">
<br class="">
   std::string Error;<br class="">
   const Target *TheTarget = TargetRegistry::lookupTarget(TT, Error);<br class="">
-  assert(TheTarget && "Target not registered");<br class="">
+  if (!TheTarget)<br class="">
+    report_fatal_error("Target not registered");<br class="">
<br class="">
   return std::unique_ptr<TargetMachine>(<br class="">
       TheTarget->createTargetMachine(TT, CPU, FS, TargetOptions(), None,<br class="">
@@ -58,21 +59,24 @@ void runChecks(<br class="">
   std::unique_ptr<MemoryBuffer> MBuffer = MemoryBuffer::getMemBuffer(MIRString);<br class="">
   std::unique_ptr<MIRParser> MParser =<br class="">
       createMIRParser(std::move(MBuffer), Context);<br class="">
-  assert(MParser && "Couldn't create MIR parser");<br class="">
+  if (!MParser)<br class="">
+    report_fatal_error("Couldn't create MIR parser");<br class="">
<br class="">
   std::unique_ptr<Module> M = MParser->parseIRModule();<br class="">
-  assert(M && "Couldn't parse module");<br class="">
+  if (!M)<br class="">
+    report_fatal_error("Couldn't parse module");<br class="">
<br class="">
   M->setTargetTriple(TM->getTargetTriple().getTriple());<br class="">
   M->setDataLayout(TM->createDataLayout());<br class="">
<br class="">
   MachineModuleInfo MMI(TM);<br class="">
   bool Res = MParser->parseMachineFunctions(*M, MMI);<br class="">
-  (void)Res;<br class="">
-  assert(!Res && "Couldn't parse MIR functions");<br class="">
+  if (Res)<br class="">
+    report_fatal_error("Couldn't parse MIR functions");<br class="">
<br class="">
   auto F = M->getFunction("sizes");<br class="">
-  assert(F && "Couldn't find intended function");<br class="">
+  if (!F)<br class="">
+    report_fatal_error("Couldn't find intended function");<br class="">
   auto &MF = MMI.getOrCreateMachineFunction(*F);<br class="">
<br class="">
   Checks(*II, MF);<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div>
</div></blockquote></div></blockquote></div>
</div></blockquote></div><br class=""></body></html>