Bug 126430

Summary: REGRESSION(r161214): [GTK] WebKit2 C API tests fail to run after r161214
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: mrobinson
Priority: P2 Keywords: Gtk, Regression
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
mrobinson: review-
Updated patch mrobinson: review+

Description Carlos Garcia Campos 2014-01-03 06:21:13 PST
Because the injected bundle lib is not found.

** (WebKitWebProcess:5992): WARNING **: Error loading the injected bundle (./Tools/gtk/../../WebKitBuild/Release/Programs/libTestWebKitAPIInjectedBundle.la): ./Tools/gtk/../../WebKitBuild/Release/Programs/libTestWebKitAPIInjectedBundle.la: cannot open shared object file: No such file or directory

TEST: ./Tools/gtk/../../WebKitBuild/Release/Programs/TestWebKitAPI/TestWebKit2: TIMEOUT
Comment 1 Carlos Garcia Campos 2014-01-03 06:23:07 PST
Created attachment 220299 [details]
Patch
Comment 2 Martin Robinson 2014-01-03 06:33:34 PST
Comment on attachment 220299 [details]
Patch

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

> Tools/Scripts/run-gtk-tests:199
> -        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.library_build_path()
> +        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.build_path("Libraries")

library_build_path is supposed to return the path to Libraries for the autotools build and 'lib' for the cmake build.
Comment 3 Martin Robinson 2014-01-03 06:36:19 PST
(In reply to comment #2)
> (From update of attachment 220299 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=220299&action=review
> 
> > Tools/Scripts/run-gtk-tests:199
> > -        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.library_build_path()
> > +        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.build_path("Libraries")
> 
> library_build_path is supposed to return the path to Libraries for the autotools build and 'lib' for the cmake build.

It looks like library_build_path should just return build_path('Libraries', '.libs', *args) for autotools. Sorry about the breakage.
Comment 4 Carlos Garcia Campos 2014-01-03 06:37:25 PST
(In reply to comment #2)
> (From update of attachment 220299 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=220299&action=review
> 
> > Tools/Scripts/run-gtk-tests:199
> > -        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.library_build_path()
> > +        self._test_env["TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH"] = common.build_path("Libraries")
> 
> library_build_path is supposed to return the path to Libraries for the autotools build and 'lib' for the cmake build.

if I change common.library_build_path() I'll break the gtk doc generation
Comment 5 Martin Robinson 2014-01-03 06:43:10 PST
(In reply to comment #4)
 
> if I change common.library_build_path() I'll break the gtk doc generation

Can't the gtkdoc build against the real libraries, instead of the libtool wrappers? I guess it depends on what the rpath is nowadays?
Comment 6 Carlos Garcia Campos 2014-01-03 06:46:35 PST
(In reply to comment #5)
> (In reply to comment #4)
> 
> > if I change common.library_build_path() I'll break the gtk doc generation
> 
> Can't the gtkdoc build against the real libraries, instead of the libtool wrappers? I guess it depends on what the rpath is nowadays?

real libraries are in build_dir/.libs anyway, not in build_dir/Libraries/.libs
Comment 7 Martin Robinson 2014-01-03 06:52:24 PST
(In reply to comment #6)

> real libraries are in build_dir/.libs anyway, not in build_dir/Libraries/.libs

Ah, right! Sorry. I'm still waking up. I think the solution here is to make another function in common for the extra libraries (like libTestWebKitAPIInjectedBundle.la).
Comment 8 Martin Robinson 2014-01-03 06:53:08 PST
(In reply to comment #7)
> (In reply to comment #6)
> 
> > real libraries are in build_dir/.libs anyway, not in build_dir/Libraries/.libs
> 
> Ah, right! Sorry. I'm still waking up. I think the solution here is to make another function in common for the extra libraries (like libTestWebKitAPIInjectedBundle.la).

In the cmake build all the libraries are built into 'lib,' so this function could just return library_build_path.
Comment 9 Carlos Garcia Campos 2014-01-03 08:22:23 PST
I still don't understand what's wrong with the patch TBH.
Comment 10 Martin Robinson 2014-01-03 08:38:25 PST
(In reply to comment #9)
> I still don't understand what's wrong with the patch TBH.

The Libraries directory doesn't exist for the cmake build. It builds all libraries into <build_directory>/lib.
Comment 11 Carlos Garcia Campos 2014-01-03 08:42:04 PST
(In reply to comment #10)
> (In reply to comment #9)
> > I still don't understand what's wrong with the patch TBH.
> 
> The Libraries directory doesn't exist for the cmake build. It builds all libraries into <build_directory>/lib.

Ah, so the problem is that it fails when building with cmake.
Comment 12 Carlos Garcia Campos 2014-01-03 10:33:33 PST
Created attachment 220320 [details]
Updated patch
Comment 13 Carlos Garcia Campos 2014-01-03 10:45:46 PST
Committed r161268: <http://trac.webkit.org/changeset/161268>