[PATCH] D95803: Ensure that InstructionCost actually implements a total ordering
Sander de Smalen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 4 13:24:17 PST 2021
sdesmalen added inline comments.
================
Comment at: llvm/unittests/Support/InstructionCostTest.cpp:25
+
+ ASSERT_TRUE(DefaultCost.isValid());
+ EXPECT_EQ(*(DefaultCost.getValue()), 0);
----------------
ctetreau wrote:
> sdesmalen wrote:
> > is there a reason you're preferring ASSERT over EXPECT in this test, and not the one below (getValue() == 0). I would think EXPECT is sufficient.
> if the DefaultCost is invalid, then the dereference of the getValue below will cause a crash, preventing the rest of the tests from running.
>
> If I change the default to Invalid then run the test:
>
> with `ASSERT_TRUE`:
>
> ```
> [----------] 2 tests from CostTest
> [ RUN ] CostTest.DefaultCtor
> [redacted]\llvm\unittests\Support\InstructionCostTest.cpp(25): error: Value of: DefaultCost.isValid()
> Actual: false
> Expected: true
> [ FAILED ] CostTest.DefaultCtor (1 ms)
> [ RUN ] CostTest.Operators
> [ OK ] CostTest.Operators (0 ms)
> [----------] 2 tests from CostTest (3 ms total)
> ```
>
> with `EXPECT_TRUE`:
> ```
> [----------] 2 tests from CostTest
> [ RUN ] CostTest.DefaultCtor
> [redacted]\llvm\unittests\Support\InstructionCostTest.cpp(25): error: Value of: DefaultCost.isValid()
> Actual: false
> Expected: true
> Assertion failed: hasVal, file [redacted]\llvm\include\llvm/ADT/Optional.h, line 197
> ```
Thanks for explaining, I didn't realise that was how ASSERT_TRUE worked.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95803/new/
https://reviews.llvm.org/D95803
More information about the llvm-commits
mailing list