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:

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:

  1. Enter the folder where PKGBUILD file exist
  2. run setconf PKGBUILD arch '(riscv64 x86_64)'
  3. run extra-riscv64-build and 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.

Patch that may be useful

char-signed-test.patchrisc64.patch

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information