diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ninep/tree.zig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ninep/tree.zig b/src/ninep/tree.zig index 414a0b6e..f45a1a90 100644 --- a/src/ninep/tree.zig +++ b/src/ninep/tree.zig @@ -1522,3 +1522,14 @@ test "no placement leaves a pane shorter than its tag and two rows; a full colum try testing.expect(p.rects[k].h >= p.panes[k].?.tag_rows + pardes.layout.min_body_rows); }; } + +test "an Edit block still open when its open closes fails there with an err and changes nothing" { + const p = try th.withFile(testing.allocator, "abc\n"); + defer p.deinit(); + const ctl_node = Node.of(serialOf(p), .ctl); + const c = call(p, .{ .tag = 1, .op = .open, .node = ctl_node, .omode = 1 }).reply.handle; + _ = call(p, .{ .tag = 2, .op = .write, .node = ctl_node, .handle = c, .data = "Edit ,x/b/{\ni/[/\n" }); + _ = call(p, .{ .tag = 3, .op = .release, .node = ctl_node, .handle = c, .opened = true }); + try testing.expect(th.logHas(p, "unmatched")); + try testing.expectEqualStrings("abc\n", p.panes[0].?.file.?.content); +} |
