Bug 105142 - [EFL][WK1] Obsolete a case in test_ewk_frame api test to not make bot sick
Summary: [EFL][WK1] Obsolete a case in test_ewk_frame api test to not make bot sick
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit EFL (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Kangil Han
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-16 17:26 PST by Kangil Han
Modified: 2012-12-21 02:47 PST (History)
5 users (show)

See Also:


Attachments
Patch (4.23 KB, patch)
2012-12-16 17:50 PST, Kangil Han
no flags Details | Formatted Diff | Diff
Patch (1.92 KB, patch)
2012-12-21 01:07 PST, Kangil Han
no flags Details | Formatted Diff | Diff
Patch (1.99 KB, patch)
2012-12-21 01:51 PST, Kangil Han
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kangil Han 2012-12-16 17:26:03 PST
'load,finished' event comes before adding callback from test framework.
That's why test is stuck.
Comment 1 Kangil Han 2012-12-16 17:50:08 PST
Created attachment 179673 [details]
Patch
Comment 2 Laszlo Gombos 2012-12-17 17:38:05 PST
Comment on attachment 179673 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=179673&action=review

> Source/WebKit/efl/ChangeLog:8
> +        Currently, test_ewk_frame api test is time out because 'load,finished' event comes before adding callback for it.

Currently the test_ewk_frame api test times out...

> Source/WebKit/efl/ChangeLog:13
> +        However, there has been a behavior change so blank page is returned.
> +        As a result, this patch removes a test that is not available at this moment for passing test.

Do you know when this behavior changed ? Was that change intentional ? 

Should we change the expected output instead of removing the test ? It seems the be a valid test to test load URL that points to a non-existing DNS record.
Comment 3 Gyuyoung Kim 2012-12-21 00:11:04 PST
Comment on attachment 179673 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=179673&action=review

> Source/WebKit/efl/tests/test_ewk_frame.cpp:-53
> -    // Checking if function works properly when loading non-existing url.

When I only disable this test, there is no problem in API test. So, I don't know why you have to touch loadUrl(). I think you need to check why loadUrl() can't support non-existing url.
Comment 4 Gyuyoung Kim 2012-12-21 00:28:04 PST
Comment on attachment 179673 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=179673&action=review

>> Source/WebKit/efl/tests/test_ewk_frame.cpp:-53
>> -    // Checking if function works properly when loading non-existing url.
> 
> When I only disable this test, there is no problem in API test. So, I don't know why you have to touch loadUrl(). I think you need to check why loadUrl() can't support non-existing url.

It seems to me that there is no timeout condition in loadUrl(). FYI, EFL WK2 unit test framework has a timeout threshold for loadUrlSync. So, if there is no response until the timeout value, waitUntilLoadFinished() will return false. Why not considering this threshold this as well ?

    static const double defaultTimeoutSeconds = 10.0;
    bool loadUrlSync(const char* url, double timeoutSeconds = defaultTimeoutSeconds);


If you need to have time to prepare a patch for this, you may be able to comment this test code out with new filed bug for my suggestion. Because, API test has been failed since last week.
Comment 5 Kangil Han 2012-12-21 00:56:18 PST
BUG 49246 has changed a specific load behavior.

Load finished callback is triggered directly when input has malformed url, i.e. 'http://www.abcdefg^^.com'.

Backtrace is like this.

3   0xb3edf3ce WebCore::FrameLoader::checkLoadCompleteForThisFrame()
4   0xb3edfeb0 WebCore::FrameLoader::checkLoadComplete()
5   0xb3eba5b3 WebCore::DocumentLoader::finishedLoading()
6   0xb3ebc565 WebCore::DocumentLoader::maybeLoadEmpty()
7   0xb3ebc74e WebCore::DocumentLoader::startLoadingMainResource()
8   0xb3edf57e WebCore::FrameLoader::continueLoadAfterWillSubmitForm()
9   0xb3ee1d6e WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)
10  0xb3ee1560 WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)
11  0xb3ef823d WebCore::PolicyCallback::call(bool)
12  0xb3ef901e WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction)
13  0xb76361cb
14  0xb763747b
15  0xb3ef8a90 WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*)
16  0xb3edc105 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>)
17  0xb3edbc0c WebCore::FrameLoader::load(WebCore::DocumentLoader*)
18  0xb3edb7ea WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&)
19  0xb76498f8 ewk_frame_uri_set
20  0xb7676aa6 ewk_view_uri_set
21  0x805092d EWKUnitTests::EWKTestBase::loadUrl(char const*)
Comment 6 Kangil Han 2012-12-21 00:59:57 PST
(In reply to comment #4)
> It seems to me that there is no timeout condition in loadUrl(). FYI, EFL WK2 unit test framework has a timeout threshold for loadUrlSync. So, if there is no response until the timeout value, waitUntilLoadFinished() will return false. Why not considering this threshold this as well ?
> 
>     static const double defaultTimeoutSeconds = 10.0;
>     bool loadUrlSync(const char* url, double timeoutSeconds = defaultTimeoutSeconds);
> 
> 
> If you need to have time to prepare a patch for this, you may be able to comment this test code out with new filed bug for my suggestion. Because, API test has been failed since last week.

As you mentioned, buildbot has been broken for several days.
I will disable second test case here and file a new bug for fixing it.
Comment 7 Kangil Han 2012-12-21 01:07:36 PST
Created attachment 180489 [details]
Patch
Comment 8 Gyuyoung Kim 2012-12-21 01:32:16 PST
Comment on attachment 180489 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=180489&action=review

> Source/WebKit/efl/tests/test_ewk_frame.cpp:-57
> -    initBuffer(&buffer);

You need to file a bug for this issue. Then, you should mention the bug url here, for example,

  // FIXME: BUG 49246 has changed load behavior when malformed url is inputed. Timer operation might be needed to sync with WK2.
  // See https://bugs.webkit.org/show_bug.cgi?id=xxxx for detail.
Comment 9 Kangil Han 2012-12-21 01:51:41 PST
Created attachment 180492 [details]
Patch
Comment 10 WebKit Review Bot 2012-12-21 02:47:51 PST
Comment on attachment 180492 [details]
Patch

Clearing flags on attachment: 180492

Committed r138363: <http://trac.webkit.org/changeset/138363>
Comment 11 WebKit Review Bot 2012-12-21 02:47:56 PST
All reviewed patches have been landed.  Closing bug.