[GNC-dev] Test failure on current master branch

John Ralls jralls at ceridwen.us
Thu Mar 2 15:36:00 EST 2023


Found and fixed it. It turns out that string->number isn't locale-sensitive, std::to_string is.
I replaced it with ostringstream and pushed.

Regards,
John Ralls

> On Mar 2, 2023, at 9:16 AM, john <jralls at ceridwen.us> wrote:
> 
> Geert,
> 
> Aha! That would certainly explain why I  couldn't reproduce it. That change is from https://github.com/Gnucash/gnucash/commit/408b5ec2165fb43bef18b80ff44ba4d2f1b67f5f. 
> Yes, no doubt string->number expects the number to be represented in the current locale, so it wants "42,0" and getting "42.0" returns #f (https://www.gnu.org/software/guile/manual/html_node/Conversion.html). I'll have to find another way to make that conversion.
> 
> Regards,
> John Ralls
> 
> 
>> On Mar 2, 2023, at 5:39 AM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
>> 
>> I still haven't figured out exactly where it goes wrong, but I did discover it's a locale related issue. For some reason this particular test has become locale sensitive.
>> 
>> If I run the test as follows:
>> LC_ALL=C ctest -V -R test-gnc-option-scheme-output
>> it passes. If however I do this:
>> LC_ALL=fr_FR.utf8 ctest -V -R test-gnc-option-scheme-output
>> it fails. I have also tried nl_BE.utf8 (my native locale), which fails as well.
>> I suspect the call to (string->number (GncOption-serialize option)) on line 459 is failing. Perhaps GncOption-serialize spits out numbers in C locale while string->number uses local locale or vice versa ?
>> 
>> Regards,
>> 
>> Geert
>> 
>> Op woensdag 1 maart 2023 04:41:14 CET schreef John Ralls:
>>> Geert,
>>> 
>>> I can't replicate that, tried on Debian 10, Debian Unstable, and Arch. I'm
>>> installing a Fedora 37 VM but I'm out of time for today and won't get to
>>> the point of a test build of GnuCash.
>>> 
>>> Regards,
>>> John Ralls
>>> 
>>>> On Feb 28, 2023, at 2:07 PM, Geert Janssens <geert.gnucash at kobaltwit.be>
>>>> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> With the current master branch I get the following test failure:
>>>> 
>>>> ctest --rerun-failed --output-on-failure
>>>> Test project /home/janssege/Development/gnucash/master/build
>>>> 
>>>>  Start 120: test-gnc-option-scheme-output
>>>> 
>>>> 1/1 Test #120: test-gnc-option-scheme-output ....***Failed    0.22 sec
>>>> gnc:make-string-option is deprecated. Make and register the option in one
>>>> command with gnc-register-string-option.
>>>> gnc:register-option is deprecated. Use gnc-register-foo-option instead.
>>>> gnc:option-set-value and indeed all direct option access is deprecated.
>>>> Use gnc-set-option instead.
>>>> gnc:make-font-option is deprecated. Make and register the option in one
>>>> command with gnc-register-font-option.
>>>> gnc:make-currency-option is deprecated. Make and register the option in
>>>> one command with gnc-register-currency-option.
>>>> gnc:make-budget-option is deprecated. Make and register the option in one
>>>> command with gnc-register-color-option.
>>>> gnc:option-set-default-value and indeed all direct option access is
>>>> deprecated. Use gnc-set- option instead.
>>>> gnc:make-commodity-option is deprecated. Make and register the option in
>>>> one command with gnc-register-commodity-option.
>>>> gnc:make-simple-boolean-option is deprecated. Make and register the option
>>>> in one command with gnc-register-simple-boolean-option.
>>>> gnc:make-pixmap-option is deprecated. Make and register the option in one
>>>> command with gnc-register-pixmap-option.
>>>> gnc:make-account-list-option is deprecated. Make and register the option
>>>> in one command with gnc-register-account-list-option.
>>>> gnc:make-multichoice-option is deprecated. Make and register the option in
>>>> one command with gnc-register-multichoice-option.
>>>> gnc:make-list-option is deprecated. Make and register the option in one
>>>> command with gnc- register-list-option.
>>>> gnc:make-number-range-option is deprecated. Make and register the option
>>>> in one command with gnc-register-number-range-option.
>>>> 
>>>> FORMAT: error with call: (format #f "'~f<===" ===>#f )
>>>> 
>>>>      argument is not a number or a number string
>>>> 
>>>> Backtrace:
>>>> In ice-9/boot-9.scm:
>>>> 1752:10 14 (with-exception-handler _ _ #:unwind? _ # _)
>>>> 
>>>> In unknown file:
>>>>        13 (apply-smob/0 #<thunk 7febbf8d3080>)
>>>> 
>>>> In ice-9/boot-9.scm:
>>>>  724:2 12 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
>>>> 
>>>> In ice-9/eval.scm:
>>>>  619:8 11 (_ #(#(#<directory (guile-user) 7febbf8d8c80>)))
>>>> 
>>>> In ice-9/command-line.scm:
>>>> 185:18 10 (_ #<input: string 7febbf8d25b0>)
>>>> 
>>>> In unknown file:
>>>>         9 (eval (exit (run-test)) #<directory (guile-user) 7febbf…>)
>>>> 
>>>> In ice-9/eval.scm:
>>>> 191:35  8 (_ #f)
>>>> 
>>>> In test-gnc-option-scheme-output.scm:
>>>>   46:2  7 (run-test)
>>>> 
>>>>  143:6  6 (test-gnc-number-range-option-to-scheme)
>>>> 
>>>> In ice-9/format.scm:
>>>> 1546:18  5 (format #f "'~f" #f)
>>>> 
>>>> 269:11  4 (format:format-work "'~f" (#f))
>>>> 1054:6  3 (format:out-fixed #f #f ())
>>>> 
>>>> In ice-9/boot-9.scm:
>>>> 1752:10  2 (with-exception-handler _ _ #:unwind? _ # _)
>>>> 
>>>> In ice-9/format.scm:
>>>> 102:10  1 (_)
>>>> 
>>>> In ice-9/boot-9.scm:
>>>> 1685:16  0 (raise-exception _ #:continuable? _)
>>>> 
>>>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>>>> error in format
>>>> [pass] line:150, test: string unchanged
>>>> [pass] line:154, test: string value
>>>> [pass] line:150, test: text unchanged
>>>> _______________________________________________
>>>> gnucash-devel mailing list
>>>> gnucash-devel at gnucash.org
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>> 
>> 
> 
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel



More information about the gnucash-devel mailing list