greenplumn CMessageTableTest 源码

2022-08-18 浏览 (328)

greenplumn CMessageTableTest 代码

文件路径:/src/backend/gporca/libgpos/server/src/unittest/gpos/error/CMessageTableTest.cpp

/---------------------------------------------------------------------------
/	Greenplum Database
/	Copyright (C) 2008 - 2010 Greenplum, Inc.
/
/	@filename:
/		CMessageTableTest.cpp
/
/	@doc:
/		Tests for CMessageTable
/---------------------------------------------------------------------------

#include "unittest/gpos/error/CMessageTableTest.h"

#include "gpos/assert.h"
#include "gpos/error/CMessageTable.h"
#include "gpos/memory/CAutoMemoryPool.h"
#include "gpos/test/CUnittest.h"


using namespace gpos;

/---------------------------------------------------------------------------
/	@function:
/		CMessageTableTest::EresUnittest
/
/	@doc:
/		Function for raising assert exceptions; again, encapsulated in a function
/		to facilitate debugging
/
/---------------------------------------------------------------------------
GPOS_RESULT
CMessageTableTest::EresUnittest()
{
	CUnittest rgut[] = {
		GPOS_UNITTEST_FUNC(CMessageTableTest::EresUnittest_Basic),
	};

	return CUnittest::EresExecute(rgut, GPOS_ARRAY_SIZE(rgut));
}


/---------------------------------------------------------------------------
/	@function:
/		CMessageTableTest::EresUnittest_Basic
/
/	@doc:
/		Create message table and insert all standard messages;
/
/---------------------------------------------------------------------------
GPOS_RESULT
CMessageTableTest::EresUnittest_Basic()
{
	/ create memory pool
	CAutoMemoryPool amp;
	CMemoryPool *mp = amp.Pmp();

	CMessageTable *pmt =
		GPOS_NEW(mp) CMessageTable(mp, GPOS_MSGTAB_SIZE, ElocEnUS_Utf8);

	/ insert all system messages
	for (ULONG ul = 0; ul < CException::ExmiSentinel; ul++)
	{
		CMessage *pmsg = CMessage::GetMessage(ul);
		if (CException::m_invalid_exception != pmsg->m_exception)
		{
			pmt->AddMessage(pmsg);

#ifdef GPOS_DEBUG
			CMessage *pmsgLookedup = pmt->LookupMessage(pmsg->m_exception);
			GPOS_ASSERT(pmsg == pmsgLookedup && "Lookup failed");
#endif	/ GPOS_DEBUG
		}
	}

	GPOS_DELETE(pmt);

	return GPOS_OK;
}

/ EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CErrorHandlerTest 源码

greenplumn CExceptionTest 源码

greenplumn CLoggerTest 源码

greenplumn CMessageRepositoryTest 源码

greenplumn CMessageTest 源码

greenplumn CMiniDumperTest 源码

^