Add run-js-test executable to run tests
ST makes use of GTK+ for input methods and for icon themes; therefore we have need to initialize GTK+ in order to test these parts of Clutter. Instead of LD_PRELOADING our module, use a separately compiled executable that links to the UI components in GNOME Shell, initializes Clutter and GTK+ and hooks them together. Getting all the symbols from St and the GUI components exported for use via GJS requires a bit of contortion: we need to actually link the St convenience library into a shared library and link the executable to that since there is no way with libtool to take a convenience library and put all its symbols into an executable --whole-archive style. https://bugzilla.gnome.org/show_bug.cgi?id=633657
This commit is contained in:
@ -11,7 +11,7 @@ debug=
|
||||
for arg in $@ ; do
|
||||
case $arg in
|
||||
-g|--debug)
|
||||
debug="gdb --args"
|
||||
debug="libtool --mode=execute gdb --args"
|
||||
;;
|
||||
-v|--verbose)
|
||||
verbose=true
|
||||
@ -34,15 +34,14 @@ GI_TYPELIB_PATH="@MUTTER_LIB_DIR@/mutter:$builddir/../src"
|
||||
GJS_DEBUG_OUTPUT=stderr
|
||||
$verbose || GJS_DEBUG_TOPICS="JS ERROR;JS LOG"
|
||||
GNOME_SHELL_TESTSDIR="$srcdir/"
|
||||
LD_PRELOAD="$builddir/../src/.libs/libgnome-shell.so"
|
||||
|
||||
export GI_TYPELIB_PATH GJS_DEBUG_OUTPUT GJS_DEBUG_TOPICS GNOME_SHELL_JS GNOME_SHELL_TESTSDIR LD_PRELOAD
|
||||
|
||||
gjs_args=
|
||||
run_js_test_args=
|
||||
for i in $srcdir $srcdir/../js @GJS_JS_DIR@ @GJS_JS_NATIVE_DIR@ ; do
|
||||
gjs_args="$gjs_args -I $i"
|
||||
run_js_test_args="$run_js_test_args -I $i"
|
||||
done
|
||||
|
||||
for test in $tests ; do
|
||||
$debug gjs-console $gjs_args $test || exit $?
|
||||
$debug $builddir/../src/run-js-test $run_js_test_args $test || exit $?
|
||||
done
|
||||
|
@ -8,7 +8,6 @@ const Shell = imports.gi.Shell;
|
||||
const Environment = imports.ui.environment;
|
||||
|
||||
function init() {
|
||||
Clutter.init(null, null);
|
||||
Environment.init();
|
||||
|
||||
let stage = Clutter.Stage.get_default();
|
||||
|
Reference in New Issue
Block a user