Add CTS_ARB_gl_spirv test implementation
[platform/upstream/VK-GL-CTS.git] / modules / internal / ditTestLogTests.cpp
1 /*-------------------------------------------------------------------------
2  * drawElements Internal Test Module
3  * ---------------------------------
4  *
5  * Copyright 2014 The Android Open Source Project
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *//*!
20  * \file
21  * \brief Test log output tests.
22  *//*--------------------------------------------------------------------*/
23
24 #include "ditTestLogTests.hpp"
25 #include "tcuTestLog.hpp"
26
27 #include <limits>
28
29 namespace dit
30 {
31
32 using tcu::TestLog;
33
34 // \todo [2014-02-25 pyry] Extend with:
35 //  - output of all element types
36 //  - nested element cases (sections, image sets)
37 //  - parse results and verify
38
39 class BasicSampleListCase : public tcu::TestCase
40 {
41 public:
42         BasicSampleListCase (tcu::TestContext& testCtx)
43                 : TestCase(testCtx, "sample_list", "Basic sample list usage")
44         {
45         }
46
47         IterateResult iterate (void)
48         {
49                 TestLog& log = m_testCtx.getLog();
50
51                 log << TestLog::SampleList("TestSamples", "Test Sample List")
52                         << TestLog::SampleInfo
53                         << TestLog::ValueInfo("NumDrawCalls",   "Number of draw calls",         "",             QP_SAMPLE_VALUE_TAG_PREDICTOR)
54                         << TestLog::ValueInfo("NumOps",                 "Number of ops in shader",      "op",   QP_SAMPLE_VALUE_TAG_PREDICTOR)
55                         << TestLog::ValueInfo("RenderTime",             "Rendering time",                       "ms",   QP_SAMPLE_VALUE_TAG_RESPONSE)
56                         << TestLog::EndSampleInfo;
57
58                 log << TestLog::Sample << 1 << 2 << 2.3 << TestLog::EndSample
59                         << TestLog::Sample << 0 << 0 << 0 << TestLog::EndSample
60                         << TestLog::Sample << 421 << -23 << 0.00001 << TestLog::EndSample
61                         << TestLog::Sample << 2 << 9 << -1e9 << TestLog::EndSample
62                         << TestLog::Sample << std::numeric_limits<deInt64>::max() << std::numeric_limits<deInt64>::min() << -0.0f << TestLog::EndSample
63                         << TestLog::Sample << 0x3355 << 0xf24 << std::numeric_limits<double>::max() << TestLog::EndSample;
64
65                 log << TestLog::EndSampleList;
66
67                 m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
68                 return STOP;
69         }
70 };
71
72 TestLogTests::TestLogTests (tcu::TestContext& testCtx)
73         : TestCaseGroup(testCtx, "testlog", "Test Log Tests")
74 {
75 }
76
77 TestLogTests::~TestLogTests (void)
78 {
79 }
80
81 void TestLogTests::init (void)
82 {
83         addChild(new BasicSampleListCase(m_testCtx));
84 }
85
86 } // dit