//--------------------------------------------------------------------------- // @function: // CParseHandlerTest::EresParseAndSerializeMDRequest // // @doc: // Parse an MD request and verify correctness of serialization. // //--------------------------------------------------------------------------- GPOS_RESULT CParseHandlerTest::EresParseAndSerializeMDRequest ( IMemoryPool *pmp, const CHAR *szDXLFileName, BOOL fValidate ) { CWStringDynamic str(pmp); COstreamString oss(&str); // read DXL file CHAR *szDXL = CDXLUtils::SzRead(pmp, szDXLFileName); GPOS_CHECK_ABORT; // parse the mdid objects into a dynamic array const CHAR *szValidationPath = NULL; if (fValidate) { szValidationPath = CTestUtils::m_szXSDPath; } CMDRequest *pmdr = CDXLUtils::PmdrequestParseDXL(pmp, szDXL, szValidationPath); GPOS_ASSERT(NULL != pmdr); GPOS_CHECK_ABORT; CDXLUtils::SerializeMDRequest(pmp, pmdr, oss, true /*fSerializeHeaderFooter*/, true /*fIndent*/); GPOS_CHECK_ABORT; CWStringDynamic strExpected(pmp); strExpected.AppendFormat(GPOS_WSZ_LIT("%s"), szDXL); GPOS_ASSERT(strExpected.FEquals(&str)); pmdr->Release(); GPOS_DELETE_ARRAY(szDXL); return GPOS_OK; }
//--------------------------------------------------------------------------- // @function: // CParseHandlerTest::EresParseAndSerializeMDRequest // // @doc: // Parse an MD request and verify correctness of serialization. // //--------------------------------------------------------------------------- GPOS_RESULT CParseHandlerTest::EresParseAndSerializeMDRequest ( IMemoryPool *mp, const CHAR *dxl_filename, BOOL fValidate ) { CWStringDynamic str(mp); COstreamString oss(&str); // read DXL file CHAR *dxl_string = CDXLUtils::Read(mp, dxl_filename); GPOS_CHECK_ABORT; // parse the mdid objects into a dynamic array const CHAR *szValidationPath = NULL; if (fValidate) { szValidationPath = CTestUtils::m_szXSDPath; } CMDRequest *pmdr = CDXLUtils::ParseDXLToMDRequest(mp, dxl_string, szValidationPath); GPOS_ASSERT(NULL != pmdr); GPOS_CHECK_ABORT; CDXLUtils::SerializeMDRequest(mp, pmdr, oss, true /*serialize_header_footer*/, true /*indentation*/); GPOS_CHECK_ABORT; CWStringDynamic strExpected(mp); strExpected.AppendFormat(GPOS_WSZ_LIT("%s"), dxl_string); GPOS_ASSERT(strExpected.Equals(&str)); pmdr->Release(); GPOS_DELETE_ARRAY(dxl_string); return GPOS_OK; }