rusty icon indicating copy to clipboard operation
rusty copied to clipboard

Add `--release` tests to our CI

Open mhasel opened this issue 1 year ago • 1 comments

We should add release testing to our CI to get ahead of future issues regarding release builds.

mhasel avatar Mar 05 '24 13:03 mhasel

Currently blocked by

  • [x] Tests causing segfaults:
SIGSEGV [   0.099s] rusty::tests correctness::functions::mux_string_literal
SIGSEGV [   0.091s] rusty::tests correctness::functions::mux_string_ref
SIGSEGV [   0.060s] rusty::tests correctness::functions::sel_string_literal
SIGSEGV [   0.058s] rusty::tests correctness::functions::sel_string_ref
SIGSEGV [   0.046s] rusty::tests correctness::strings::string_returned_from_generic_wrapper_function_does_not_truncate
SIGSEGV [   0.125s] iec61131std::string_conversion_tests string_to_wstring_conversion
SIGSEGV [   0.123s] iec61131std::string_conversion_tests string_to_wstring_extra_conversion
SIGSEGV [   0.112s] iec61131std::string_conversion_tests wstring_to_string_conversion
SIGSEGV [   0.110s] iec61131std::string_conversion_tests wstring_to_string_extra_conversion
SIGSEGV [   0.110s] iec61131std::string_function_tests delete_ext_string_with_escape_sequence
SIGSEGV [   0.087s] iec61131std::string_function_tests delete_string_with_escape_sequence
SIGSEGV [   0.094s] iec61131std::string_function_tests left_wstring

tracked in #1121

  • [x] Bitaccess returning incorrect values for booleans
FAIL [   0.035s] iec61131std::bit_conversion_tests byte_to_bool
FAIL [   0.035s] iec61131std::bit_conversion_tests dword_to_bool
FAIL [   0.028s] iec61131std::bit_conversion_tests lword_to_bool
FAIL [   0.034s] iec61131std::bit_conversion_tests word_to_bool

tracked in #1141

  • [ ] date_time_numeric_functions::checked_mul_time_with_signed_int returning garbage values
FAIL [   0.025s] iec61131std::date_time_numeric_functions_tests mul_ltime_signed
FAIL [   0.032s] iec61131std::date_time_numeric_functions_tests mul_signed
FAIL [   0.028s] iec61131std::date_time_numeric_functions_tests mul_time_signed

tracked in #1146

  • [ ] result of validation_functions::is_valid_bcd failing expected assertion (assert!(maintype.valid);)
FAIL [   0.029s] iec61131std::validation_functions_tests is_valid_word
  • [ ] date_time_extra_functions::concat_dt panicking due to hitting .expect("Invalid parameters, cannot create TOD") in function body (in1 shows garbage values in the debugger)
FAIL [   0.045s] iec61131std::date_time_extra_functions_tests concat_dt_signed_ints
FAIL [   0.039s] iec61131std::date_time_extra_functions_tests concat_dt_unsigned_ints
FAIL [   0.056s] iec61131std::date_time_extra_functions_tests concat_ldt_signed_ints
FAIL [   0.042s] iec61131std::date_time_extra_functions_tests concat_ldt_unsigned_ints

iec61131std::validation_functions_tests is_valid_word passes if a println!() is added on the conditional expression. For iec61131std::date_time_extra_functions_tests concat_dt_signed_ints (and most likely the other 3, but I haven't tried this for all of them) the tests can be "fixed" by bitwise-anding arguments to date_time_extra_functions::concat_tod with 0xFFFF, so the problem is most likely the upcast from i16 to u32 in date_time_extra_functions::CONCAT_TOD__INT. A simple println!() on the upcasted parameter in2 of MUL_LTIME__SINT also results in the correct value being reported. This is reproducible also when directly compiling an ST example with our stdlib compiled with release.

mhasel avatar Mar 09 '24 07:03 mhasel