{ // Notes: // - BUN_GARBAGE_COLLECTOR_LEVEL=2 forces GC to run after every `expect()`, but is slower // - BUN_DEBUG_QUIET_LOGS=1 disables the debug logs // - FORCE_COLOR=1 forces colors in the terminal // - "${workspaceFolder}/test" is the cwd for `bun test` so it matches CI, we should fix this later // - "cppvsdbg" is used instead of "lldb" on Windows, because "lldb" is too slow // - Seeing WebKit files requires `vendor/WebKit` to exist and have code from the right commit. // Run `bun sync-webkit-source` to ensure that folder is at the right commit. If you haven't // cloned it at all, that script will suggest how. "version": "0.2.0", "configurations": [ // bun test [file] { "type": "lldb", "request": "launch", "name": "bun test [file]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["test", "--timeout=3600000", "${file}"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_DEBUG_jest": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "1", // "BUN_JSC_validateExceptionChecks": "1", // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", // "BUN_DESTRUCT_VM_ON_EXIT": "1", // "ASAN_OPTIONS": "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1:abort_on_error=1", // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, { "type": "lldb", "name": "Attach", "request": "attach", "pid": "${command:pickMyProcess}", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, // bun run [file] { "type": "lldb", "request": "launch", "name": "bun run [file]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["${file}"], "cwd": "${workspaceFolder}", "env": { "FORCE_COLOR": "0", "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", // "BUN_JSC_validateExceptionChecks": "1", // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", // "BUN_DESTRUCT_VM_ON_EXIT": "1", // "ASAN_OPTIONS": "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1:abort_on_error=1", // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, // bun test [...] { "type": "lldb", "request": "launch", "name": "bun test [...]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["test", "--timeout=3600000", "${input:testName}"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_DEBUG_jest": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, // bun exec [...] { "type": "lldb", "request": "launch", "name": "bun exec [...]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["exec", "${input:testName}"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, // bun test [*] { "type": "lldb", "request": "launch", "name": "bun test [*]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["test"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, { "type": "lldb", "request": "launch", "name": "bun install [folder]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["install"], "cwd": "${fileDirname}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, "console": "internalConsole", "sourceMap": { // macOS "/Users/runner/work/_temp/webkit-release/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/Users/runner/work/_temp/webkit-release/WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", // linux "/webkitbuild/vendor/WebKit": "${workspaceFolder}/vendor/WebKit", "/webkitbuild/.WTF/Headers": "${workspaceFolder}/vendor/WebKit/Source/WTF", }, }, // Windows: bun test [file] { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun test [file]", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["test", "--timeout=3600000", "${file}"], "cwd": "${workspaceFolder}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_DEBUG_jest", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "1", }, ], }, // Windows: bun run [file] { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun run [file]", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["run", "${fileBasename}"], "cwd": "${fileDirname}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_DEBUG_jest", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "2", }, ], }, { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun install", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["install"], "cwd": "${fileDirname}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "0", }, ], }, // Windows: bun test [...] { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun test [...]", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["test", "--timeout=3600000", "${input:testName}"], "cwd": "${workspaceFolder}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_DEBUG_jest", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "2", }, ], }, // Windows: bun exec [...] { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun exec [...]", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["exec", "${input:testName}"], "cwd": "${workspaceFolder}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "2", }, ], }, // Windows: bun test [*] { "type": "cppvsdbg", "sourceFileMap": { "D:\\a\\WebKit\\WebKit\\Source": "${workspaceFolder}\\src\\bun.js\\WebKit\\Source", }, "request": "launch", "name": "Windows: bun test [*]", "program": "${workspaceFolder}/build/debug/bun-debug.exe", "args": ["test"], "cwd": "${workspaceFolder}", "environment": [ { "name": "BUN_DEBUG_QUIET_LOGS", "value": "1", }, { "name": "BUN_GARBAGE_COLLECTOR_LEVEL", "value": "2", }, ], }, { "type": "bun", "name": "[JS] bun test [file]", "runtime": "${workspaceFolder}/build/debug/bun-debug", "runtimeArgs": ["test", "${file}"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, }, { "type": "bun", "name": "[JS] bun run [file]", "runtime": "${workspaceFolder}/build/debug/bun-debug", "runtimeArgs": ["run", "${file}"], "cwd": "${workspaceFolder}", "env": { "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", }, }, { "type": "midas-rr", "request": "attach", "name": "rr", "trace": "Off", "setupCommands": [ "handle SIGPWR nostop noprint pass", "source ${workspaceFolder}/misctools/gdb/std_gdb_pretty_printers.py", "source ${workspaceFolder}/misctools/gdb/zig_gdb_pretty_printers.py", "set substitute-path /webkitbuild/vendor/WebKit ${workspaceFolder}/vendor/WebKit", "set substitute-path /webkitbuild/.WTF/Headers ${workspaceFolder}/vendor/WebKit/Source/WTF", // uncomment if you like // "set disassembly-flavor intel", "set print asm-demangle", ], }, ], "inputs": [ { "id": "commandLine", "type": "promptString", "description": "Usage: bun [...]", }, { "id": "testName", "type": "promptString", "description": "Usage: bun test [...]", }, ], }