(Automated Tests) Added more tests to increase TEM score 56/284956/4
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 1 Dec 2022 18:17:00 +0000 (18:17 +0000)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 15 Dec 2022 18:23:03 +0000 (18:23 +0000)
Change-Id: Ibb101d4fd436849da18edf3bb6eb49cbb7cef306

automated-tests/src/dali-adaptor/utc-Dali-Application.cpp
automated-tests/src/dali-adaptor/utc-Dali-Timer.cpp
automated-tests/src/dali-adaptor/utc-Dali-TtsPlayer.cpp
automated-tests/src/dali-adaptor/utc-Dali-WidgetApplication.cpp
automated-tests/src/dali-graphics/CMakeLists.txt
automated-tests/src/dali-graphics/utc-Dali-GlesImplementation.cpp [new file with mode: 0644]

index d2ec99d..a760954 100644 (file)
@@ -151,6 +151,36 @@ int UtcDaliApplicationNew05(void)
   END_TEST;
 }
 
+int UtcDaliApplicationNew06P(void)
+{
+  int         argc(1);
+  const char* argList[1] = {"program"};
+  char**      argv       = const_cast<char**>(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<char**>(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();
index 7d467e9..90e3a9e 100644 (file)
@@ -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;
+}
index 4b0305a..e0b3fd3 100644 (file)
@@ -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
index 719053d..8bad226 100644 (file)
@@ -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;
+}
index 8a6364e..c41f368 100644 (file)
@@ -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 (file)
index 0000000..56b4f6d
--- /dev/null
@@ -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 <dali-test-suite-utils.h>
+
+#include <dali/internal/graphics/gles/gles2-implementation.h>
+#include <dali/internal/graphics/gles/gles3-implementation.h>
+
+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<typename Impl>
+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<Gles2Implementation>();
+  END_TEST;
+}
+
+int UtcDaliGles3ImplementationConstruction(void)
+{
+  CreateWithBaseClassPtr<Gles3Implementation>();
+  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