Solid Sands provides service and support

We are continuously working to improve your tools by providing ongoing updates, releases and updated documentation to keep you on your quality level.

Errata for SuperTest Aelbert Cuyp 5.0

  • [5.0.45] The following test file had a typo. The impacted test file has been corrected.
    Cxx11/7/6/4/t_0002.gen
  • [5.0.44] The following test files were deemed erroneous. The impacted test files have been corrected.
    Cxx11/22/4/2/1/1/t_throw.C has an incorrect grouping() check removed.
    Cxx17/10/6/6/t_0007.C was found to have invalid attribute specifier syntax and is thus removed.
    Cxx11/30/5/1/t_wait_until_negative.C and Cxx11/30/6/6/t_wait_zero.C were susceptible to timing out due to faulty behavior; they were subsequently fixed.
    Cxx14/7/6/5/xdfriendclassdecl100arg.C and Cxx14/7/6/5/xdfriendfuncdecl100arg.C had an ambiguous diagnostic line, both tests are now fixed.
    Cxx14/5/1/2/xgl3array1b.C and Cxx14/5/1/2/xgl3array2b.C tested a construct that was forbidden until C++23; they’re both fixed now.
  • [5.0.41] For the following two test files, the first test generated two files where one’s name is a suffix of the second’s name, which was problematic for regex handling, whereas the second test had a function call causing false-positives on clang. The impacted test files have been corrected.
    Cxx14/3/2/xdr1511.gen
    Cxx14/7/1/6/4/xtdfrinsta2.C
  • [5.0.40] The following test files use long double constants without explicitly using the L suffix. The impacted test files have been corrected.
    C99/7/19/6/11/t1ld.c
    C99/7/19/6/14/t1ld.c
    C99/7/19/6/2/t1ld.c
    C99/7/19/6/4/t1ld.c
    C99/7/19/6/7/t1ld.c
    C99/7/19/6/9/t1ld.c
  • [5.0.39] The following test files rely on unspecified behavior. The impacted test files have been corrected.
    Cxx11/27/9/1/5/t_overflow_no_buf.C
    Cxx11/27/9/1/5/t_xsgetn_1.C
    [5.0.38] Various test files in the following suite directory have too strict requirements on string error messages. The impacted test files have been corrected.
    conditional/C11BOUNDS/K/
  • [5.0.36] The following test file is incompatible with implementations that define the FE_ALL_EXCEPT macro as zero. The test file has been corrected.
    Cxx11/26/3/1/t_0001.C
  • [5.0.35, 5.0.37] The following test files are incompatible with implementations that have 2-byte wide characters. The impacted test files have been corrected.
    Cxx11/22/4/1/4/1/t_in_out_unicode.gen
    Cxx11/22/4/1/4/1/t_partial.gen
  • [5.0.34] The following test file contains a type definition for void, which may be incompatible with specific C++14 implementations. The test file has been corrected.
    Cxx14/20/10/7/6/t_result_of_sfinae.C
  • [5.0.33] The following test file performs a comparison of pointers across different memory spaces, which may result in an infinite loop on very specific target architectures. The impacted test file has been corrected and moved to a new location in the test suite (3/3/8/talloc.c).
    4/10/3/3/talloc.c
  • [5.0.32] The following test files incorrectly calculate the buffer size used for printing wide characters to a buffer. The impacted test files have been corrected.
    C99/7/24/2/4/t1.c
    C99/7/24/2/4/t1d.c
    C99/7/24/2/4/t1f.c
  • [5.0.30, 5.0.31] Various test files require specializations of std::ctype<> for char16_t and char32_t, which is not mandated by the C++ standard. The impacted test files have been corrected.
  • [5.0.29] The following test file uses a variable named array, which may conflict with symbols in a standard library implementation. The impacted test file has been corrected.
    4/1/5/t01.c
  • [5.0.27, 5.0.28] The following test files do not always reach the intended goal of making allocation fail. The test files have been corrected.
    Cxx17/21/6/2/1/t_handler.C
    Cxx17/21/6/2/1/t_handler_nothrow_return.C
    Cxx17/21/6/2/1/t_handler_throw.C
    Cxx17/21/6/2/1/t_nothrow_nullptr.C
    Cxx17/21/6/2/1/t_throw.C
    Cxx17/21/6/2/1/t_throw_szmax.C
    Cxx17/21/6/2/2/t_nothrow_nullptr.C
  • [5.0.26] The following test files do not qualify the destructors as virtual, which is required to reach the purpose of the test for C++14 and later versions of C++. The test files have been corrected.
    iso14882/12/4/t12-4-12.C
    iso14882/12/4/t12-4-22.C
  • [5.0.25] The following tests might invoke signed integer overflow if the wint_t type is a signed type. The test files have been corrected.
    C99/7/25/2/1/1/t1.gen
    C99/7/25/2/1/10/t1.gen
    C99/7/25/2/1/11/t1.gen
    C99/7/25/2/1/12/t1.gen
    C99/7/25/2/1/2/t1.gen
    C99/7/25/2/1/3/t1.gen
    C99/7/25/2/1/4/t1.gen
    C99/7/25/2/1/5/t1.gen
    C99/7/25/2/1/6/t1.gen
    C99/7/25/2/1/7/t1.gen
    C99/7/25/2/1/8/t1.gen
    C99/7/25/2/1/9/t1.gen
    C99/7/25/3/1/1/t1.gen
    C99/7/25/3/2/1/t1.gen
  • [5.0.23, 5.0.24] The following test file incorrectly uses a precision that relies on DECIMAL_DIG for the %e, %E, %f, %F conversion specifiers. The test file has been corrected.
    C99/7/19/6/5/tsnprintfRound.c
  • [5.0.22] The following test files fail to compile if one of the optional floating-point exception macros is not defined by a standard library implementation. The test files have been corrected.
    C99/7/19/6/5/tsnprintfRoundSign.c
    Cxx11/18/3/2/4/t_tinynessbefore_d.C
    Cxx11/18/3/2/4/t_tinynessbefore_f.C
    Cxx11/18/3/2/4/t_tinynessbefore_ld.C
  • [5.0.21] The following test files do not take into account the buffer size provided to the snprintf function when verifying the output of the %n format specifier. The test files have been corrected.
    C99/7/19/6/12/t1.c
    C99/7/19/6/5/t5.c
    C99/7/19/6/5/tsnprintfn.c
    C99/7/19/6/5/tsnprintftype.c
    C99/7/19/6/5/tsnprintftypeSizeN.c
    C99/7/19/6/tseqpointsnprintf1.c
    C99/7/19/6/tseqpointsnprintf2.c
    C99/7/19/6/tseqpointvsnprintf1.c
    C99/7/19/6/tseqpointvsnprintf2.c
  • [5.0.20] The following test files use incorrect reference values to verify the return value of std::numeric_limits<>::infinity(). The test files have been corrected.
    Cxx11/18/3/2/4/t_limits_double_value.C
    Cxx11/18/3/2/4/t_limits_double_value_isConstexpr.C
    Cxx11/18/3/2/4/t_limits_float_value.C
    Cxx11/18/3/2/4/t_limits_float_value_isConstexpr.C
    Cxx11/18/3/2/4/t_limits_long_double_value.C
    Cxx11/18/3/2/4/t_limits_long_double_value_isConstexpr.C
  • [5.0.19] The following test files have too strict requirements on the formatting expected as a result of using the %A and %a format specifiers. The test files have been updated to allow other correct formatting as well.
    C99/7/19/6/1/ttypeDoubleL99.c
    C99/7/19/6/10/ttypeDoubleL99.c
    C99/7/19/6/12/ttypeDoubleL99.c
    C99/7/19/6/13/ttypeDoubleL99.c
    C99/7/19/6/3/ttypeDoubleL99.c
    C99/7/19/6/5/ttypeDoubleL99.c
    C99/7/19/6/6/ttypeDoubleL99.c
    C99/7/19/6/8/ttypeDoubleL99.c
  • [5.0.18] The following test files incorrectly expect the number classification macros to expand to floating-point expressions instead of integer constant expressions. The test files have been corrected.
    C99/7/12/tfp_infinite_macro_1.c
    C99/7/12/tfp_nan_macro_1.c
    C99/7/12/tfp_normal_macro.c
    C99/7/12/tfp_subnormal_macro.c
    C99/7/12/tfp_zero_macro.c
  • [5.0.17] The following test file includes <stdarg.h> instead of <cstdarg> when being compiled with a C++ compiler. The test file has been corrected.
    C99/7/15/1/2/t1.c
  • [5.0.16] The following test files do not apply to C++ compilers. The test files have been corrected so they are skipped for C++ compilers.
    C18/6/7/6/3/t_0001.c
    C18/6/7/6/3/t_0002.c
    C18/6/7/9/t_0001.c
  • [5.0.15] The following test files incorrectly use has_quiet_NaN as a function instead of a variable. The test files have been corrected.
    Cxx11/18/3/2/4/t_limits_float_value.C
    Cxx11/18/3/2/4/t_limits_double_value.C
    Cxx11/18/3/2/4/t_limits_long_double_value.C
    [5.0.14] The following test file uses std::less, but does not include the <functional> header. The test file has been corrected.
    Cxx17/23/11/2/2/7/t_0002.C
  • [5.0.13] The following test file is a duplicate of another test file (Cxx11/22/4/2/2/1/t_iterator.C). The test file has been retracted from SuperTest.
    Cxx11/22/4/2/2/1/t_iterator_fail.C
    [5.0.12] The following test files invoke undefined behavior. The test files have been retracted from SuperTest.
    Cxx11/21/6/x_0001.C
    Cxx11/21/6/x_0002.C
    Cxx11/21/6/x_0003.C
    Cxx11/21/6/x_0004.C
  • [5.0.11] The following test file relies on implementation-defined. The test file has been corrected.
    Cxx11/27/9/1/5/t_setbuf_1.C
  • [5.0.10] The following test files verify that a null character is written on extraction from an empty string, but the C++ standard does not require that. The test files have been corrected.
    Cxx11/27/7/2/2/3/t_extractor_to_char_array.C
    Cxx11/27/7/2/2/3/t_extractor_to_char_array_char16_char32.C
    Cxx11/27/7/2/2/3/t_extractor_to_char_array_nospace.C
    Cxx11/27/7/2/2/3/t_extractor_to_char_array_nospace_wchar_t.C
  • [5.0.9] The following test files use the return value of std::exception_ptr() when it may be a null pointer. The test files have been corrected.
    Cxx11/30/6/5/t_set_exception.C
    Cxx11/30/6/5/t_set_exception_at_thread_exit.C
  • [5.0.8] The following test files invoke undefined behavior. The test files have been retracted from SuperTest.
    Cxx11/24/5/3/3/14/x_0001.C
    Cxx11/24/5/3/3/14/x_0002.C
  • [5.0.7] The following test files do not restore the locale after changing it. The test files have been corrected.
    C11/7/28/1/1/tsizet1.c
    C11/7/28/1/1/tsizet2.c
    C11/7/28/1/1/tsizet3.c
  • [5.0.6] The following test files contain classes inherited from std::char_traits, but do not satisfy all requirements of std::char_traits. The test files have been corrected.
    Cxx11/21/4/2/t_constructor_from_input_iterator.C
    Cxx11/24/6/3/t_istreambuf_iterator_copy_ctor.C
    Cxx11/27/6/3/2/3/t_sbumpc.C
    Cxx11/27/6/3/2/3/t_throw.C
    Cxx11/27/6/3/4/3/t_xsgetn_char16_char32_eof.C
    Cxx11/27/8/2/4/t_underflow.C
    Cxx11/27/8/2/4/t_underflow_char.C
    Cxx11/27/8/2/4/t_underflow_char_throw.C
  • [5.0.5] The following test files for std::abs and std::div incorrectly include the <cmath> header. The test files have been corrected.
    Cxx11/26/8/t_abs_ll.C
    Cxx11/26/8/t_div_ll.C
  • [5.0.4] The following test files writes files in wide mode, but reads them in narrow mode. The test files have been corrected.
    C99/7/24/2/1/t2.c
    C99/7/24/2/1/t3.c
    C99/7/24/2/12/t3.gen
  • [5.0.3] The following test contains code that may be removed by compiler optimizations, contradicting the goal of the test. The test file has been rewritten to prevent optimization.
    Cxx17/8/3/4/t_noexcept_nullptr.C
  • [5.0.2] The following test files contain variables with the identifier “open”, which may conflict with library functions with the same identifier. The test files have been corrected.
    Cxx11/23/3/7/t_ref_swap.C
    Cxx11/27/9/1/5/t_seekoff_open.C
  • [5.0.1] The following test file calls std::basic_ios::rdbuf() before std::basic_ios::init(), which invokes undefined behavior. The test file has been corrected.
    Cxx11/27/5/5/3/t_move.C