From 17f333a5c0dd75c45fc9522ddfa56b605dfe99b1 Mon Sep 17 00:00:00 2001 From: "huiyu.eun" Date: Sat, 10 Dec 2016 19:47:03 +0900 Subject: [PATCH] [SDL_Tizen] Modify SDL_Test failed Change-Id: Ia9f90a690808b4f48b666e888e8ff5017aafb426 Signed-off-by: huiyu.eun --- src/test/SDL_test_harness.c | 96 +++++++++++++++++++++++++++------------ src/test/SDL_test_log.c | 20 ++++---- src/video/tizen/SDL_tizenvideo.c | 2 + src/video/tizen/SDL_tizenwindow.c | 1 + test/packaging/sdl_test.spec | 5 +- 5 files changed, 83 insertions(+), 41 deletions(-) diff --git a/src/test/SDL_test_harness.c b/src/test/SDL_test_harness.c index a291868..19f8891 100644 --- a/src/test/SDL_test_harness.c +++ b/src/test/SDL_test_harness.c @@ -22,7 +22,6 @@ #include "SDL_config.h" #include "SDL_test.h" - #include #include #include @@ -354,6 +353,34 @@ float GetClock() return currentClock / (float)CLOCKS_PER_SEC; } +void SDLTest_writeLogFile(SDL_RWops *rwops, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) +{ + va_list list; + char logMessage[SDLTEST_MAX_LOGMESSAGE_LENGTH]; + + /* Print log message into a buffer */ + SDL_memset(logMessage, 0, SDLTEST_MAX_LOGMESSAGE_LENGTH); + va_start(list, fmt); + SDL_vsnprintf(logMessage, SDLTEST_MAX_LOGMESSAGE_LENGTH - 1, fmt, list); + va_end(list); + + char *message = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); + if (!message) + return; + + size_t len = SDL_strlen(logMessage); + SDL_strlcpy(message, logMessage,len+1); + + char *text = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); + if(text) + { + SDL_snprintf(text, SDLTEST_MAX_LOGMESSAGE_LENGTH, " INFO: %s: %s\n", SDLTest_TimestampToString(time(0)), message); + SDL_RWwrite(rwops, text, 1, SDL_strlen(text)); + SDL_stack_free(text); + } + SDL_stack_free(message); + +} /** * \brief Execute a test suite using the given run seed and execution key. * @@ -392,7 +419,7 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user char *suiteFilterName = NULL; int testFilter = 0; char *testFilterName = NULL; - SDL_bool forceTestRun = SDL_FALSE; + SDL_bool forceTestRun = SDL_FALSE; int testResult = 0; int runResult = 0; Uint32 totalTestFailedCount = 0; @@ -436,7 +463,7 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user /* Log run with fuzzer parameters */ SDLTest_Log("::::: Test Run /w seed '%s' started\n", runSeed); - /* Count the total number of tests */ + /* Count the total number of tests */ suiteCounter = 0; while (testSuites[suiteCounter]) { testSuite=(SDLTest_TestSuiteReference *)testSuites[suiteCounter]; @@ -445,17 +472,17 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user while (testSuite->testCases[testCounter]) { testCounter++; - totalNumberOfTests++; - } - } - - /* Pre-allocate an array for tracking failed tests (potentially all test cases) */ - failedTests = (SDLTest_TestCaseReference **)SDL_malloc(totalNumberOfTests * sizeof(SDLTest_TestCaseReference *)); - if (failedTests == NULL) { - SDLTest_LogError("Unable to allocate cache for failed tests"); + totalNumberOfTests++; + } + } + + /* Pre-allocate an array for tracking failed tests (potentially all test cases) */ + failedTests = (SDLTest_TestCaseReference **)SDL_malloc(totalNumberOfTests * sizeof(SDLTest_TestCaseReference *)); + if (failedTests == NULL) { + SDLTest_LogError("Unable to allocate cache for failed tests"); SDL_Error(SDL_ENOMEM); return -1; - } + } /* Initialize filtering */ if (filter != NULL && filter[0] != '\0') { @@ -498,6 +525,11 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user } } + + + + SDL_RWops *rwops = SDL_RWFromFile("SDL_Log_Summary.txt", "a+"); + /* Loop over all suites */ suiteCounter = 0; while(testSuites[suiteCounter]) { @@ -509,9 +541,8 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user if (suiteFilter == 1 && suiteFilterName != NULL && testSuite->name != NULL && SDL_strcmp(suiteFilterName, testSuite->name) != 0) { /* Skip suite */ - SDLTest_Log("===== Test Suite %i: '%s' skipped\n", - suiteCounter, - currentSuiteName); + SDLTest_Log("===== Test Suite %i: '%s' skipped\n", suiteCounter, currentSuiteName); + SDLTest_writeLogFile(rwops, "===== Test Suite %i: '%s' skipped\n", suiteCounter, currentSuiteName); } else { /* Reset per-suite counters */ @@ -524,9 +555,8 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user suiteStartSeconds = GetClock(); /* Log suite started */ - SDLTest_Log("===== Test Suite %i: '%s' started\n", - suiteCounter, - currentSuiteName); + SDLTest_Log("===== Test Suite %i: '%s' started\n", suiteCounter, currentSuiteName); + SDLTest_writeLogFile(rwops, "===== Test Suite %i: '%s' started\n", suiteCounter, currentSuiteName); /* Loop over all test cases */ testCounter = 0; @@ -540,10 +570,7 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user if (testFilter == 1 && testFilterName != NULL && testCase->name != NULL && SDL_strcmp(testFilterName, testCase->name) != 0) { /* Skip test */ - SDLTest_Log("===== Test Case %i.%i: '%s' skipped\n", - suiteCounter, - testCounter, - currentTestName); + SDLTest_Log("===== Test Case %i.%i: '%s' skipped\n", suiteCounter, testCounter, currentTestName); } else { /* Override 'disabled' flag if we specified a test filter (i.e. force run for debugging) */ if (testFilter == 1 && !testCase->enabled) { @@ -555,13 +582,9 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user testStartSeconds = GetClock(); /* Log test started */ - SDLTest_Log("----- Test Case %i.%i: '%s' started", - suiteCounter, - testCounter, - currentTestName); + SDLTest_Log("----- Test Case %i.%i: '%s' started", suiteCounter, testCounter, currentTestName); if (testCase->description != NULL && testCase->description[0] != '\0') { - SDLTest_Log("Test Description: '%s'", - (testCase->description) ? testCase->description : SDLTest_InvalidNameFormat); + SDLTest_Log("Test Description: '%s'", (testCase->description) ? testCase->description : SDLTest_InvalidNameFormat); } /* Loop over all iterations */ @@ -577,7 +600,7 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user } SDLTest_Log("Test Iteration %i: execKey %" SDL_PRIu64, iterationCounter, execKey); - testResult = SDLTest_RunTest(testSuite, testCase, execKey, forceTestRun); + testResult = SDLTest_RunTest(testSuite, testCase, execKey, forceTestRun); if (testResult == TEST_RESULT_PASSED) { testPassedCount++; @@ -612,12 +635,15 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user switch (testResult) { case TEST_RESULT_PASSED: SDLTest_Log((char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Passed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Passed"); break; case TEST_RESULT_FAILED: SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Failed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Failed"); break; case TEST_RESULT_NO_ASSERT: SDLTest_LogError((char *)SDLTest_FinalResultFormat,"Test", currentTestName, "No Asserts"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Test", currentTestName, "No Asserts"); break; } @@ -636,18 +662,24 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user /* Log suite runtime */ SDLTest_Log("Total Suite runtime: %.1f sec", runtime); + SDLTest_writeLogFile(rwops, "Total Suite runtime: %.1f sec", runtime); /* Log summary and final Suite result */ countSum = testPassedCount + testFailedCount + testSkippedCount + testUnsupportedCount; if (testFailedCount == 0) { SDLTest_Log(logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount, testUnsupportedCount); + SDLTest_writeLogFile(rwops, logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount, testUnsupportedCount); SDLTest_Log((char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Passed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Passed"); } else { SDLTest_LogError(logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount, testUnsupportedCount); + SDLTest_writeLogFile(rwops, logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount, testUnsupportedCount); SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Failed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Failed"); + } } @@ -667,13 +699,18 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user { runResult = 0; SDLTest_Log(logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount, totalTestUnsupportedCount); + SDLTest_writeLogFile(rwops, logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount, totalTestUnsupportedCount); SDLTest_Log((char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Passed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Passed"); + } else { runResult = 1; SDLTest_LogError(logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount, totalTestUnsupportedCount); + SDLTest_writeLogFile(rwops, logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount, totalTestUnsupportedCount); SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Failed"); + SDLTest_writeLogFile(rwops, (char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Failed"); } /* Print repro steps for failed tests */ @@ -683,6 +720,7 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user SDLTest_Log(" --seed %s --filter %s", runSeed, failedTests[testCounter]->name); } } + SDL_RWclose(rwops); SDL_free(failedTests); SDLTest_Log("Exit code: %d", runResult); diff --git a/src/test/SDL_test_log.c b/src/test/SDL_test_log.c index fd70832..1db5bec 100755 --- a/src/test/SDL_test_log.c +++ b/src/test/SDL_test_log.c @@ -79,8 +79,8 @@ void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_vsnprintf(logMessage, SDLTEST_MAX_LOGMESSAGE_LENGTH - 1, fmt, list); va_end(list); - //write log - char *message; + //write log + char *message; message = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); if (!message) { return; @@ -89,17 +89,17 @@ void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) size_t len = SDL_strlen(logMessage); SDL_strlcpy(message, logMessage,len+1); -// SDL_RWops *rwops = SDL_RWFromFile("log.txt", "a+"); + SDL_RWops *rwops = SDL_RWFromFile("SDL_Log_AllPrint.txt", "a+"); char *text; text = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); if(text) { SDL_snprintf(text, SDLTEST_MAX_LOGMESSAGE_LENGTH, " INFO: %s: %s\n", SDLTest_TimestampToString(time(0)), message); -// SDL_RWwrite(rwops, text, 1, SDL_strlen(text)); + SDL_RWwrite(rwops, text, 1, SDL_strlen(text)); SDL_stack_free(text); } -// SDL_RWclose(rwops); + SDL_RWclose(rwops); SDL_stack_free(message); /* Log with timestamp and newline */ @@ -120,8 +120,8 @@ void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_vsnprintf(logMessage, SDLTEST_MAX_LOGMESSAGE_LENGTH - 1, fmt, list); va_end(list); - //write log - char *message; + //write log + char *message; message = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); if (!message) { return; @@ -130,17 +130,17 @@ void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) size_t len = SDL_strlen(logMessage); SDL_strlcpy(message, logMessage,len+1); -// SDL_RWops *rwops = SDL_RWFromFile("log.txt", "a+"); + SDL_RWops *rwops = SDL_RWFromFile("SDL_Log_AllPrint.txt", "a+"); char *text; text = SDL_stack_alloc(char, SDLTEST_MAX_LOGMESSAGE_LENGTH); if(text) { SDL_snprintf(text, SDLTEST_MAX_LOGMESSAGE_LENGTH, " ERROR: %s: %s\n", SDLTest_TimestampToString(time(0)), message); -// SDL_RWwrite(rwops, text, 1, SDL_strlen(text)); + SDL_RWwrite(rwops, text, 1, SDL_strlen(text)); SDL_stack_free(text); } -// SDL_RWclose(rwops); + SDL_RWclose(rwops); SDL_stack_free(message); /* Log with timestamp and newline */ diff --git a/src/video/tizen/SDL_tizenvideo.c b/src/video/tizen/SDL_tizenvideo.c index dacdd59..78553b0 100755 --- a/src/video/tizen/SDL_tizenvideo.c +++ b/src/video/tizen/SDL_tizenvideo.c @@ -68,6 +68,8 @@ _tizen_add_display(SDL_VideoData *d, uint32_t id) ecore_wl_screen_size_get(&mode.w, &mode.h); mode.refresh_rate = 60; //Hz + mode.format = SDL_PIXELFORMAT_ARGB8888; + SDL_AddDisplayMode(&display, &mode); display.current_mode = mode; diff --git a/src/video/tizen/SDL_tizenwindow.c b/src/video/tizen/SDL_tizenwindow.c index 2724946..58ee7c6 100755 --- a/src/video/tizen/SDL_tizenwindow.c +++ b/src/video/tizen/SDL_tizenwindow.c @@ -237,6 +237,7 @@ Tizen_CreateWindow(_THIS, SDL_Window *window) } window->driverdata = wind; + window->flags |= SDL_WINDOW_INPUT_FOCUS; /* always has input focus */ #if SDL_VIDEO_OPENGL_EGL if (window->flags & SDL_WINDOW_OPENGL) { diff --git a/test/packaging/sdl_test.spec b/test/packaging/sdl_test.spec index 78702dd..012b1e4 100755 --- a/test/packaging/sdl_test.spec +++ b/test/packaging/sdl_test.spec @@ -18,8 +18,8 @@ BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(glesv1) BuildRequires: pkgconfig(sdl2) -#BuildRequires: Vulkan-LoaderAndValidationLayers -#BuildRequires: Vulkan-LoaderAndValidationLayers-devel +BuildRequires: Vulkan-LoaderAndValidationLayers +BuildRequires: Vulkan-LoaderAndValidationLayers-devel %define _packagedir /opt/usr/apps/%{name} %define _resdir %{_packagedir}/res @@ -63,6 +63,7 @@ rm -rf %{buildroot} rm -rf %{buildroot} %post +chmod 777 %{_packagedir} %files %defattr(-,root,root,-) -- 2.7.4