/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 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.
if( !equivalent )
{
- fprintf(stderr, "%s, checking\n"
- "(%f, %f, %f) (%f, %f, %f)\n"
- "(%f, %f, %f) == (%f, %f, %f)\n"
- "(%f, %f, %f) (%f, %f, %f)\n",
+ // Align each float to 1234.67, i.e. 3.6 will be " 3.60"
+ fprintf( stderr, "%s, checking\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f == %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n",
location,
- m1[0], m1[1], m1[2], m2[0], m2[1], m2[2],
- m1[3], m1[4], m1[5], m2[3], m2[4], m2[5],
- m1[6], m1[7], m1[8], m2[6], m2[7], m2[8]);
+ m1[0], m1[3], m1[6], m2[0], m2[3], m2[6],
+ m1[1], m1[4], m1[7], m2[1], m2[4], m2[7],
+ m1[2], m1[5], m1[8], m2[2], m2[5], m2[8] );
tet_result(TET_FAIL);
+ throw("TET_FAIL");
}
else
{
if (!equivalent)
{
- fprintf(stderr, "%s, checking\n"
- "(%f, %f, %f) (%f, %f, %f)\n"
- "(%f, %f, %f) == (%f, %f, %f)\n"
- "(%f, %f, %f) (%f, %f, %f)\n",
+ // Align each float to 1234.67, i.e. 3.6 will be " 3.60"
+ fprintf( stderr, "%s, checking\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f == %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n",
location,
- m1[0], m1[1], m1[2], m2[0], m2[1], m2[2],
- m1[3], m1[4], m1[5], m2[3], m2[4], m2[5],
- m1[6], m1[7], m1[8], m2[6], m2[7], m2[8]);
+ m1[0], m1[3], m1[6], m2[0], m2[3], m2[6],
+ m1[1], m1[4], m1[7], m2[1], m2[4], m2[7],
+ m1[2], m1[5], m1[8], m2[2], m2[5], m2[8] );
tet_result(TET_FAIL);
+ throw("TET_FAIL");
}
else
{
if (!identical)
{
- fprintf(stderr, "%s, checking\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) == (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n", location,
- m1[0], m1[1], m1[2], m1[3], m2[0], m2[1], m2[2], m2[3],
- m1[4], m1[5], m1[6], m1[7], m2[4], m2[5], m2[6], m2[7],
- m1[8], m1[9], m1[10], m1[11], m2[8], m2[9], m2[10], m2[11],
- m1[12], m1[13], m1[14], m1[15], m2[12], m2[13], m2[14], m2[15]);
+ // Align each float to 1234.67, i.e. 3.6 will be " 3.60"
+ fprintf( stderr, "%s, checking\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f == %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n",
+ location,
+ m1[0], m1[4], m1[8], m1[12], m2[0], m2[4], m2[8], m2[12],
+ m1[1], m1[5], m1[9], m1[13], m2[1], m2[5], m2[9], m2[13],
+ m1[2], m1[6], m1[10], m1[14], m2[2], m2[6], m2[10], m2[14],
+ m1[3], m1[7], m1[11], m1[15], m2[3], m2[7], m2[11], m2[15] );
tet_result(TET_FAIL);
+ throw("TET_FAIL");
}
else
{
if (!equivalent)
{
- fprintf(stderr, "%s, checking\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) == (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n"
- "(%f, %f, %f, %f) (%f, %f, %f, %f)\n", location,
- m1[0], m1[1], m1[2], m1[3], m2[0], m2[1], m2[2], m2[3],
- m1[4], m1[5], m1[6], m1[7], m2[4], m2[5], m2[6], m2[7],
- m1[8], m1[9], m1[10], m1[11], m2[8], m2[9], m2[10], m2[11],
- m1[12], m1[13], m1[14], m1[15], m2[12], m2[13], m2[14], m2[15]);
+ // Align each float to 1234.67, i.e. 3.6 will be " 3.60"
+ fprintf( stderr, "%s, checking\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f == %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n"
+ "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n",
+ location,
+ m1[0], m1[4], m1[8], m1[12], m2[0], m2[4], m2[8], m2[12],
+ m1[1], m1[5], m1[9], m1[13], m2[1], m2[5], m2[9], m2[13],
+ m1[2], m1[6], m1[10], m1[14], m2[2], m2[6], m2[10], m2[14],
+ m1[3], m1[7], m1[11], m1[15], m2[3], m2[7], m2[11], m2[15] );
tet_result(TET_FAIL);
+ throw("TET_FAIL");
}
else
{
DALI_TEST_EQUALS(str1.c_str(), str2, location);
}
-/**
- * Test whether two strings are equal.
- * @param[in] str1 The first string
- * @param[in] str2 The second string
- * @param[in] location The TEST_LOCATION macro should be used here
- */
+void DALI_TEST_EQUALS( Property::Value& str1, const char* str2, const char* location)
+{
+ bool result = false;
+
+ if( str1.GetType() == Property::STRING )
+ {
+ std::string string;
+ str1.Get(string);
+ result = !string.compare(str2);
+ }
+
+ if( result )
+ {
+ tet_result(TET_PASS);
+ }
+ else
+ {
+ tet_result(TET_FAIL);
+ throw("TET_FAIL");
+ }
+}
+
void DALI_TEST_EQUALS( const char* str1, const std::string &str2, const char* location)
{
DALI_TEST_EQUALS(str1, str2.c_str(), location);
{
fprintf(stderr, "Expected substring '%s' : actual exception string '%s' : location %s\n", conditionSubString.c_str(), e.condition, location );
tet_result(TET_FAIL);
+ throw("TET_FAIL");
}
else
{
{
fprintf(stderr, "Expected Applied signal was not received\n" );
tet_result( TET_FAIL );
+ throw("TET_FAIL");
}
else
{
{
fprintf(stderr, "Unexpected Applied signal was received\n" );
tet_result( TET_FAIL );
+ throw("TET_FAIL");
}
else
{
{
return CreateBufferImage(4, 4, Color::WHITE);
}
+
+void PrepareResourceImage( TestApplication& application, unsigned int imageWidth, unsigned int imageHeight, Pixel::Format pixelFormat )
+{
+ TestPlatformAbstraction& platform = application.GetPlatform();
+ platform.SetClosestImageSize(Vector2( imageWidth, imageHeight));
+
+ Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_RETAIN );
+ Integration::PixelBuffer* pixbuffer = bitmap->GetPackedPixelsProfile()->ReserveBuffer( pixelFormat, imageWidth, imageHeight, imageWidth, imageHeight );
+ unsigned int bytesPerPixel = GetBytesPerPixel( pixelFormat );
+ unsigned int initialColor = 0xFF;
+ memset( pixbuffer, initialColor, imageHeight*imageWidth*bytesPerPixel);
+
+ Integration::ResourcePointer resourcePtr(bitmap);
+ platform.SetSynchronouslyLoadedResource( resourcePtr );
+}
+
+namespace Test
+{
+
+struct ObjectDestructionFunctor
+{
+ // Create a ObjectDestructionFunctor passing in a Dali::RefObject* to be monitored and a bool variable.
+ // Create ObjectRegistry instance and connect to the ObjectDestroyedSignal passing in the above functor for the callback.
+ // Get the ObjectPointer (Actor::GetObjectPtr) of the Actor to be checked for destruction and assign it to the Dali::RefObject*
+ // Check the bool variable which would be true when object destroyed.
+ ObjectDestructionFunctor( Dali::RefObject* objectPtr, bool& refObjectDestroyed )
+ : refObjectPointerToCheck( objectPtr ),
+ refObjectDestroyedBoolean( refObjectDestroyed )
+ {
+ refObjectDestroyed = false;
+ }
+
+ void operator()( const Dali::RefObject* objectPointer )
+ {
+ if ( refObjectPointerToCheck == objectPointer )
+ {
+ refObjectDestroyedBoolean = true;
+ }
+ }
+
+ Dali::RefObject* refObjectPointerToCheck;
+ bool& refObjectDestroyedBoolean;
+};
+
+ObjectDestructionTracker::ObjectDestructionTracker()
+ :mRefObjectDestroyed( false)
+{
+}
+
+void ObjectDestructionTracker::Start( Actor actor )
+{
+ ObjectDestructionFunctor destructionFunctor( actor.GetObjectPtr(), mRefObjectDestroyed );
+
+ ObjectRegistry objectRegistry = Stage::GetCurrent().GetObjectRegistry();
+ objectRegistry.ObjectDestroyedSignal().Connect( this, destructionFunctor );
+}
+
+bool ObjectDestructionTracker::IsDestroyed()
+{
+ return mRefObjectDestroyed;
+}
+
+} // namespace Test