gi-test: ./test/main.cpp:2051: void test_property(): Assertion `w.get_property(NAME_FNUMBER) == 5.2' failed
Hello! In Debian, we discovered failing tests on i386 architecture with the following errors.
test 1
Start 1: gi-test
1: Test command: /build/cppgir/obj-i686-linux-gnu/gi-test
1: Working Directory: /build/cppgir/obj-i686-linux-gnu
1: Test timeout computed to be: 1500
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1:
1: (process:10909): GLib-CRITICAL **: 13:11:21.346: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
1: gi-test: ./test/main.cpp:2051: void test_property(): Assertion `w.get_property<double>(NAME_FNUMBER) == 5.2' failed.
1/2 Test #1: gi-test ..........................Subprocess aborted***Exception: 0.11 sec
test 2
Start 2: gi-test-17
2: Test command: /build/cppgir/obj-i686-linux-gnu/gi-test-17
2: Working Directory: /build/cppgir/obj-i686-linux-gnu
2: Test timeout computed to be: 1500
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2:
2: (process:10911): GLib-CRITICAL **: 13:11:21.457: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
2: gi-test-17: ./test/main.cpp:2051: void test_property(): Assertion `w.get_property<double>(NAME_FNUMBER) == 5.2' failed.
2/2 Test #2: gi-test-17 .......................Subprocess aborted***Exception: 0.11 sec
0% tests passed, 2 tests failed out of 2
Total Test time (real) = 0.22 sec
The following tests FAILED:
1 - gi-test (Subprocess aborted)
2 - gi-test-17 (Subprocess aborted)
Errors while running CTest
Full build log can be found at https://buildd.debian.org/status/fetch.php?pkg=cppgir&arch=i386&ver=2.0%2Bgit20250629.2a7d9ce-1&stamp=1763551767&raw=0.
I do not know why this happens after simple assignment in the test and why the bug appears only on i386, one of our release architectures. But std::cout << w.get_property<double>(NAME_FNUMBER) - 5.2 << std::endl; prints 1.77809e-16. Apparently, an undesired conversion to long double has occurred somewhere. Though, I did not investigate deeper.