/*-------------------------------------------------------------------------
* drawElements Quality Program OpenGL ES 3.1 Module
* -------------------------------------------------
*
* Copyright 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*//*!
* \file
* \brief OpenGL ES 3.1 Test Package
*//*--------------------------------------------------------------------*/
#include "tes31TestPackage.hpp"
#include "tes31InfoTests.hpp"
#include "es31fFunctionalTests.hpp"
#include "es31sStressTests.hpp"
namespace deqp
{
namespace gles31
{
PackageContext::PackageContext (tcu::TestContext& testCtx)
: m_context (DE_NULL)
, m_caseWrapper (DE_NULL)
{
try
{
m_context = new Context(testCtx);
m_caseWrapper = new TestCaseWrapper(testCtx, m_context->getRenderContext());
}
catch (...)
{
delete m_caseWrapper;
delete m_context;
throw;
}
}
PackageContext::~PackageContext (void)
{
delete m_caseWrapper;
delete m_context;
}
TestPackage::TestPackage (tcu::TestContext& testCtx)
: tcu::TestPackage (testCtx, "dEQP-GLES31", "dEQP OpenGL ES 3.1 Tests")
, m_packageCtx (DE_NULL)
, m_archive (testCtx.getRootArchive(), "gles31/")
{
}
TestPackage::~TestPackage (void)
{
// Destroy children first since destructors may access context.
TestNode::deinit();
delete m_packageCtx;
}
void TestPackage::init (void)
{
try
{
// Create context
m_packageCtx = new PackageContext(m_testCtx);
// Add main test groups
addChild(new InfoTests (m_packageCtx->getContext()));
addChild(new Functional::FunctionalTests (m_packageCtx->getContext()));
addChild(new Stress::StressTests (m_packageCtx->getContext()));
}
catch (...)
{
delete m_packageCtx;
m_packageCtx = DE_NULL;
throw;
}
}
void TestPackage::deinit (void)
{
TestNode::deinit();
delete m_packageCtx;
m_packageCtx = DE_NULL;
}
} // gles31
} // deqp