2010-11-29 19:40:44 +00:00
/*
* MiscTests.cpp
* Catch - Test
*
* Created by Phil on 29/11/2010.
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
*
* Distributed under the Boost Software License, Version 1.0. (See accompanying
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*
*/
2011-04-26 08:32:40 +01:00
#include "catch.hpp"
2011-01-07 10:22:24 +00:00
#include <iostream>
2010-11-29 19:40:44 +00:00
2011-01-14 08:47:43 +00:00
TEST_CASE ( "./succeeding/Misc/Sections" , "random SECTION tests" )
2010-11-29 19:40:44 +00:00
{
int a = 1 ;
int b = 2 ;
SECTION ( "s1" , "doesn't equal" )
{
2010-12-14 09:00:09 +00:00
REQUIRE ( a != b );
REQUIRE ( b != a );
2010-11-29 19:40:44 +00:00
}
2010-11-30 06:48:21 +00:00
2010-11-29 19:40:44 +00:00
SECTION ( "s2" , "not equal" )
{
2011-02-17 20:15:20 +00:00
REQUIRE ( a != b );
2010-11-29 19:40:44 +00:00
}
}
2010-11-30 06:48:21 +00:00
2011-01-14 08:47:43 +00:00
TEST_CASE ( "./succeeding/Misc/Sections/nested" , "nested SECTION tests" )
2010-12-15 19:36:39 +00:00
{
int a = 1 ;
int b = 2 ;
SECTION ( "s1" , "doesn't equal" )
{
2010-12-28 17:21:29 +00:00
REQUIRE ( a != b );
2010-12-15 19:36:39 +00:00
REQUIRE ( b != a );
SECTION ( "s2" , "not equal" )
{
2011-02-17 20:15:20 +00:00
REQUIRE ( a != b );
}
}
}
2011-02-21 18:50:35 +00:00
TEST_CASE ( "./mixed/Misc/Sections/nested2" , "nested SECTION tests" )
2011-02-17 20:15:20 +00:00
{
int a = 1 ;
int b = 2 ;
SECTION ( "s1" , "doesn't equal" )
{
SECTION ( "s2" , "equal" )
{
2011-02-21 08:50:05 +00:00
REQUIRE ( a == b );
2011-02-17 20:15:20 +00:00
}
SECTION ( "s3" , "not equal" )
{
2011-02-21 08:50:05 +00:00
REQUIRE ( a != b );
}
SECTION ( "s4" , "less than" )
{
2011-02-28 08:18:52 +00:00
REQUIRE ( a < b );
2010-12-15 19:36:39 +00:00
}
}
}
2011-01-14 08:47:43 +00:00
TEST_CASE ( "./mixed/Misc/Sections/loops" , "looped SECTION tests" )
2010-12-28 14:41:57 +00:00
{
int a = 1 ;
for ( int b = 0 ; b < 10 ; ++ b )
{
std :: ostringstream oss ;
oss << "b is currently: " << b ;
SECTION ( "s1" , oss . str () )
{
CHECK ( b > a );
}
}
}
2011-01-14 08:47:43 +00:00
TEST_CASE ( "./mixed/Misc/loops" , "looped tests" )
2010-12-28 14:41:57 +00:00
{
static const int fib [] = { 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 };
for ( size_t i = 0 ; i < sizeof ( fib ) / sizeof ( int ); ++ i )
{
INFO ( "Testing if fib[" << i << "] (" << fib [ i ] << ") is even" );
CHECK ( ( fib [ i ] % 2 ) == 0 );
}
}
2011-01-14 08:47:43 +00:00
TEST_CASE ( "./succeeding/Misc/stdout,stderr" , "Sends stuff to stdout and stderr" )
2010-11-30 06:48:21 +00:00
{
2012-02-22 09:42:34 +00:00
std :: cout << "Some information" << std :: endl ;
2010-11-30 06:48:21 +00:00
2012-02-22 09:42:34 +00:00
std :: cerr << "An error" << std :: endl ;
2010-12-28 14:41:57 +00:00
}
2011-02-23 20:02:18 +00:00
2011-12-27 10:59:41 +00:00
inline const char * makeString ( bool makeNull )
2011-02-23 20:02:18 +00:00
{
return makeNull ? NULL : "valid string" ;
}
TEST_CASE ( "./succeeding/Misc/null strings" , "" )
{
REQUIRE ( makeString ( false ) != static_cast < char *> ( NULL ));
REQUIRE ( makeString ( true ) == static_cast < char *> ( NULL ));
}
2011-03-09 19:45:05 +00:00
TEST_CASE ( "./failing/info" , "sends information to INFO" )
{
INFO ( "hi" );
int i = 7 ;
CAPTURE ( i );
REQUIRE ( false );
}
2012-02-10 08:30:13 +00:00
inline bool testCheckedIf ( bool flag )
{
CHECKED_IF ( flag )
return true ;
else
return false ;
}
TEST_CASE ( "./succeeding/checkedif" , "" )
{
REQUIRE ( testCheckedIf ( true ) );
}
TEST_CASE ( "./failing/checkedif" , "" )
{
REQUIRE ( testCheckedIf ( false ) );
}
inline bool testCheckedElse ( bool flag )
{
CHECKED_ELSE ( flag )
return false ;
return true ;
}
TEST_CASE ( "./succeeding/checkedelse" , "" )
{
REQUIRE ( testCheckedElse ( true ) );
}
TEST_CASE ( "./failing/checkedelse" , "" )
{
REQUIRE ( testCheckedElse ( false ) );
}
2012-02-10 18:58:06 +00:00
TEST_CASE ( "./misc/xmlentitycheck" , "" )
{
SECTION ( "embedded xml" , "<test>it should be possible to embed xml characters, such as <, \" or &, or even whole <xml>documents</xml> within an attribute</test>" )
{
// No test
}
SECTION ( "encoded chars" , "these should all be encoded: &&& \"\"\" <<<& \" <<& \" " )
{
// No test
}
}