From fafe72523586dc28d3cab91e2e86beab33ece55f Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon, 17 Nov 2025 06:16:26 +0000 Subject: [PATCH] Add test for BOM character preservation in VSBuffer (issue #251527) (#277608) * Initial plan * Add test for issue #251527 - BOM character preservation in VSBuffer Co-authored-by: bpasero <900690+bpasero@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: bpasero <900690+bpasero@users.noreply.github.com> --- src/vs/base/test/common/buffer.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/vs/base/test/common/buffer.test.ts b/src/vs/base/test/common/buffer.test.ts index f4d9c5a04e4..9109d4cdb1b 100644 --- a/src/vs/base/test/common/buffer.test.ts +++ b/src/vs/base/test/common/buffer.test.ts @@ -19,6 +19,20 @@ suite('Buffer', () => { assert.deepStrictEqual(buffer.toString(), 'hi'); }); + test('issue #251527 - VSBuffer#toString preserves BOM character in filenames', () => { + // BOM character (U+FEFF) is a zero-width character that was being stripped + // when deserializing messages in the IPC layer. This test verifies that + // the BOM character is preserved when using VSBuffer.toString(). + const bomChar = '\uFEFF'; + const filename = `${bomChar}c.txt`; + const buffer = VSBuffer.fromString(filename); + const result = buffer.toString(); + + // Verify the BOM character is preserved + assert.strictEqual(result, filename); + assert.strictEqual(result.charCodeAt(0), 0xFEFF); + }); + test('bufferToReadable / readableToBuffer', () => { const content = 'Hello World'; const readable = bufferToReadable(VSBuffer.fromString(content));