From 16a6dd57467da28552a05fd07198847b6ab0ddb7 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 10 Nov 2010 07:59:07 +0000 Subject: [PATCH] Added note about ! operator --- Test/ConditionTests.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Test/ConditionTests.cpp b/Test/ConditionTests.cpp index 64897fd1..3eaec140 100644 --- a/Test/ConditionTests.cpp +++ b/Test/ConditionTests.cpp @@ -155,6 +155,12 @@ TEST_CASE( "failing/conditions/ordered", "Ordering comparison checks that should } // Not (!) tests +// The problem with the ! operator is that it has right-to-left associativity. +// This means we can't isolate it when we decompose. The simple CHECK( !false ) form, therefore, +// cannot have the operand value extracted. The test will work correctly, and the situation +// is detected and a warning issued. +// An alternative form of the macros (CHECK_NOT and EXPECT_NOT) can be used instead to capture +// the operand value. TEST_CASE( "succeeding/conditions/not", "'Not' checks that should succeed" ) { bool falseValue = false;