From eaed969f562c84ce26fefa2d08f5a88fdca576ce Mon Sep 17 00:00:00 2001 From: Christopher Hiller Date: Wed, 13 Nov 2019 15:28:00 -0800 Subject: [PATCH] fix: correctly parse reports generated on win32 boxes; closes #62 Windows-generated reports do not have the `userLimits` prop. Adds test --- packages/common/src/report.js | 28 +- packages/common/src/util.js | 2 + .../fixture/reports/report-010-win32.json | 483 ++++++++++++++++++ .../reports/report-011-missing-prop.json | 483 ++++++++++++++++++ packages/common/test/report.spec.js | 26 + 5 files changed, 1011 insertions(+), 11 deletions(-) create mode 100644 packages/common/test/fixture/reports/report-010-win32.json create mode 100644 packages/common/test/fixture/reports/report-011-missing-prop.json create mode 100644 packages/common/test/report.spec.js diff --git a/packages/common/src/report.js b/packages/common/src/report.js index 5523e46..a23a10c 100644 --- a/packages/common/src/report.js +++ b/packages/common/src/report.js @@ -68,17 +68,23 @@ class Report { * @param {any} value */ static isReportLike(value) { - return ( - Report.isReport(value) || - (_.isObject(value) && - _.every(key => { - const hasValue = _.has(key, value); - if (!hasValue) { - debug(`report is missing prop "${key}"`); - } - return hasValue; - }, REPORT_KNOWN_ROOT_PROPERTIES)) - ); + if (Report.isReport(value)) { + return true; + } + if (_.isObject(value)) { + // win32 doesn't report 'userLimits' + const propsToCheck = + _.get('header.platform', value) === 'win32' + ? _.pull('userLimits', REPORT_KNOWN_ROOT_PROPERTIES) + : REPORT_KNOWN_ROOT_PROPERTIES; + return _.every(key => { + const hasValue = _.has(key, value); + if (!hasValue) { + debug(`report is missing prop "${key}"`); + } + return hasValue; + }, propsToCheck); + } } } diff --git a/packages/common/src/util.js b/packages/common/src/util.js index 43b26c9..4dd5836 100644 --- a/packages/common/src/util.js +++ b/packages/common/src/util.js @@ -53,6 +53,7 @@ import pick from 'lodash/fp/pick.js'; import pickBy from 'lodash/fp/pickBy.js'; import pipe from 'lodash/fp/pipe.js'; import __ from 'lodash/fp/placeholder.js'; +import pull from 'lodash/fp/pull.js'; import reduce from 'lodash/fp/reduce.js'; import reverse from 'lodash/fp/reverse.js'; import size from 'lodash/fp/size.js'; @@ -144,6 +145,7 @@ export const _ = { pick, pickBy, pipe, + pull, reduce, reverse, size, diff --git a/packages/common/test/fixture/reports/report-010-win32.json b/packages/common/test/fixture/reports/report-010-win32.json new file mode 100644 index 0000000..fc75fa7 --- /dev/null +++ b/packages/common/test/fixture/reports/report-010-win32.json @@ -0,0 +1,483 @@ +{ + "header": { + "event": "JavaScript API", + "trigger": "API", + "filename": "report.20190429.123135.45164.0.001.json", + "dumpEventTime": "2019-04-29T12:31:35Z", + "dumpEventTimeStamp": "1556566295950", + "processId": 45164, + "cwd": "/Users/boneskull/projects/christopher-hiller/report-toolkit", + "commandLine": [ + "node", + "--experimental-report", + "-e", + "process.report.writeReport()" + ], + "nodejsVersion": "v12.1.0", + "wordSize": 64, + "arch": "x64", + "platform": "win32", + "componentVersions": { + "node": "12.1.0", + "v8": "7.4.288.21-node.16", + "uv": "1.28.0", + "zlib": "1.2.11", + "brotli": "1.0.7", + "ares": "1.15.0", + "modules": "72", + "nghttp2": "1.38.0", + "napi": "4", + "llhttp": "1.1.1", + "http_parser": "2.8.0", + "openssl": "1.1.1b", + "cldr": "35.1", + "icu": "64.2", + "tz": "2019a", + "unicode": "12.1" + }, + "release": { + "name": "node", + "headersUrl": "https://nodejs.org/download/release/v12.1.0/node-v12.1.0-headers.tar.gz", + "sourceUrl": "https://nodejs.org/download/release/v12.1.0/node-v12.1.0.tar.gz" + }, + "osName": "Darwin", + "osRelease": "18.5.0", + "osVersion": "Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64", + "osMachine": "x86_64", + "cpus": [ + { + "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz", + "speed": 2700, + "user": 123707280, + "nice": 0, + "sys": 80585050, + "idle": 303826800, + "irq": 0 + } + ], + "host": "yoyodyne" + }, + "javascriptStack": { + "message": "Error [ERR_SYNTHETIC]: JavaScript Callstack", + "stack": [ + "at Object.writeReport (internal/process/report.js:16:13)", + "at [eval]:1:16", + "at Script.runInThisContext (vm.js:123:20)", + "at Object.runInThisContext (vm.js:313:38)", + "at Object. ([eval]-wrapper:9:26)", + "at Module._compile (internal/modules/cjs/loader.js:759:30)", + "at evalScript (internal/process/execution.js:79:25)" + ] + }, + "nativeStack": [ + { + "pc": "0x000000010013cc86", + "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::__1::basic_string, std::__1::allocator > const&, v8::Local) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100143fa7", + "symbol": "report::WriteReport(v8::FunctionCallbackInfo const&) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e6494", + "symbol": "v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e5aa4", + "symbol": "v8::internal::MaybeHandle v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::BuiltinArguments) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e5050", + "symbol": "v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100e9b482", + "symbol": "Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100e05904", + "symbol": "Builtins_InterpreterEntryTrampoline [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + } + ], + "javascriptHeap": { + "totalMemory": 5009408, + "totalCommittedMemory": 3317120, + "usedMemory": 2277880, + "availableMemory": 2194567328, + "memoryLimit": 2197815296, + "heapSpaces": { + "read_only_space": { + "memorySize": 524288, + "committedMemory": 32024, + "capacity": 523976, + "used": 31712, + "available": 492264 + }, + "new_space": { + "memorySize": 2097152, + "committedMemory": 1847840, + "capacity": 1047952, + "used": 826856, + "available": 221096 + }, + "old_space": { + "memorySize": 1171456, + "committedMemory": 1021208, + "capacity": 1020400, + "used": 1020272, + "available": 128 + }, + "code_space": { + "memorySize": 688128, + "committedMemory": 165984, + "capacity": 149600, + "used": 149600, + "available": 0 + }, + "map_space": { + "memorySize": 528384, + "committedMemory": 250064, + "capacity": 249440, + "used": 249440, + "available": 0 + }, + "large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 0, + "used": 0, + "available": 0 + }, + "code_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 0, + "used": 0, + "available": 0 + }, + "new_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 1047952, + "used": 0, + "available": 1047952 + } + } + }, + "resourceUsage": { + "userCpuSeconds": 0.047874, + "kernelCpuSeconds": 0.013338, + "cpuConsumptionPercent": 6.1212, + "maxRss": 23035117568, + "pageFaults": { + "IORequired": 0, + "IONotRequired": 5823 + }, + "fsActivity": { + "reads": 0, + "writes": 0 + } + }, + "libuv": [ + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x000000010301d9e0" + }, + { + "type": "timer", + "is_active": false, + "is_referenced": false, + "address": "0x0000000105041750", + "repeat": 0, + "firesInMsFromNow": -354721149, + "expired": true + }, + { + "type": "check", + "is_active": true, + "is_referenced": false, + "address": "0x00000001050417e8" + }, + { + "type": "idle", + "is_active": false, + "is_referenced": true, + "address": "0x0000000105041860" + }, + { + "type": "prepare", + "is_active": false, + "is_referenced": false, + "address": "0x00000001050418d8" + }, + { + "type": "check", + "is_active": false, + "is_referenced": false, + "address": "0x0000000105041950" + }, + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x000000010321cf80" + }, + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x00000001017c90e0" + }, + { + "type": "loop", + "is_active": false, + "address": "0x00000001017dc400" + } + ], + "environmentVariables": { + "TERM_SESSION_ID": "[REDACTED]", + "SSH_AUTH_SOCK": "[REDACTED]", + "Apple_PubSub_Socket_Render": "[REDACTED]", + "COLORFGBG": "15;0", + "ITERM_PROFILE": "yoyodyne", + "XPC_FLAGS": "0x0", + "LANG": "en_US.UTF-8", + "PWD": "/Users/boneskull/projects/christopher-hiller/report-toolkit", + "SHELL": "/usr/local/bin/zsh", + "SECURITYSESSIONID": "[REDACTED]", + "TERM_PROGRAM_VERSION": "3.2.7beta4", + "TERM_PROGRAM": "iTerm.app", + "PATH": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/ccache/libexec:/opt/X11/bin:./node_modules/.bin:/Users/boneskull/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/lib:/Users/boneskull/.antigen/bundles/zsh-users/zsh-syntax-highlighting:/Users/boneskull/.antigen/bundles/zsh-users/zsh-history-substring-search:/Users/boneskull/.antigen/bundles/zsh-users/zsh-completions:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git:/Users/boneskull/.antigen/bundles/smallhadroncollider/antigen-git-rebase:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git-extras:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/gitignore:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/github:/Users/boneskull/.antigen/bundles/denolfe/zsh-travis:/Users/boneskull/.antigen/bundles/mollifier/cd-gitroot:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/node:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/nvm:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/npm:/Users/boneskull/.antigen/bundles/tomsquest/nvm-auto-use.zsh:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/pip:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/python:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/vagrant:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/history:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/bundler:/Users/boneskull/.antigen/bundles/Tarrasch/zsh-mcd:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/osx:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/brew", + "DISPLAY": "[REDACTED]", + "COLORTERM": "truecolor", + "TERM": "xterm-256color", + "HOME": "/Users/boneskull", + "USER": "boneskull", + "XPC_SERVICE_NAME": "0", + "LOGNAME": "boneskull", + "__CF_USER_TEXT_ENCODING": "0x1F5:0x0:0x0", + "ITERM_SESSION_ID": "[REDACTED]", + "SHLVL": "1", + "OLDPWD": "/Users/boneskull/projects/christopher-hiller/report-toolkit/test", + "LESSOPEN": "| /usr/bin/env src-hilite-lesspipe.sh %s 2>/dev/null", + "LESS": " -R", + "ANTIGEN_HOME": "/usr/local/share/antigen/", + "EDITOR": "code -w", + "PAGER": "less", + "MANPAGER": "less", + "DISABLE_UNTRACKED_FILES_DIRTY": "true", + "ENABLE_CORRECTION": "true", + "DISABLE_AUTO_UPDATE": "true", + "COMPLETION_WAITING_DOTS": "true", + "NVM_DIR": "/Users/boneskull/.nvm", + "NNN_USE_EDITOR": "1", + "LDFLAGS": "-L/usr/local/opt/ruby/lib", + "CPPFLAGS": "-I/usr/local/opt/ruby/include", + "PKG_CONFIG_PATH": "/usr/local/opt/ruby/lib/pkgconfig", + "HELPDIR": "/usr/local/share/zsh/help", + "HOMEBREW_CASK_OPTS": "--appdir=/Users/boneskull/Applications", + "HOMEBREW_BREWFILE": "/Users/boneskull/.Brewfile", + "NNN_BMS": "d:/Users/boneskull/downloads;p:/Users/boneskull/projects", + "GITHUB_USER": "boneskull", + "BAT_STYLE": "changes,header", + "NVM_CD_FLAGS": "-q", + "JEKYLL_GITHUB_TOKEN": "[REDACTED]", + "NAME_YOUR_CONTRIBUTORS_GITHUB_TOKEN": "[REDACTED]", + "SAUCE_USERNAME": "mochajs", + "SAUCE_ACCESS_KEY": "[REDACTED]", + "LC_CTYPE": "en_US.UTF-8", + "LSCOLORS": "Gxfxcxdxbxegedabagacad", + "TMPDIR": "/var/folders/74/p0gxrmy93fq88nm66cs7z42h0000gn/T/", + "NVM_BIN": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin", + "_": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node" + }, + "sharedObjects": [ + "/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node", + "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation", + "/usr/lib/libSystem.B.dylib", + "/usr/lib/libc++.1.dylib", + "/usr/lib/libobjc.A.dylib", + "/usr/lib/libdiagnosticMessagesClient.dylib", + "/usr/lib/libicucore.A.dylib", + "/usr/lib/libz.1.dylib", + "/usr/lib/libc++abi.dylib", + "/usr/lib/system/libcache.dylib", + "/usr/lib/system/libcommonCrypto.dylib", + "/usr/lib/system/libcompiler_rt.dylib", + "/usr/lib/system/libcopyfile.dylib", + "/usr/lib/system/libcorecrypto.dylib", + "/usr/lib/system/libdispatch.dylib", + "/usr/lib/system/libdyld.dylib", + "/usr/lib/system/libkeymgr.dylib", + "/usr/lib/system/liblaunch.dylib", + "/usr/lib/system/libmacho.dylib", + "/usr/lib/system/libquarantine.dylib", + "/usr/lib/system/libremovefile.dylib", + "/usr/lib/system/libsystem_asl.dylib", + "/usr/lib/system/libsystem_blocks.dylib", + "/usr/lib/system/libsystem_c.dylib", + "/usr/lib/system/libsystem_configuration.dylib", + "/usr/lib/system/libsystem_coreservices.dylib", + "/usr/lib/system/libsystem_darwin.dylib", + "/usr/lib/system/libsystem_dnssd.dylib", + "/usr/lib/system/libsystem_info.dylib", + "/usr/lib/system/libsystem_m.dylib", + "/usr/lib/system/libsystem_malloc.dylib", + "/usr/lib/system/libsystem_networkextension.dylib", + "/usr/lib/system/libsystem_notify.dylib", + "/usr/lib/system/libsystem_sandbox.dylib", + "/usr/lib/system/libsystem_secinit.dylib", + "/usr/lib/system/libsystem_kernel.dylib", + "/usr/lib/system/libsystem_platform.dylib", + "/usr/lib/system/libsystem_pthread.dylib", + "/usr/lib/system/libsystem_symptoms.dylib", + "/usr/lib/system/libsystem_trace.dylib", + "/usr/lib/system/libunwind.dylib", + "/usr/lib/system/libxpc.dylib", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices", + "/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics", + "/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO", + "/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis", + "/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight", + "/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface", + "/usr/lib/libxml2.2.dylib", + "/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate", + "/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation", + "/usr/lib/libcompression.dylib", + "/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration", + "/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay", + "/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit", + "/System/Library/Frameworks/Metal.framework/Versions/A/Metal", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders", + "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport", + "/System/Library/Frameworks/Security.framework/Versions/A/Security", + "/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore", + "/usr/lib/libbsm.0.dylib", + "/usr/lib/liblzma.5.dylib", + "/usr/lib/libauto.dylib", + "/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration", + "/usr/lib/libarchive.2.dylib", + "/usr/lib/liblangid.dylib", + "/usr/lib/libCRFSuite.dylib", + "/usr/lib/libenergytrace.dylib", + "/usr/lib/system/libkxld.dylib", + "/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression", + "/usr/lib/libOpenScriptingUtil.dylib", + "/usr/lib/libcoretls.dylib", + "/usr/lib/libcoretls_cfhelpers.dylib", + "/usr/lib/libpam.2.dylib", + "/usr/lib/libsqlite3.dylib", + "/usr/lib/libxar.1.dylib", + "/usr/lib/libbz2.1.0.dylib", + "/usr/lib/libnetwork.dylib", + "/usr/lib/libapple_nghttp2.dylib", + "/usr/lib/libpcap.A.dylib", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList", + "/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS", + "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth", + "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport", + "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC", + "/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP", + "/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities", + "/usr/lib/libmecabra.dylib", + "/usr/lib/libmecab.1.0.0.dylib", + "/usr/lib/libgermantok.dylib", + "/usr/lib/libThaiTokenizer.dylib", + "/usr/lib/libChineseTokenizer.dylib", + "/usr/lib/libiconv.2.dylib", + "/usr/lib/libcharset.1.dylib", + "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling", + "/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji", + "/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon", + "/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData", + "/usr/lib/libcmph.dylib", + "/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData", + "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory", + "/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS", + "/usr/lib/libutil.dylib", + "/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement", + "/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement", + "/usr/lib/libxslt.1.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib", + "/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler", + "/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator", + "/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment", + "/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector", + "/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools", + "/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary", + "/usr/lib/libMobileGestalt.dylib", + "/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage", + "/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL", + "/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer", + "/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore", + "/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL", + "/usr/lib/libFosl_dynamic.dylib", + "/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib", + "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib", + "/usr/lib/libcups.2.dylib", + "/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos", + "/System/Library/Frameworks/GSS.framework/Versions/A/GSS", + "/usr/lib/libresolv.9.dylib", + "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal", + "/usr/lib/libheimdal-asn1.dylib", + "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory", + "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth", + "/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation", + "/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio", + "/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox", + "/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce", + "/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices", + "/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard" + ] +} diff --git a/packages/common/test/fixture/reports/report-011-missing-prop.json b/packages/common/test/fixture/reports/report-011-missing-prop.json new file mode 100644 index 0000000..2ccac29 --- /dev/null +++ b/packages/common/test/fixture/reports/report-011-missing-prop.json @@ -0,0 +1,483 @@ +{ + "header": { + "event": "JavaScript API", + "trigger": "API", + "filename": "report.20190429.123135.45164.0.001.json", + "dumpEventTime": "2019-04-29T12:31:35Z", + "dumpEventTimeStamp": "1556566295950", + "processId": 45164, + "cwd": "/Users/boneskull/projects/christopher-hiller/report-toolkit", + "commandLine": [ + "node", + "--experimental-report", + "-e", + "process.report.writeReport()" + ], + "nodejsVersion": "v12.1.0", + "wordSize": 64, + "arch": "x64", + "platform": "darwin", + "componentVersions": { + "node": "12.1.0", + "v8": "7.4.288.21-node.16", + "uv": "1.28.0", + "zlib": "1.2.11", + "brotli": "1.0.7", + "ares": "1.15.0", + "modules": "72", + "nghttp2": "1.38.0", + "napi": "4", + "llhttp": "1.1.1", + "http_parser": "2.8.0", + "openssl": "1.1.1b", + "cldr": "35.1", + "icu": "64.2", + "tz": "2019a", + "unicode": "12.1" + }, + "release": { + "name": "node", + "headersUrl": "https://nodejs.org/download/release/v12.1.0/node-v12.1.0-headers.tar.gz", + "sourceUrl": "https://nodejs.org/download/release/v12.1.0/node-v12.1.0.tar.gz" + }, + "osName": "Darwin", + "osRelease": "18.5.0", + "osVersion": "Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64", + "osMachine": "x86_64", + "cpus": [ + { + "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz", + "speed": 2700, + "user": 123707280, + "nice": 0, + "sys": 80585050, + "idle": 303826800, + "irq": 0 + } + ], + "host": "yoyodyne" + }, + "javascriptStack": { + "message": "Error [ERR_SYNTHETIC]: JavaScript Callstack", + "stack": [ + "at Object.writeReport (internal/process/report.js:16:13)", + "at [eval]:1:16", + "at Script.runInThisContext (vm.js:123:20)", + "at Object.runInThisContext (vm.js:313:38)", + "at Object. ([eval]-wrapper:9:26)", + "at Module._compile (internal/modules/cjs/loader.js:759:30)", + "at evalScript (internal/process/execution.js:79:25)" + ] + }, + "nativeStack": [ + { + "pc": "0x000000010013cc86", + "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::__1::basic_string, std::__1::allocator > const&, v8::Local) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100143fa7", + "symbol": "report::WriteReport(v8::FunctionCallbackInfo const&) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e6494", + "symbol": "v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e5aa4", + "symbol": "v8::internal::MaybeHandle v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::BuiltinArguments) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x00000001001e5050", + "symbol": "v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100e9b482", + "symbol": "Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + }, + { + "pc": "0x0000000100e05904", + "symbol": "Builtins_InterpreterEntryTrampoline [/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node]" + } + ], + "javascriptHeap": { + "totalMemory": 5009408, + "totalCommittedMemory": 3317120, + "usedMemory": 2277880, + "availableMemory": 2194567328, + "memoryLimit": 2197815296, + "heapSpaces": { + "read_only_space": { + "memorySize": 524288, + "committedMemory": 32024, + "capacity": 523976, + "used": 31712, + "available": 492264 + }, + "new_space": { + "memorySize": 2097152, + "committedMemory": 1847840, + "capacity": 1047952, + "used": 826856, + "available": 221096 + }, + "old_space": { + "memorySize": 1171456, + "committedMemory": 1021208, + "capacity": 1020400, + "used": 1020272, + "available": 128 + }, + "code_space": { + "memorySize": 688128, + "committedMemory": 165984, + "capacity": 149600, + "used": 149600, + "available": 0 + }, + "map_space": { + "memorySize": 528384, + "committedMemory": 250064, + "capacity": 249440, + "used": 249440, + "available": 0 + }, + "large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 0, + "used": 0, + "available": 0 + }, + "code_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 0, + "used": 0, + "available": 0 + }, + "new_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 1047952, + "used": 0, + "available": 1047952 + } + } + }, + "resourceUsage": { + "userCpuSeconds": 0.047874, + "kernelCpuSeconds": 0.013338, + "cpuConsumptionPercent": 6.1212, + "maxRss": 23035117568, + "pageFaults": { + "IORequired": 0, + "IONotRequired": 5823 + }, + "fsActivity": { + "reads": 0, + "writes": 0 + } + }, + "libuv": [ + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x000000010301d9e0" + }, + { + "type": "timer", + "is_active": false, + "is_referenced": false, + "address": "0x0000000105041750", + "repeat": 0, + "firesInMsFromNow": -354721149, + "expired": true + }, + { + "type": "check", + "is_active": true, + "is_referenced": false, + "address": "0x00000001050417e8" + }, + { + "type": "idle", + "is_active": false, + "is_referenced": true, + "address": "0x0000000105041860" + }, + { + "type": "prepare", + "is_active": false, + "is_referenced": false, + "address": "0x00000001050418d8" + }, + { + "type": "check", + "is_active": false, + "is_referenced": false, + "address": "0x0000000105041950" + }, + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x000000010321cf80" + }, + { + "type": "async", + "is_active": true, + "is_referenced": false, + "address": "0x00000001017c90e0" + }, + { + "type": "loop", + "is_active": false, + "address": "0x00000001017dc400" + } + ], + "environmentVariables": { + "TERM_SESSION_ID": "[REDACTED]", + "SSH_AUTH_SOCK": "[REDACTED]", + "Apple_PubSub_Socket_Render": "[REDACTED]", + "COLORFGBG": "15;0", + "ITERM_PROFILE": "yoyodyne", + "XPC_FLAGS": "0x0", + "LANG": "en_US.UTF-8", + "PWD": "/Users/boneskull/projects/christopher-hiller/report-toolkit", + "SHELL": "/usr/local/bin/zsh", + "SECURITYSESSIONID": "[REDACTED]", + "TERM_PROGRAM_VERSION": "3.2.7beta4", + "TERM_PROGRAM": "iTerm.app", + "PATH": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/ccache/libexec:/opt/X11/bin:./node_modules/.bin:/Users/boneskull/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/lib:/Users/boneskull/.antigen/bundles/zsh-users/zsh-syntax-highlighting:/Users/boneskull/.antigen/bundles/zsh-users/zsh-history-substring-search:/Users/boneskull/.antigen/bundles/zsh-users/zsh-completions:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git:/Users/boneskull/.antigen/bundles/smallhadroncollider/antigen-git-rebase:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git-extras:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/gitignore:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/github:/Users/boneskull/.antigen/bundles/denolfe/zsh-travis:/Users/boneskull/.antigen/bundles/mollifier/cd-gitroot:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/node:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/nvm:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/npm:/Users/boneskull/.antigen/bundles/tomsquest/nvm-auto-use.zsh:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/pip:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/python:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/vagrant:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/history:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/bundler:/Users/boneskull/.antigen/bundles/Tarrasch/zsh-mcd:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/osx:/Users/boneskull/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/brew", + "DISPLAY": "[REDACTED]", + "COLORTERM": "truecolor", + "TERM": "xterm-256color", + "HOME": "/Users/boneskull", + "USER": "boneskull", + "XPC_SERVICE_NAME": "0", + "LOGNAME": "boneskull", + "__CF_USER_TEXT_ENCODING": "0x1F5:0x0:0x0", + "ITERM_SESSION_ID": "[REDACTED]", + "SHLVL": "1", + "OLDPWD": "/Users/boneskull/projects/christopher-hiller/report-toolkit/test", + "LESSOPEN": "| /usr/bin/env src-hilite-lesspipe.sh %s 2>/dev/null", + "LESS": " -R", + "ANTIGEN_HOME": "/usr/local/share/antigen/", + "EDITOR": "code -w", + "PAGER": "less", + "MANPAGER": "less", + "DISABLE_UNTRACKED_FILES_DIRTY": "true", + "ENABLE_CORRECTION": "true", + "DISABLE_AUTO_UPDATE": "true", + "COMPLETION_WAITING_DOTS": "true", + "NVM_DIR": "/Users/boneskull/.nvm", + "NNN_USE_EDITOR": "1", + "LDFLAGS": "-L/usr/local/opt/ruby/lib", + "CPPFLAGS": "-I/usr/local/opt/ruby/include", + "PKG_CONFIG_PATH": "/usr/local/opt/ruby/lib/pkgconfig", + "HELPDIR": "/usr/local/share/zsh/help", + "HOMEBREW_CASK_OPTS": "--appdir=/Users/boneskull/Applications", + "HOMEBREW_BREWFILE": "/Users/boneskull/.Brewfile", + "NNN_BMS": "d:/Users/boneskull/downloads;p:/Users/boneskull/projects", + "GITHUB_USER": "boneskull", + "BAT_STYLE": "changes,header", + "NVM_CD_FLAGS": "-q", + "JEKYLL_GITHUB_TOKEN": "[REDACTED]", + "NAME_YOUR_CONTRIBUTORS_GITHUB_TOKEN": "[REDACTED]", + "SAUCE_USERNAME": "mochajs", + "SAUCE_ACCESS_KEY": "[REDACTED]", + "LC_CTYPE": "en_US.UTF-8", + "LSCOLORS": "Gxfxcxdxbxegedabagacad", + "TMPDIR": "/var/folders/74/p0gxrmy93fq88nm66cs7z42h0000gn/T/", + "NVM_BIN": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin", + "_": "/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node" + }, + "sharedObjects": [ + "/Users/boneskull/.nvm/versions/node/v12.1.0/bin/node", + "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation", + "/usr/lib/libSystem.B.dylib", + "/usr/lib/libc++.1.dylib", + "/usr/lib/libobjc.A.dylib", + "/usr/lib/libdiagnosticMessagesClient.dylib", + "/usr/lib/libicucore.A.dylib", + "/usr/lib/libz.1.dylib", + "/usr/lib/libc++abi.dylib", + "/usr/lib/system/libcache.dylib", + "/usr/lib/system/libcommonCrypto.dylib", + "/usr/lib/system/libcompiler_rt.dylib", + "/usr/lib/system/libcopyfile.dylib", + "/usr/lib/system/libcorecrypto.dylib", + "/usr/lib/system/libdispatch.dylib", + "/usr/lib/system/libdyld.dylib", + "/usr/lib/system/libkeymgr.dylib", + "/usr/lib/system/liblaunch.dylib", + "/usr/lib/system/libmacho.dylib", + "/usr/lib/system/libquarantine.dylib", + "/usr/lib/system/libremovefile.dylib", + "/usr/lib/system/libsystem_asl.dylib", + "/usr/lib/system/libsystem_blocks.dylib", + "/usr/lib/system/libsystem_c.dylib", + "/usr/lib/system/libsystem_configuration.dylib", + "/usr/lib/system/libsystem_coreservices.dylib", + "/usr/lib/system/libsystem_darwin.dylib", + "/usr/lib/system/libsystem_dnssd.dylib", + "/usr/lib/system/libsystem_info.dylib", + "/usr/lib/system/libsystem_m.dylib", + "/usr/lib/system/libsystem_malloc.dylib", + "/usr/lib/system/libsystem_networkextension.dylib", + "/usr/lib/system/libsystem_notify.dylib", + "/usr/lib/system/libsystem_sandbox.dylib", + "/usr/lib/system/libsystem_secinit.dylib", + "/usr/lib/system/libsystem_kernel.dylib", + "/usr/lib/system/libsystem_platform.dylib", + "/usr/lib/system/libsystem_pthread.dylib", + "/usr/lib/system/libsystem_symptoms.dylib", + "/usr/lib/system/libsystem_trace.dylib", + "/usr/lib/system/libunwind.dylib", + "/usr/lib/system/libxpc.dylib", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices", + "/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics", + "/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO", + "/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis", + "/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight", + "/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface", + "/usr/lib/libxml2.2.dylib", + "/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate", + "/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation", + "/usr/lib/libcompression.dylib", + "/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration", + "/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay", + "/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit", + "/System/Library/Frameworks/Metal.framework/Versions/A/Metal", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders", + "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport", + "/System/Library/Frameworks/Security.framework/Versions/A/Security", + "/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore", + "/usr/lib/libbsm.0.dylib", + "/usr/lib/liblzma.5.dylib", + "/usr/lib/libauto.dylib", + "/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration", + "/usr/lib/libarchive.2.dylib", + "/usr/lib/liblangid.dylib", + "/usr/lib/libCRFSuite.dylib", + "/usr/lib/libenergytrace.dylib", + "/usr/lib/system/libkxld.dylib", + "/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression", + "/usr/lib/libOpenScriptingUtil.dylib", + "/usr/lib/libcoretls.dylib", + "/usr/lib/libcoretls_cfhelpers.dylib", + "/usr/lib/libpam.2.dylib", + "/usr/lib/libsqlite3.dylib", + "/usr/lib/libxar.1.dylib", + "/usr/lib/libbz2.1.0.dylib", + "/usr/lib/libnetwork.dylib", + "/usr/lib/libapple_nghttp2.dylib", + "/usr/lib/libpcap.A.dylib", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices", + "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList", + "/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS", + "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth", + "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport", + "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC", + "/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP", + "/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities", + "/usr/lib/libmecabra.dylib", + "/usr/lib/libmecab.1.0.0.dylib", + "/usr/lib/libgermantok.dylib", + "/usr/lib/libThaiTokenizer.dylib", + "/usr/lib/libChineseTokenizer.dylib", + "/usr/lib/libiconv.2.dylib", + "/usr/lib/libcharset.1.dylib", + "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling", + "/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji", + "/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon", + "/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData", + "/usr/lib/libcmph.dylib", + "/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData", + "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory", + "/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS", + "/usr/lib/libutil.dylib", + "/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement", + "/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement", + "/usr/lib/libxslt.1.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib", + "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib", + "/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler", + "/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator", + "/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment", + "/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix", + "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector", + "/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools", + "/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary", + "/usr/lib/libMobileGestalt.dylib", + "/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage", + "/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL", + "/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer", + "/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore", + "/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL", + "/usr/lib/libFosl_dynamic.dylib", + "/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib", + "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib", + "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib", + "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib", + "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib", + "/usr/lib/libcups.2.dylib", + "/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos", + "/System/Library/Frameworks/GSS.framework/Versions/A/GSS", + "/usr/lib/libresolv.9.dylib", + "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal", + "/usr/lib/libheimdal-asn1.dylib", + "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory", + "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth", + "/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation", + "/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio", + "/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox", + "/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce", + "/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices", + "/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard" + ] +} diff --git a/packages/common/test/report.spec.js b/packages/common/test/report.spec.js new file mode 100644 index 0000000..252f1b8 --- /dev/null +++ b/packages/common/test/report.spec.js @@ -0,0 +1,26 @@ +import {isReportLike} from '../src/report.js'; + +const REPORT_010_FILEPATH = require.resolve( + './fixture/reports/report-010-win32.json' +); +const REPORT_011_FILEPATH = require.resolve( + './fixture/reports/report-011-missing-prop.json' +); + +describe('@report-toolkit/common:report', function() { + describe('class Report', function() { + describe('static method', function() { + describe('isReportLike', function() { + it('should return `true` for a report generated on a win32 box (missing "userLimits")', function() { + const report = require(REPORT_010_FILEPATH); + expect(isReportLike(report), 'to be true'); + }); + + it('should return `false` for a report otherwise missing a property', function() { + const report = require(REPORT_011_FILEPATH); + expect(isReportLike(report), 'to be false'); + }); + }); + }); + }); +});