From c517b6cae81c9c2dbe5d8c81366e4065b24fc877 Mon Sep 17 00:00:00 2001 From: Adeel Kazmi Date: Thu, 1 Dec 2022 18:17:00 +0000 Subject: [PATCH] (Automated Tests) Added more tests to increase TEM score Change-Id: Ibb101d4fd436849da18edf3bb6eb49cbb7cef306 --- .../src/dali-adaptor/utc-Dali-Application.cpp | 30 ++++ .../src/dali-adaptor/utc-Dali-Timer.cpp | 34 +++- .../src/dali-adaptor/utc-Dali-TtsPlayer.cpp | 39 +++- .../dali-adaptor/utc-Dali-WidgetApplication.cpp | 8 + automated-tests/src/dali-graphics/CMakeLists.txt | 2 + .../dali-graphics/utc-Dali-GlesImplementation.cpp | 197 +++++++++++++++++++++ 6 files changed, 308 insertions(+), 2 deletions(-) create mode 100644 automated-tests/src/dali-graphics/utc-Dali-GlesImplementation.cpp diff --git a/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp b/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp index d2ec99d..a760954 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp @@ -151,6 +151,36 @@ int UtcDaliApplicationNew05(void) END_TEST; } +int UtcDaliApplicationNew06P(void) +{ + int argc(1); + const char* argList[1] = {"program"}; + char** argv = const_cast(argList); + + Application application = Application::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize(), true); + + MyTestApp testApp(application); + + DALI_TEST_CHECK(application); + + END_TEST; +} + +int UtcDaliApplicationNew07P(void) +{ + int argc(1); + const char* argList[1] = {"program"}; + char** argv = const_cast(argList); + + Application application = Application::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize()); + + MyTestApp testApp(application); + + DALI_TEST_CHECK(application); + + END_TEST; +} + int UtcDaliApplicationCopyAndAssignment(void) { Application application = Application::New(); diff --git a/automated-tests/src/dali-adaptor/utc-Dali-Timer.cpp b/automated-tests/src/dali-adaptor/utc-Dali-Timer.cpp index 7d467e9..90e3a9e 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-Timer.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-Timer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -479,3 +479,35 @@ int UtcDaliTimerDownCastN(void) END_TEST; } + +int UtcDaliTimerPauseN(void) +{ + Timer timer; + + try + { + timer.Pause(); + DALI_TEST_CHECK(false); // Should not get here + } + catch(...) + { + DALI_TEST_CHECK(true); + } + END_TEST; +} + +int UtcDaliTimerResumeN(void) +{ + Timer timer; + + try + { + timer.Resume(); + DALI_TEST_CHECK(false); // Should not get here + } + catch(...) + { + DALI_TEST_CHECK(true); + } + END_TEST; +} diff --git a/automated-tests/src/dali-adaptor/utc-Dali-TtsPlayer.cpp b/automated-tests/src/dali-adaptor/utc-Dali-TtsPlayer.cpp index 4b0305a..e0b3fd3 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-TtsPlayer.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-TtsPlayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,15 @@ int UtcDaliTtsPlayerCopyConstructorP(void) END_TEST; } +int UtcDaliTtsPlayerMoveConstructorP(void) +{ + Dali::TtsPlayer player; + Dali::TtsPlayer copy(std::move(player)); + DALI_TEST_CHECK(player == copy); + + END_TEST; +} + int UtcDaliTtsPlayerAssignmentOperatorP(void) { Dali::TtsPlayer player; @@ -61,6 +70,17 @@ int UtcDaliTtsPlayerAssignmentOperatorP(void) END_TEST; } +int UtcDaliTtsPlayerMoveAssignmentOperatorP(void) +{ + Dali::TtsPlayer player; + Dali::TtsPlayer copy; + DALI_TEST_CHECK(!copy); + copy = std::move(player); + DALI_TEST_CHECK(copy == player); + + END_TEST; +} + int UtcDaliTtsPlayerDestructorP(void) { Dali::TtsPlayer* player = new Dali::TtsPlayer(); @@ -171,3 +191,20 @@ int UtcDaliTtsPlayerGetStateN(void) END_TEST; } + +int UtcDaliTtsPlayerStateChangedSignalN(void) +{ + Dali::TtsPlayer player = Dali::TtsPlayer::Get(); + + try + { + player.StateChangedSignal(); + DALI_TEST_CHECK(false); // Should not reach here! + } + catch(...) + { + DALI_TEST_CHECK(true); + } + + END_TEST; +} \ No newline at end of file diff --git a/automated-tests/src/dali-adaptor/utc-Dali-WidgetApplication.cpp b/automated-tests/src/dali-adaptor/utc-Dali-WidgetApplication.cpp index 719053d..8bad226 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-WidgetApplication.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-WidgetApplication.cpp @@ -78,3 +78,11 @@ int UtcDaliWidgetApplicationConstructorsPositive(void) END_TEST; } + +int UtcDaliWidgetApplicationNewP(void) +{ + WidgetApplication widget1 = WidgetApplication::New(nullptr, nullptr, std::string()); + DALI_TEST_CHECK(widget1); + + END_TEST; +} diff --git a/automated-tests/src/dali-graphics/CMakeLists.txt b/automated-tests/src/dali-graphics/CMakeLists.txt index 8a6364e..c41f368 100644 --- a/automated-tests/src/dali-graphics/CMakeLists.txt +++ b/automated-tests/src/dali-graphics/CMakeLists.txt @@ -5,6 +5,7 @@ SET(RPM_NAME "core-${PKG_NAME}-tests") SET(CAPI_LIB "dali-graphics") SET(TC_SOURCES + utc-Dali-GlesImplementation.cpp utc-Dali-GraphicsFramebuffer.cpp utc-Dali-GraphicsGeometry.cpp utc-Dali-GraphicsNativeImage.cpp @@ -42,6 +43,7 @@ LIST(APPEND TC_SOURCES PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED dali2-core dali2-adaptor + glesv2 ecore ecore-x ) diff --git a/automated-tests/src/dali-graphics/utc-Dali-GlesImplementation.cpp b/automated-tests/src/dali-graphics/utc-Dali-GlesImplementation.cpp new file mode 100644 index 0000000..56b4f6d --- /dev/null +++ b/automated-tests/src/dali-graphics/utc-Dali-GlesImplementation.cpp @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * 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. + * + */ + +#include + +#include +#include + +void gles_implementation_startup(void) +{ +} + +void gles_implementation_cleanup(void) +{ +} + +using namespace Dali::Internal::Adaptor; + +namespace +{ +void CallAllMethods(GlesAbstraction& implementation) +{ + // These tests are purely for coverage, they don't really test anything! + try + { + implementation.ReadBuffer(0); + implementation.DrawRangeElements(0, 0, 0, 0, 0, nullptr); + implementation.TexImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr); + implementation.TexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr); + implementation.CopyTexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0); + implementation.CompressedTexImage3D(0, 0, 0, 0, 0, 0, 0, 0, nullptr); + implementation.CompressedTexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr); + implementation.GenQueries(0, nullptr); + implementation.DeleteQueries(0, nullptr); + implementation.IsQuery(0); + implementation.BeginQuery(0, 0); + implementation.EndQuery(0); + implementation.GetQueryiv(0, 0, nullptr); + implementation.GetQueryObjectuiv(0, 0, nullptr); + implementation.UnmapBuffer(0); + implementation.GetBufferPointerv(0, 0, nullptr); + implementation.DrawBuffers(0, nullptr); + implementation.UniformMatrix2x3fv(0, 0, 0, nullptr); + implementation.UniformMatrix3x2fv(0, 0, 0, nullptr); + implementation.UniformMatrix2x4fv(0, 0, 0, nullptr); + implementation.UniformMatrix4x2fv(0, 0, 0, nullptr); + implementation.UniformMatrix3x4fv(0, 0, 0, nullptr); + implementation.UniformMatrix4x3fv(0, 0, 0, nullptr); + implementation.BlitFramebuffer(0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + implementation.RenderbufferStorageMultisample(0, 0, 0, 0, 0); + implementation.FramebufferTexture2DMultisample(0, 0, 0, 0, 0, 0); + implementation.FramebufferTextureLayer(0, 0, 0, 0, 0); + implementation.MapBufferRange(0, 0, 0, 0); + implementation.FlushMappedBufferRange(0, 0, 0); + implementation.BindVertexArray(0); + implementation.DeleteVertexArrays(0, nullptr); + implementation.GenVertexArrays(0, nullptr); + implementation.IsVertexArray(0); + implementation.GetIntegeri_v(0, 0, nullptr); + implementation.BeginTransformFeedback(0); + implementation.EndTransformFeedback(); + implementation.BindBufferRange(0, 0, 0, 0, 0); + implementation.BindBufferBase(0, 0, 0); + implementation.TransformFeedbackVaryings(0, 0, nullptr, 0); + implementation.GetTransformFeedbackVarying(0, 0, 0, nullptr, nullptr, nullptr, nullptr); + implementation.VertexAttribIPointer(0, 0, 0, 0, nullptr); + implementation.GetVertexAttribIiv(0, 0, nullptr); + implementation.GetVertexAttribIuiv(0, 0, nullptr); + implementation.VertexAttribI4i(0, 0, 0, 0, 0); + implementation.VertexAttribI4ui(0, 0, 0, 0, 0); + implementation.VertexAttribI4iv(0, nullptr); + implementation.VertexAttribI4uiv(0, nullptr); + implementation.GetUniformuiv(0, 0, nullptr); + implementation.GetFragDataLocation(0, nullptr); + implementation.Uniform1ui(0, 0); + implementation.Uniform2ui(0, 0, 0); + implementation.Uniform3ui(0, 0, 0, 0); + implementation.Uniform4ui(0, 0, 0, 0, 0); + implementation.Uniform1uiv(0, 0, nullptr); + implementation.Uniform2uiv(0, 0, nullptr); + implementation.Uniform3uiv(0, 0, nullptr); + implementation.Uniform4uiv(0, 0, nullptr); + implementation.ClearBufferiv(0, 0, nullptr); + implementation.ClearBufferuiv(0, 0, nullptr); + implementation.ClearBufferfv(0, 0, nullptr); + implementation.ClearBufferfi(0, 0, 0, 0); + implementation.GetStringi(0, 0); + implementation.CopyBufferSubData(0, 0, 0, 0, 0); + implementation.GetUniformIndices(0, 0, nullptr, nullptr); + implementation.GetActiveUniformsiv(0, 0, nullptr, 0, nullptr); + implementation.GetUniformBlockIndex(0, nullptr); + implementation.GetActiveUniformBlockiv(0, 0, 0, nullptr); + implementation.GetActiveUniformBlockName(0, 0, 0, nullptr, nullptr); + implementation.UniformBlockBinding(0, 0, 0); + implementation.DrawArraysInstanced(0, 0, 0, 0); + implementation.DrawElementsInstanced(0, 0, 0, nullptr, 0); + implementation.FenceSync(0, 0); + implementation.IsSync(0); + implementation.DeleteSync(0); + implementation.ClientWaitSync(0, 0, 0); + implementation.WaitSync(0, 0, 0); + implementation.GetInteger64v(0, nullptr); + implementation.GetSynciv(0, 0, 0, nullptr, nullptr); + implementation.GetInteger64i_v(0, 0, nullptr); + implementation.GetBufferParameteri64v(0, 0, nullptr); + implementation.GenSamplers(0, nullptr); + implementation.DeleteSamplers(0, nullptr); + implementation.IsSampler(0); + implementation.BindSampler(0, 0); + implementation.SamplerParameteri(0, 0, 0); + implementation.SamplerParameteriv(0, 0, nullptr); + implementation.SamplerParameterf(0, 0, 0); + implementation.SamplerParameterfv(0, 0, nullptr); + implementation.GetSamplerParameteriv(0, 0, nullptr); + implementation.GetSamplerParameterfv(0, 0, nullptr); + implementation.VertexAttribDivisor(0, 0); + implementation.BindTransformFeedback(0, 0); + implementation.DeleteTransformFeedbacks(0, nullptr); + implementation.GenTransformFeedbacks(0, nullptr); + implementation.IsTransformFeedback(0); + implementation.PauseTransformFeedback(); + implementation.ResumeTransformFeedback(); + implementation.GetProgramBinary(0, 0, nullptr, nullptr, nullptr); + implementation.ProgramBinary(0, 0, nullptr, 0); + implementation.ProgramParameteri(0, 0, 0); + implementation.InvalidateFramebuffer(0, 0, nullptr); + implementation.InvalidateSubFramebuffer(0, 0, nullptr, 0, 0, 0, 0); + implementation.TexStorage2D(0, 0, 0, 0, 0); + implementation.TexStorage3D(0, 0, 0, 0, 0, 0); + implementation.GetInternalformativ(0, 0, 0, 0, nullptr); + implementation.BlendBarrier(); + DALI_TEST_CHECK(true); // Should get here! + } + catch(...) + { + DALI_TEST_CHECK(false); // Should not get here! + } +} + +template +void CreateWithBaseClassPtr() +{ + // This derived destructor of the class is called which is purely for increasing function coverage + GlesAbstraction* abstraction = new Impl; + try + { + abstraction->ReadBuffer(0); + DALI_TEST_CHECK(true); + } + catch(...) + { + DALI_TEST_CHECK(false); + } + delete abstraction; +} + +} // unnamed namespace + +int UtcDaliGles2ImplementationConstruction(void) +{ + CreateWithBaseClassPtr(); + END_TEST; +} + +int UtcDaliGles3ImplementationConstruction(void) +{ + CreateWithBaseClassPtr(); + END_TEST; +} + +int UtcDaliGles2ImplementationMethods(void) +{ + Gles2Implementation implementation; + CallAllMethods(implementation); + END_TEST; +} + +int UtcDaliGles3ImplementationMethods(void) +{ + Gles3Implementation implementation; + CallAllMethods(implementation); + END_TEST; +} \ No newline at end of file -- 2.7.4