1. 1/1 test "basic slices"... index out of bounds
    2. /home/andy/Downloads/zig/docgen_tmp/test.zig:22:10: 0x205b06 in test "basic slices" (test)
    3. slice[10] += 1;
    4. ^
    5. /home/andy/Downloads/zig/lib/std/special/test_runner.zig:61:28: 0x22db51 in std.special.main (test)
    6. } else test_fn.func();
    7. ^
    8. const result = root.main() catch |err| {
    9. ^
    10. /home/andy/Downloads/zig/lib/std/start.zig:162:5: 0x207192 in std.start._start (test)
    11. @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{});
    12. ^
    13. error: the following test command crashed:
    14. docgen_tmp/zig-cache/o/2e7f715609483f0cd9100db66b70c1a0/test

    This is one reason we prefer slices to pointers.

    1. 1/2 test "using slices for strings"... OK
    2. All 2 tests passed.

    See also:

    null_terminated_slice.zig

    1. $ zig test null_terminated_slice.zig
    2. 1/1 test "null terminated slice"... OK