Example #1
0
	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();
	}