X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Fdali-test-suite-utils.cpp;h=cf9781384c00098254830f45c15b1fd93251527f;hb=59314022f6789147a47a8b098433e211b6185625;hp=0a90c8e2f2e05b01e15c9659a1dc166f617356d1;hpb=75fdb5f9730fa6f6723c517691c9778fb646d082;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp index 0a90c8e..cf97813 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -107,16 +107,18 @@ void DALI_TEST_EQUALS( const Matrix3& matrix1, const Matrix3& matrix2, const cha 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 { @@ -137,16 +139,18 @@ void DALI_TEST_EQUALS( const Matrix3& matrix1, const Matrix3& matrix2, float eps 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 { @@ -172,17 +176,20 @@ void DALI_TEST_EQUALS( const Matrix& matrix1, const Matrix& matrix2, const char* 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 { @@ -203,17 +210,20 @@ void DALI_TEST_EQUALS( const Matrix& matrix1, const Matrix& matrix2, float epsil 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 { @@ -233,12 +243,28 @@ void DALI_TEST_EQUALS( const std::string &str1, const char* str2, const char* lo 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); @@ -250,6 +276,7 @@ void DALI_TEST_ASSERT( DaliException& e, std::string conditionSubString, const c { 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 { @@ -279,6 +306,7 @@ void ConstraintAppliedCheck::CheckSignalReceived() { fprintf(stderr, "Expected Applied signal was not received\n" ); tet_result( TET_FAIL ); + throw("TET_FAIL"); } else { @@ -292,6 +320,7 @@ void ConstraintAppliedCheck::CheckSignalNotReceived() { fprintf(stderr, "Unexpected Applied signal was received\n" ); tet_result( TET_FAIL ); + throw("TET_FAIL"); } else { @@ -322,3 +351,66 @@ BufferImage CreateBufferImage() { 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