[poppler] [PATCH] make test (check_lexer) failure
Albert Astals Cid
aacid at kde.org
Sat Dec 8 09:02:31 PST 2012
El Diumenge, 2 de desembre de 2012, a les 02:14:56, Fabio D'Urso va escriure:
> Hi, I'm on a 32-bit machine with GCC 4.6.3 and check_lexer fails:
>
> ********* Start testing of TestLexer *********
> Config: Using QTest library 4.7.4, Qt 4.7.4
> PASS : TestLexer::initTestCase()
> FAIL! : TestLexer::testNumbers() Compared doubles are not the same (fuzzy
> compare)
> Actual (obj.getReal()): -2.14748e+09
> Expected ((double)-2147483649): 2.14748e+09
> Loc: [/home/fabio/ok/poppler/qt4/tests/check_lexer.cpp(65)]
> PASS : TestLexer::cleanupTestCase()
> Totals: 2 passed, 1 failed, 0 skipped
> ********* Finished testing of TestLexer *********
>
> During compilation I get the two following warnings:
>
> 1) qt4/tests/check_lexer.cpp:55:5: warning: this decimal constant is
> unsigned only in ISO C90 [enabled by default]
> 2) qt4/tests/check_lexer.cpp:65:5: warning: this decimal constant is
> unsigned only in ISO C90 [enabled by default] ← This is what makes the test
> fail!
>
> I'm attaching a patch that solves both warnings:
>
> 1) (int)-2147483648 is INT_MIN in 32-bit systems. However it seems that the
> way it is written is not very portable
> [http://www.hardtoc.com/archives/119]. The patch rewrites it as
> -2147483647-1 which, according to the linked page, is a better way to write
> it.
>
> 2) This is the one that makes the test fail.
> According to the output (double)-2147483649 is transformed by the compiler
> into a positive number (2.14748e+09). My guess is that 2147483649 is
> interpreted a signed number and, since it overflows, it is actually
> interpreted as -2147483647. The minus sign makes it positive 2147483647
> again. The patch bypasses these details by writing the number directly as
> double literal, i.e. -2147483649.0 (well, actually the minus sign is not
> part of the number, but let's not be too picky ;))
>
> I'm confident that these changes work on 64-bit systems too, but I have NOT
> tested actually. Please let me know if you find any issue.
Pushed.
Albert
>
> Fabio
More information about the poppler
mailing list