On 06/09/2016 12:42 PM, David Malcolm wrote:
This patch introduce a selftest::location struct to wrap up __FILE__
and __LINE__ information (and __FUNCTION__) throughout the selftests,
allowing location information to be passed around.

It updates the helper functions in pretty-print.c to pass through
the precise location of each test, so that if a failure occurs, the
correct line number is printed, rather than a line within a helper
function.

gcc/ChangeLog:
        * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
        * pretty-print.c (assert_pp_format_va): Add location param and use
        it with ASSERT_STREQ_AT.
        (assert_pp_format): Add location param and pass it to
        assert_pp_format_va.
        (assert_pp_format_colored): Likewise.
        (ASSERT_PP_FORMAT_1): New.
        (ASSERT_PP_FORMAT_2): New.
        (ASSERT_PP_FORMAT_3): New.
        (test_pp_format): Provide SELFTEST_LOCATION throughout, either
        explicitly, or implicitly via the above macros.
        * selftest.c (selftest::pass): Use a selftest::location rather
        than file and line.
        (selftest::fail): Likewise.  Print the function name.
        (selftest::fail_formatted): Likewise.
        (selftest::assert_streq): Use a selftest::location rather than
        file and line.
        * selftest.h (selftest::location): New struct.
        (SELFTEST_LOCATION): New macro.
        (selftest::pass): Accept a const location & rather than file
        and line.
        (selftest::fail): Likewise.
        (selftest::fail_formatted): Likewise.
        (selftest::assert_streq): Likewise.
        (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
        (ASSERT_FALSE): Likewise.
        (ASSERT_EQ): Likewise.
        (ASSERT_NE): Likewise.
        (ASSERT_STREQ): Likewise.
        (ASSERT_PRED1): Likewise.
        (ASSERT_STREQ_AT): New macro.
OK.
jeff

Reply via email to