void Run() { Regex r; std::string dump; JetHead::ErrCode err = r.prepare( gParseTests[ mTestNum ].regex ); if ( err != JetHead::kNoError ) TestFailed( "Prepare returned error code" ); bool res = r.parse( gParseTests[ mTestNum ].tree ); if ( gParseTests[ mTestNum ].pass != res ) { LOG_NOTICE( "Parse %s", res ? "succeeded" : "failed" ); LOG_NOTICE( "string: %s", gParseTests[ mTestNum ].tree ); LOG_NOTICE( "regex: %s", gParseTests[ mTestNum ].regex ); TestFailed( "Parse failed to match expected result" ); } for ( int i = 0; i < 5; i++ ) { if ( gParseTests[ mTestNum ].groups[ i ] != NULL ) { std::string s = r.getData( i ); if ( s != gParseTests[ mTestNum ].groups[ i ] ) { LOG_NOTICE( "Got %s for group %d", s.c_str(), i ); LOG_NOTICE( "Expected %s", gParseTests[ mTestNum ].groups[ i ] ); TestFailed( "Group does not match" ); } } } TestPassed(); }