From 1644142da0b346a89e69bf4fba3c106a6aea8aae Mon Sep 17 00:00:00 2001 From: pfg Date: Mon, 16 Dec 2024 14:35:34 -0800 Subject: [PATCH] diff print for error --- src/analyze_transpiled_module.zig | 11 +++++++++++ src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp | 9 +++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/analyze_transpiled_module.zig b/src/analyze_transpiled_module.zig index 8ce0d9a75b..f07867611c 100644 --- a/src/analyze_transpiled_module.zig +++ b/src/analyze_transpiled_module.zig @@ -199,6 +199,17 @@ const ExportInfo = union(enum) { }, }; +export fn zig__renderDiff(expected_ptr: [*:0]const u8, expected_len: usize, received_ptr: [*:0]const u8, received_len: usize, globalThis: *bun.JSC.JSGlobalObject) void { + const DiffFormatter = @import("bun.js/test/diff_format.zig").DiffFormatter; + const formatter = DiffFormatter{ + .received_string = received_ptr[0..received_len], + .expected_string = expected_ptr[0..expected_len], + .globalThis = globalThis, + }; + const stderr = std.io.getStdErr().writer(); + stderr.print("DIFF:\n{}\n", .{formatter}) catch {}; +} + fn fail(result: *c_int, code: c_int) ?*JSModuleRecord { result.* = code; return null; diff --git a/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp b/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp index 74283820cb..fdb26b6e12 100644 --- a/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp +++ b/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp @@ -75,6 +75,7 @@ String dumpRecordInfo(JSModuleRecord* moduleRecord); struct ModuleInfo; extern "C" JSModuleRecord* zig__ModuleInfo__parseFromSourceCode(JSGlobalObject* globalObject, VM& vm, const Identifier& module_key, const SourceCode& source_code, VariableEnvironment& declared_variables, VariableEnvironment& lexical_variables, const char* source_ptr, size_t source_len, int* failure_reason); +extern "C" void zig__renderDiff(const char* expected_ptr, size_t expected_len, const char* received_ptr, size_t received_len, JSGlobalObject* globalObject); extern "C" Identifier* JSC__IdentifierArray__create(size_t len) { @@ -249,12 +250,8 @@ static EncodedJSValue fallbackParse(JSGlobalObject* globalObject, const Identifi dataLog(" ------", "\n"); dataLog(" BunAnalyzeTranspiledModule:", "\n"); - dataLog("\n\n \x1b[91m\x1b(B\x1b[m\n ------", "\n"); - dataLog("value", actual.utf8().data(), "\n"); - dataLog("\n \x1b[91m\x1b(B\x1b[m", "\n"); - dataLog("\n\n \x1b[92m\x1b(B\x1b[m\n ------", "\n"); - dataLog("value", expected.utf8().data(), "\n"); - dataLog("\n \x1b[92m\x1b(B\x1b[m", "\n"); + zig__renderDiff(expected.utf8().data(), expected.utf8().length(), actual.utf8().data(), actual.utf8().length(), globalObject); + RELEASE_AND_RETURN(scope, JSValue::encode(rejectWithError(createError(globalObject, WTF::String::fromLatin1("Imports different between parseFromSourceCode and fallbackParse"))))); } }