Always throw an exception in GetEventThreadServices() if the Core is not running 16/236116/1
authorHeeyong Song <heeyong.song@samsung.com>
Mon, 8 Jun 2020 08:39:43 +0000 (17:39 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Mon, 15 Jun 2020 04:36:56 +0000 (13:36 +0900)
Change-Id: If6e77e7b61ba02319a39079c6619682d5bffd4a8

automated-tests/src/dali/utc-Dali-Actor.cpp
dali/internal/event/actors/actor-impl.cpp
dali/internal/event/common/object-impl.h

index 2a9e110..e96ab7a 100644 (file)
@@ -3875,7 +3875,7 @@ int UtcDaliActorAddRendererP(void)
   END_TEST;
 }
 
-int UtcDaliActorAddRendererN(void)
+int UtcDaliActorAddRendererN01(void)
 {
   tet_infoline("Testing Actor::AddRenderer");
   TestApplication application;
@@ -3905,6 +3905,44 @@ int UtcDaliActorAddRendererN(void)
   END_TEST;
 }
 
+int UtcDaliActorAddRendererN02(void)
+{
+  tet_infoline( "UtcDaliActorAddRendererN02" );
+
+  Actor actor;
+  Renderer renderer;
+
+  {
+    TestApplication application;
+
+    Geometry geometry = CreateQuadGeometry();
+    Shader shader = CreateShader();
+    renderer = Renderer::New( geometry, shader );
+
+    actor = Actor::New();
+  }
+
+  // try illegal AddRenderer
+  try
+  {
+    actor.AddRenderer( renderer );
+    tet_printf( "Assertion test failed - no Exception\n" );
+    tet_result( TET_FAIL );
+  }
+  catch( Dali::DaliException& e )
+  {
+    DALI_TEST_PRINT_ASSERT( e );
+    DALI_TEST_ASSERT( e, "EventThreadServices::IsCoreRunning()", TEST_LOCATION );
+  }
+  catch(...)
+  {
+    tet_printf( "Assertion test failed - wrong Exception\n" );
+    tet_result( TET_FAIL );
+  }
+
+  END_TEST;
+}
+
 int UtcDaliActorAddRendererOnStage(void)
 {
   tet_infoline("Testing Actor::AddRenderer");
index 4dfa789..7710dc5 100644 (file)
@@ -415,6 +415,9 @@ const SceneGraph::Node* Actor::CreateNode()
   SceneGraph::Node* node = SceneGraph::Node::New();
   OwnerPointer< SceneGraph::Node > transferOwnership( node );
   Internal::ThreadLocalStorage* tls = Internal::ThreadLocalStorage::GetInternal();
+
+  DALI_ASSERT_ALWAYS( tls && "ThreadLocalStorage is null" );
+
   AddNodeMessage( tls->GetUpdateManager(), transferOwnership );
 
   return node;
index e2c5d9f..c9c1c00 100644 (file)
@@ -532,7 +532,7 @@ protected:
    */
   inline EventThreadServices& GetEventThreadServices()
   {
-    DALI_ASSERT_DEBUG( EventThreadServices::IsCoreRunning() );
+    DALI_ASSERT_ALWAYS( EventThreadServices::IsCoreRunning() );
     return mEventThreadServices;
   }
 
@@ -545,7 +545,7 @@ protected:
    */
   inline const EventThreadServices& GetEventThreadServices() const
   {
-    DALI_ASSERT_DEBUG( EventThreadServices::IsCoreRunning() );
+    DALI_ASSERT_ALWAYS( EventThreadServices::IsCoreRunning() );
     return mEventThreadServices;
   }