DoxigAlpha

expectStringEndsWith

Function parameters

Parameters

#
actual:[]const u8
expected_ends_with:[]const u8

Type definitions in this namespace

Types

#
Reader
A `std.Io.Reader` that writes a predetermined list of buffers during `stream`.
ReaderIndirect
A `std.Io.Reader` that gets its data from another `std.Io.Reader`, and always

This function is intended to be used only in tests.

Functions

#
expectError
This function is intended to be used only in tests.
expectEqual
This function is intended to be used only in tests.
expectFmt
This function is intended to be used only in tests.
expectApproxEqAbs
This function is intended to be used only in tests.
expectApproxEqRel
This function is intended to be used only in tests.
expectEqualSlices
This function is intended to be used only in tests.
expectEqualSentinel
This function is intended to be used only in tests.
expect
This function is intended to be used only in tests.
expectEqualDeep
This function is intended to be used only in tests.
checkAllAllocationFailures
Exhaustively check that allocation failures within `test_fn` are handled without
refAllDecls
Given a type, references all the declarations inside, so that the semantic analyzer sees them.
refAllDeclsRecursive
Given a type, recursively references all the declarations inside, so that the semantic analyzer sees them.
fuzz
Inline to avoid coverage instrumentation.

Provides deterministic randomness in unit tests.

Values

#
random_seed
Provides deterministic randomness in unit tests.
failing_allocator
= failing_allocator_instance.allocator()
allocator
This should only be used in temporary test programs.
log_level
TODO https://github.com/ziglang/zig/issues/5738
backend_can_print
= switch (builtin.zig_backend) { .stage2_aarch64, .stage2_powerpc, .stage2_riscv64, .stage2_spirv, => false, else => true, }

Source

Implementation

#
pub fn expectStringEndsWith(actual: []const u8, expected_ends_with: []const u8) !void {
    if (std.mem.endsWith(u8, actual, expected_ends_with))
        return;

    const shortened_actual = if (actual.len >= expected_ends_with.len)
        actual[(actual.len - expected_ends_with.len)..]
    else
        actual;

    print("\n====== expected to end with: =========\n", .{});
    printWithVisibleNewlines(expected_ends_with);
    print("\n====== instead ended with: ===========\n", .{});
    printWithVisibleNewlines(shortened_actual);
    print("\n========= full output: ==============\n", .{});
    printWithVisibleNewlines(actual);
    print("\n======================================\n", .{});

    return error.TestExpectedEndsWith;
}