Discussion:
errors in travis ci runs in current qooxdoo master
(too old to reply)
Dietrich Streifert
2016-03-03 15:09:11 UTC
Permalink
Hi All,

I had a look at the travis runs with the errors occuring here. Here an
example:

https://travis-ci.org/qooxdoo/qooxdoo/builds/113351781

The errors start at
https://travis-ci.org/qooxdoo/qooxdoo/builds/113351781#L5656 where I see
an unexpected message.
Test suite finished. Call
qx.core.Init.getApplication().runner.view.getTestResults() to get the
results.
Tests finished.
which I think should not be there, as numerous tests follow, which all
seem to fail. The first failed test is the test class qx.test.Theme.

I've pulled master to my local disc and started the travis
tool/test/travis/run script locally, wich also (no surprise) had the
same errors as the travis ci run on github.

I remembered that the original qx-phantomjs allowed to set an additional
parameter in order to specify a single test class, which also is
possible with the tool/test/travis/run script if I add the parameter
"?testclass=..." to the runner url.

So I started the script with

run
"http://localhost/qooxdoo/master/framework/test-console/index-source.html?testclass=qx.test.Theme"

with qx.test.Theme being the first test failing. But in contrary to the
000095 qx.core.Init: Load runtime: 94ms
000122 Waiting for tests
000127 Loading tests...
000128 qx.core.Init: Main runtime: 33ms
000136 qx.core.Init: Finalize runtime: 8ms
001592 qx.core.Init: Load runtime: 1592ms
001606 qx.core.Init: Main runtime: 13ms
001611 qx.core.Init: Finalize runtime: 5ms
001864 8 tests ready. Call
qx.core.Init.getApplication().runner.view.run() to start.
001865 Running tests...
001882 qx.test.Theme:testDoubleExtend : success
001896 qx.test.Theme:testExtendTheme : success
001909 qx.test.Theme:testExtendThemeWithIncludes : success
001924 qx.test.Theme:testIncludeInvalidTheme : success
001936 qx.test.Theme:testIncludeTheme : success
001950 qx.test.Theme:testIncludeThemeWithIncludes : success
001964 qx.test.Theme:testPatchInvalidTheme : success
001977 qx.test.Theme:testPatchTheme : success
002233 Test suite finished. Call
qx.core.Init.getApplication().runner.view.getTestResults() to get the
results.
Tests finished.
Finished running test suite (8 succeeded, 0 skipped, 0 failed)
002096 qx.core.ObjectRegistry: Disposed 52 objects
So I don't think that the tests per se are faulty.

What's going on in the test runner?

Regards
Dietrich
Dietrich Streifert
2016-03-03 16:03:23 UTC
Permalink
The tests in qx.test.Theme have tests for theme switching with
decorators and appearances generated on the fly. This themes only have a
dummy decorator called "basic".

If the test switches to such a dummy theme, there still exist instances
of qx.ui.basic.Image and others from previous tests, which are having
their decorators assigned from a regular theme, like "toolbar-part". As
this decorator does not exist in the dynamically created dummy
decorator, the switch fails with an exception. This test is then marked
as "failed".

I'll try to get rid of those instances left behind, by calling destroy
in the corresponding tests.

We'll see how far I get.
Post by Dietrich Streifert
Hi All,
I had a look at the travis runs with the errors occuring here. Here an
https://travis-ci.org/qooxdoo/qooxdoo/builds/113351781
The errors start at
https://travis-ci.org/qooxdoo/qooxdoo/builds/113351781#L5656 where I
see an unexpected message.
Test suite finished. Call
qx.core.Init.getApplication().runner.view.getTestResults() to get the
results.
Tests finished.
which I think should not be there, as numerous tests follow, which all
seem to fail. The first failed test is the test class qx.test.Theme.
I've pulled master to my local disc and started the travis
tool/test/travis/run script locally, wich also (no surprise) had the
same errors as the travis ci run on github.
I remembered that the original qx-phantomjs allowed to set an
additional parameter in order to specify a single test class, which
also is possible with the tool/test/travis/run script if I add the
parameter "?testclass=..." to the runner url.
So I started the script with
run
"http://localhost/qooxdoo/master/framework/test-console/index-source.html?testclass=qx.test.Theme"
with qx.test.Theme being the first test failing. But in contrary to
000095 qx.core.Init: Load runtime: 94ms
000122 Waiting for tests
000127 Loading tests...
000128 qx.core.Init: Main runtime: 33ms
000136 qx.core.Init: Finalize runtime: 8ms
001592 qx.core.Init: Load runtime: 1592ms
001606 qx.core.Init: Main runtime: 13ms
001611 qx.core.Init: Finalize runtime: 5ms
001864 8 tests ready. Call
qx.core.Init.getApplication().runner.view.run() to start.
001865 Running tests...
001882 qx.test.Theme:testDoubleExtend : success
001896 qx.test.Theme:testExtendTheme : success
001909 qx.test.Theme:testExtendThemeWithIncludes : success
001924 qx.test.Theme:testIncludeInvalidTheme : success
001936 qx.test.Theme:testIncludeTheme : success
001950 qx.test.Theme:testIncludeThemeWithIncludes : success
001964 qx.test.Theme:testPatchInvalidTheme : success
001977 qx.test.Theme:testPatchTheme : success
002233 Test suite finished. Call
qx.core.Init.getApplication().runner.view.getTestResults() to get the
results.
Tests finished.
Finished running test suite (8 succeeded, 0 skipped, 0 failed)
002096 qx.core.ObjectRegistry: Disposed 52 objects
So I don't think that the tests per se are faulty.
What's going on in the test runner?
Regards
Dietrich
Dietrich Streifert
2016-03-03 16:58:26 UTC
Permalink
Here is another one:

Some tests in qx.test.util.NumberFormat fail with an exception
Error: Error in property locale of class qx.util.format.NumberFormat
in method setLocale with incoming value 'null': Null value is not allowed!
This happens because the qx.locale.Manager instance (singleton) has the
property locale defined as "nullable : true" wheras
qx.util.format.NumberFormat does not, albeit qx.util.format.NumberFormat
says "init : null".

As instances of qx.util.format.NumberFormat bind to the
qx.locale.Manager instances locale property, sone test fail because they
call qx.locale.Manager.getInstance().resetLocale(), which sets locale to
null which is not allowed for NumberFormat.

At first point we have to decide what to do with the discrepancy of both
"locale" properties in qx.locale.Manager and qx.util.format.NumberFormat.

On the other hand we have to detect undisposed instances of
qx.util.format.NumberFormat which may be left behind from other tests.
Dietrich Streifert
2016-03-04 10:17:58 UTC
Permalink
And here is the pull request:

https://github.com/qooxdoo/qooxdoo/pull/186
Post by Dietrich Streifert
Some tests in qx.test.util.NumberFormat fail with an exception
Error: Error in property locale of class qx.util.format.NumberFormat
in method setLocale with incoming value 'null': Null value is not allowed!
This happens because the qx.locale.Manager instance (singleton) has
the property locale defined as "nullable : true" wheras
qx.util.format.NumberFormat does not, albeit
qx.util.format.NumberFormat says "init : null".
As instances of qx.util.format.NumberFormat bind to the
qx.locale.Manager instances locale property, sone test fail because
they call qx.locale.Manager.getInstance().resetLocale(), which sets
locale to null which is not allowed for NumberFormat.
At first point we have to decide what to do with the discrepancy of
both "locale" properties in qx.locale.Manager and
qx.util.format.NumberFormat.
On the other hand we have to detect undisposed instances of
qx.util.format.NumberFormat which may be left behind from other tests.
Dietrich Streifert
2016-03-04 11:44:27 UTC
Permalink
and another PR:

https://github.com/qooxdoo/qooxdoo/pull/187
Post by Dietrich Streifert
https://github.com/qooxdoo/qooxdoo/pull/186
Post by Dietrich Streifert
Some tests in qx.test.util.NumberFormat fail with an exception
Error: Error in property locale of class qx.util.format.NumberFormat
in method setLocale with incoming value 'null': Null value is not allowed!
This happens because the qx.locale.Manager instance (singleton) has
the property locale defined as "nullable : true" wheras
qx.util.format.NumberFormat does not, albeit
qx.util.format.NumberFormat says "init : null".
As instances of qx.util.format.NumberFormat bind to the
qx.locale.Manager instances locale property, sone test fail because
they call qx.locale.Manager.getInstance().resetLocale(), which sets
locale to null which is not allowed for NumberFormat.
At first point we have to decide what to do with the discrepancy of
both "locale" properties in qx.locale.Manager and
qx.util.format.NumberFormat.
On the other hand we have to detect undisposed instances of
qx.util.format.NumberFormat which may be left behind from other tests.
Loading...