test error in paraview-catalyst 2.0.0-2 under riscv64
Description:
There is a problem with the test code of the paraview-catalyst 2.0.0-2 package under the riscv64 architectures. According to the log output, the t_conduit_node_set test file reported an error .
[ RUN ] conduit_node_set.set_path_cstyle_native_int
/usr/src/debug/paraview-catalyst/catalyst-v2.0.0/tests/conduit_tests/t_conduit_node_set.cpp:2276: Failure
Expected equality of these values:
catalyst_conduit_datatype_is_signed_integer(nc.c_dtype())
Which is: 0
true
/usr/src/debug/paraview-catalyst/catalyst-v2.0.0/tests/conduit_tests/t_conduit_node_set.cpp:2277: Failure
Expected equality of these values:
catalyst_conduit_datatype_is_unsigned_integer(nc.c_dtype())
Which is: 1
false
[ FAILED ] conduit_node_set.set_path_cstyle_native_int (4 ms)
[ RUN ] conduit_node_set.set_path_cstyle_native_int
/usr/src/debug/paraview-catalyst/catalyst-v2.0.0/tests/conduit_tests/t_conduit_node_set.cpp:2276: Failure
Expected equality of these values:
catalyst_conduit_datatype_is_signed_integer(nc.c_dtype())
Which is: 0
true
/usr/src/debug/paraview-catalyst/catalyst-v2.0.0/tests/conduit_tests/t_conduit_node_set.cpp:2277: Failure
Expected equality of these values:
catalyst_conduit_datatype_is_unsigned_integer(nc.c_dtype())
Which is: 1
false
[ FAILED ] conduit_node_set.set_path_cstyle_native_int (4 ms)
Additional info:
- package version(s):paraview-catalyst 2.0.0-2
- config and/or log files:paraview-catalyst-2.0.0-2-riscv64-check.log
My operating environment is an x86-64 environment virtual machine of the arch architecture of Windows WSL. But this package is built in chroot for the riscv64 architecture using the extra-riscv64-build command
Steps to reproduce:
- Enter the folder where PKGBUILD file exist
- run
setconf PKGBUILD arch '(riscv64 x86_64)' - run
extra-riscv64-buildand error will appear.
Debug
According to the test codes corresponding to the two errors, I found that it is a common problem to distinguish whether char is a signed number or an unsigned number.
In the test, the signed value should output true, and the unsigned value should output false. The actual result is the opposite. After testing in the RISC V environment
flag=std::is_signed<char>::value?1:0;
It proves that char is an unsigned number under the riscv architecture This is why the test is not applicable when ported to the RISCv architecture.