Test fixes#155
Conversation
This allows the test to be run (except for the ioplugin tests) without network access, if a pre-filled cache is used. This is important when the tests are run as part of a package build where external netwark access is not allowed.
…ts pass on 32 bit
…instead of adding it to ALL This way it is possible to exclude the test, i.e. ctest -E test-stressproof and not have the large input data files downloaded.
|
The 8f1e750 commit by @dpiparo caused a conflict with this pull request. I am not sure how to address the conflict, since as far as I can see the commit to the root master doesn't fix the issue. As far as I can see all it does is add some debug output, but still fail the tests. Or did I miss something? |
|
Hi, thanks for this huge PR: you really put forward quite some solid work about several tests - thanks. For what platform (os, compiler, architecture) were you exactly fixing them? We run them on the platforms listed here: http://cdash.cern.ch/index.php?project=ROOT My comments, file by file, starting from the ones which might need some discussion before being incorporated in the master. The ones labelled with OK, all but 5, listed at at the end, are for me ready to go in.
Files ready to go:
|
|
Sorry for the delay. I should have made notes as to why exactly I added each of the changes, but I didn't - so i had to run some tests without the changes applied. Here we go: For Fedora rawhide i686:
The following tests FAILED: Details:
For Fedora 23 i686
The following tests FAILED: Details:
Regarding test/stressTMVA.cxx: there are several tests that use the tmva_class_example.root and tmva_reg_example.root files as input:
Before they all used slightly different logic for what locations to try and in what order, which didn't make sense to me. I therefore harmonized the usage so that they all do the same thing. |
|
I see you access http://root.cern.ch/files/usa.root using CACHEREAD in all places where it is used (tutorial, stressgraphics, THistpainter) ... fine with me ... but I do not understand why you changed stressgraphics.ref .... ? |
|
Can you send me the stressGraphics output you get (before the changes you did in stressgraphics.ref) ? |
|
This is the output form Fedora 23 i686. The output differs between different releases and different architectures, but I think this is the one with the most failures. |
|
I have adjusted stress graphics.ref accordingly. Thanks. |
|
BTW: I have noticed that the stressGraphics output contains now the following line because of your changes: Info in TFile::OpenFromCache: using local cache copy of http://root.cern.ch/files/usa.root [./files/usa.root] This will make roottest fail.... |
|
I am not familiar with roottest. This output line does not make ctest fail. Why are they different? |
|
As far as I know roottest compares the output of of stressGraphics to a reference. Having this extra printout will make it different from the reference. My guess is that we will get a test failure.. |
|
test-stressgraphics is not comparing the output. It is looking for "FAILED|Error in" in the output. |
|
Ah ok .. so in that case this extra printout should not arm.... |
|
As I wrote before the Fedora 23 i686 was not the only failures in stress graphics, only the one with the most of them. I tried rerunning usung the new reference from master and had 4 failures in epel 7: There was also one failure in Fedora 24, but it was the same as one of the 4 failures above. |
|
I did the needed changes in stressGraphics.ref. Thanks. |
|
@ellert I am working on the merge. Several things have already been done as part of the master so there was (as expected) several merge conflict. I pick resolutions that can be seen at: https://github.com/pcanal/root/tree/ellert-test-fixes Can you please verify that they are complete/correct for you? Thanks. |
|
If I merge the master (without the last two commits) into this test-fixes branch and then check the differences with your branch, only the test/TFormulaParsingTests.h file differs. I think the change made in master to that file attempted to fix some of the same test failures I attempted to fix, but not all of them. An fpEqual function was introduced to do comparisons between numbers, but unless the 3rd optional argument is given, that function only does normal operator== between the numbers. And only in one of the calls does it actually set this option. In my version I used a similar approach, but I used TMath::AreEqualAbs instead of writing a new function. I chose this function for consistency since it was already used by a few of the tests in the file. I added calls to TMath::AreEqualAbs to 6 places in the file, not only 1 - though one of the six is the same as the one place where the third option to fpEqual is used. Whether to use the existing TMath::AreEqualAbs or write a new similar function is of course a matter of taste, but since at present in master the third argument to fpEqual is only used at one single place the implementation in master is incomplete and some of the tests will fail in some architectures. |
|
The log of the failing stressMathCore test on Fedora 26 i686 says: |
|
This pull request is now quite old. It contains various fixes all related to the runnng to the test suite. Some of the changes originally proposed here were cherry picked and merged, while others remain unresolved. New test related problems were added over time, and since the pull request is so old it has been necessary to merge the master branch in order to resolve merge conflicts several times. All this makes it hard to review the proposed changes. For this reason I have split the proposed changes in this pull request into several new ones, each of which addresses one singe issue. This will hopefully make it easier to review. The new pull requests replacing this one are: #400, #401, #402, #403, #404 and #405. I now close this one. |
Here are some fixes to the tests.