summaryrefslogtreecommitdiff
path: root/dbtests/framework.h
diff options
context:
space:
mode:
Diffstat (limited to 'dbtests/framework.h')
-rw-r--r--dbtests/framework.h25
1 files changed, 20 insertions, 5 deletions
diff --git a/dbtests/framework.h b/dbtests/framework.h
index 710b880..bec14a2 100644
--- a/dbtests/framework.h
+++ b/dbtests/framework.h
@@ -21,7 +21,7 @@
simple portable regression system
*/
-#include "../stdafx.h"
+#include "../pch.h"
#define ASSERT_EXCEPTION(a,b) \
try { \
@@ -34,6 +34,8 @@
#define ASSERT_EQUALS(a,b) (mongo::regression::MyAsserts( #a , #b , __FILE__ , __LINE__ ) ).ae( (a) , (b) )
+#define ASSERT_NOT_EQUALS(a,b) (mongo::regression::MyAsserts( #a , #b , __FILE__ , __LINE__ ) ).nae( (a) , (b) )
+
#define ASSERT(x) (void)( (!(!(x))) ? mongo::regression::assert_pass() : mongo::regression::assert_fail( #x , __FILE__ , __LINE__ ) )
#define FAIL(x) mongo::regression::fail( #x , __FILE__ , __LINE__ )
@@ -45,8 +47,6 @@ namespace mongo {
class Result;
- string demangleName( const type_info& typeinfo );
-
class TestCase {
public:
virtual ~TestCase(){}
@@ -112,9 +112,9 @@ namespace mongo {
_tests.push_back( new TestHolder1<T,A>(a) );
}
- Result * run();
+ Result * run( const string& filter );
- static int run( vector<string> suites );
+ static int run( vector<string> suites , const string& filter );
static int run( int argc , char ** argv , string default_dbpath );
@@ -166,6 +166,21 @@ namespace mongo {
throw e;
}
+ template<typename A,typename B>
+ void nae( A a , B b ){
+ _gotAssert();
+ if ( a != b )
+ return;
+
+ printLocation();
+
+ MyAssertionException * e = getBase();
+ e->ss << a << " == " << b << endl;
+ log() << e->ss.str() << endl;
+ throw e;
+ }
+
+
void printLocation();
private: