Visual Assert – The Unit Testing Add-In for Visual C++
cfix – C/C++ Unit Testing for Win32 and NT
 
 

CFIXCC_ASSERT_GREATER[_OR_EQUAL]

CFIXCC_ASSERT_GREATER[_OR_EQUAL]

Synopsis

CFIXCC_ASSERT_GREATER and CFIXCC_ASSERT_GREATER_OR_EQUAL allow typesafe comparison of values. Failed comparisons are treated as a failure, i.e. in the same manner as a failed CFIX_ASSERT. The benefit over using CFIX_ASSERT( Expected > Actual )/CFIX_ASSERT( Expected >= Actual ) is that the expected and actual value will be visible in the failure report.

Declaration
void CFIXCC_ASSERT_GREATER( 
	__in T Expected, 
	__in T Actual 
	);
	
void CFIXCC_ASSERT_GREATER_OR_EQUAL( 
	__in T Expected, 
	__in T Actual 
	);
				

T can be any type, but the types of both values must be compatible. See discussion below.

Parameters

[in] Expected: The expected value.

[in] Actual: The actual value that is to be checked.

Remarks

The way the comparison is conducted depends on the type of the two values.

  • Primitive integer objects are compared using the builtin > [>=] operator.
  • Pointers are checked for address inequality. An exception to this are C strings (char*, const char*, wchar_t*, const wchar_t*). Such strings will be wrapped by std::string and std::wstring objects respectively, and operator> [operator>=] of std::string or std::wstring will be invoked. That is, a value-comparison is conducted.
  • For non-primitive, non-pointer types, i.e. objects of a custom class, operator> [operator>=] of the respective class is invoked.

Usage example
CFIXCC_ASSERT_GREATER( 3, 2 );
CFIXCC_ASSERT_GREATER( L"c", L"b" );
CFIXCC_ASSERT_GREATER_OR_EQUAL( 1, -1 );
CFIXCC_ASSERT_GREATER_OR_EQUAL( -1, -1 );
				
Requirements

Table 7.33. 

 User ModeKernel Mode
Available since1.2N/A
HeaderDeclared in cfixcc.hN/A
LibraryLink to cfix.libN/A
DLLcfix.dllN/A
IRQLN/AN/A