[llvm] r182715 - Fixed bug when tests in executable partially used absolute paths.
Alexey Samsonov
samsonov at google.com
Wed May 29 01:23:34 PDT 2013
Hi Galina,
I use cmake for an out-of-tree build (cmake -DCMAKE_BUILD_TYPE=Release ...
/path/to/llvm). I think you may try to reproduce the problem by configuring
cmake build tree,
applying the change (breaking the unit test):
$ svn diff unittests/ADT/APFloatTest.cpp
Index: unittests/ADT/APFloatTest.cpp
===================================================================
--- unittests/ADT/APFloatTest.cpp (revision 182753)
+++ unittests/ADT/APFloatTest.cpp (working copy)
@@ -52,7 +52,7 @@
f2.divide(Val2, rdmd);
APFloat f3(12.0f);
f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
- EXPECT_EQ(12.0f, f1.convertToFloat());
+ EXPECT_EQ(13.0f, f1.convertToFloat());
}
}
then in the build tree:
$ make check-llvm -j12
Testing Time: 28.15s
Expected Passes : 8091
Expected Failures : 50
Unsupported Tests : 18
OTOH:
$ unittests/ADT/ADTTests --gtest_filter=APFloatTest.FMA
Note: Google Test filter = APFloatTest.FMA
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from APFloatTest
[ RUN ] APFloatTest.FMA
/usr/local/google/llvm/unittests/ADT/APFloatTest.cpp:55: Failure
Value of: f1.convertToFloat()
Actual: 12
Expected: 13.0f
Which is: 13
[ FAILED ] APFloatTest.FMA (1 ms)
[----------] 1 test from APFloatTest (1 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] APFloatTest.FMA
1 FAILED TEST
On Tue, May 28, 2013 at 11:48 PM, Galina Kistanova <gkistanova at gmail.com>wrote:
> Hi Alexey,
>
> Can you provide more details please? Do you build in tree or out of tree?
>
> Thanks
>
> Galina
>
>
>
> On Tue, May 28, 2013 at 3:09 AM, Alexey Samsonov <samsonov at google.com>wrote:
>
>> Hm the buildbots are going red :(
>> Reverting this change with my fix altogether.
>>
>>
>> On Tue, May 28, 2013 at 1:44 PM, Alexey Samsonov <samsonov at google.com>wrote:
>>
>>> Hi Galina!
>>>
>>> On Sun, May 26, 2013 at 7:58 AM, Galina Kistanova <gkistanova at gmail.com>wrote:
>>>
>>>> Author: gkistanova
>>>> Date: Sat May 25 22:58:41 2013
>>>> New Revision: 182715
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=182715&view=rev
>>>> Log:
>>>> Fixed bug when tests in executable partially used absolute paths.
>>>>
>>>> Modified:
>>>> llvm/trunk/utils/lit/lit/TestFormats.py
>>>>
>>>> Modified: llvm/trunk/utils/lit/lit/TestFormats.py
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestFormats.py?rev=182715&r1=182714&r2=182715&view=diff
>>>>
>>>> ==============================================================================
>>>> --- llvm/trunk/utils/lit/lit/TestFormats.py (original)
>>>> +++ llvm/trunk/utils/lit/lit/TestFormats.py Sat May 25 22:58:41 2013
>>>> @@ -61,9 +61,9 @@ class GoogleTest(object):
>>>> (dirname, basename) = os.path.split(execpath)
>>>> # Discover the tests in this executable.
>>>> for testname in self.getGTestTests(execpath, litConfig,
>>>> localConfig):
>>>> - testPath = path_in_suite + (dirname, basename, testname)
>>>> - yield Test.Test(testSuite, testPath, localConfig)
>>>> -
>>>> + testPath_in_suite = path_in_suite + (basename, testname)
>>>> + yield Test.Test(testSuite, testPath_in_suite, localConfig)
>>>>
>>>
>>> I think this is wrong. When I run unittests locally, file
>>> /some/gtest/executable is called as:
>>> /some/gtest/executable --gtest_filter="executable/test.case"
>>> instead of:
>>> /some/gtest/executable --gtest_filter="test.case"
>>>
>>> As a result, *all the unit tests silently pass*.
>>> I think r182758 deals with it, but double-checking would be nice.
>>>
>>>
>>>
>>>> +
>>>> def getTestsInDirectory(self, testSuite, path_in_suite,
>>>> litConfig, localConfig):
>>>> source_path = testSuite.getSourcePath(path_in_suite)
>>>> @@ -73,15 +73,17 @@ class GoogleTest(object):
>>>> # Iterate over executables in a directory.
>>>> if not os.path.normcase(filename) in self.test_sub_dir:
>>>> continue
>>>> + filepath_in_suite = path_in_suite + (filename, )
>>>> for subfilename in os.listdir(filepath):
>>>> execpath = os.path.join(filepath, subfilename)
>>>> for test in self.getTestsInExecutable(
>>>> - testSuite, path_in_suite, execpath,
>>>> + testSuite, filepath_in_suite, execpath,
>>>> litConfig, localConfig):
>>>> yield test
>>>> elif ('.' in self.test_sub_dir):
>>>> + filepath_in_suite = path_in_suite + (filename, )
>>>> for test in self.getTestsInExecutable(
>>>> - testSuite, path_in_suite, filepath,
>>>> + testSuite, filepath_in_suite, filepath,
>>>> litConfig, localConfig):
>>>> yield test
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>
>>>
>>>
>>> --
>>> Alexey Samsonov, MSK
>>>
>>
>>
>>
>> --
>> Alexey Samsonov, MSK
>>
>
>
--
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130529/8be40b39/attachment.html>
More information about the llvm-commits
mailing list