Checkpoint web parity through Chromium input tasks
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"errorContract": {
|
||||
"path": "web/protocol/error.ts",
|
||||
"sha256": "309ab84d5c755a69466ddb73e4b54e87caf62cbcac0f10f34d904e9f6f4a5f34"
|
||||
"sha256": "751c70c898540fa7e82fb1b1a79254756ec8db8e4201a88b6d817d7c3d92103f"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-asset-catalog-compatibility.mjs",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"generatorSettingsSha256": "07ebc55d4b6cbb293badf0640874846912df3d23549997cf6f87f4c325280ca0",
|
||||
"artifacts": {
|
||||
"protocol": { "path": "web/protocol/asset-preview.ts", "sha256": "2a1d877af42424014097c669e9d44c21b27e3171be185320554693cbefcd7438" },
|
||||
"errorContract": { "path": "web/protocol/error.ts", "sha256": "6aec7b8a9d6903d83ae67718db3ae775d709cabb207cf2a02968d4ff7c5f26c0" },
|
||||
"errorContract": { "path": "web/protocol/error.ts", "sha256": "751c70c898540fa7e82fb1b1a79254756ec8db8e4201a88b6d817d7c3d92103f" },
|
||||
"generator": { "path": "tools/web/generate-asset-preview-identity.py", "sha256": "753a26be90f7d97828737ebc3a4ab88275a7c655b4f9992406c7c35fba6535ce" },
|
||||
"blender": { "path": "build_blender_5.2.0/bin/blender", "sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82" },
|
||||
"source": { "path": "tests/files/web/media/sequencer-frame.png", "sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed" },
|
||||
|
||||
40
tests/golden/M12-03E/manifest.json
Normal file
40
tests/golden/M12-03E/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03E",
|
||||
"parentTask": "M12-03D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_WASM_CHROMIUM",
|
||||
"operation": "APPEND",
|
||||
"canonicalComparison": "DESKTOP_REPORT_EXACT_AFTER_IMAGE_ROW_NORMALIZATION_AND_SCENEIR_COLORSPACE_DEFAULT",
|
||||
"assertions": {
|
||||
"transactionCount": 1,
|
||||
"revisionDelta": 1,
|
||||
"undoRemovesClosure": true,
|
||||
"redoRestoresCanonical": true,
|
||||
"saveReopenRestoresCanonical": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03C/manifest.json",
|
||||
"sha256": "cbfbd8c919125108334dd24925b9ef8e69880983515e56841e6ead4a2b182aed"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-03C/desktop-append-report.json",
|
||||
"sha256": "b1d7b8b9e832d18d69081f63981062800e0f00f0c9aec025b18274510ed76e2a"
|
||||
},
|
||||
"test": {
|
||||
"path": "web/tests/e2e/library-append-main.spec.ts",
|
||||
"sha256": "101f67d35c2320da57459f08a59687d769234b910dbd9aaec5a668cee7e0f9f0"
|
||||
},
|
||||
"sourceBlend": {
|
||||
"path": "tests/files/web/m12_library_append_v1/m12_append_source.blend",
|
||||
"sha256": "5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606"
|
||||
},
|
||||
"targetBlend": {
|
||||
"path": "tests/files/web/empty.blend",
|
||||
"sha256": "9b1ecbcc3d7f8079ee5469de64193ffcaa0a7b01e0f2ac340bbb18aa88734a63"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03F"
|
||||
}
|
||||
202
tests/golden/M12-03F/desktop-link-report.json
Normal file
202
tests/golden/M12-03F/desktop-link-report.json
Normal file
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0",
|
||||
"linkedGraph": {
|
||||
"edges": [
|
||||
{
|
||||
"from": "Object/M12 Link Object",
|
||||
"relation": "OBJECT_DATA",
|
||||
"to": "Mesh/M12 Link Mesh"
|
||||
},
|
||||
{
|
||||
"from": "Mesh/M12 Link Mesh",
|
||||
"relation": "MATERIAL_SLOT[0]",
|
||||
"to": "Material/M12 Link Material"
|
||||
},
|
||||
{
|
||||
"from": "Material/M12 Link Material",
|
||||
"relation": "NODE_IMAGE[M12 Link Image Node]",
|
||||
"to": "Image/M12 Link Image"
|
||||
}
|
||||
],
|
||||
"geometry": {
|
||||
"edges": 4,
|
||||
"loops": 4,
|
||||
"materialSlots": [
|
||||
"M12 Link Material"
|
||||
],
|
||||
"polygons": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertices": 4
|
||||
},
|
||||
"ids": {
|
||||
"IMAGE": {
|
||||
"idType": "IMAGE",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_link_source.blend",
|
||||
"name": "M12 Link Image",
|
||||
"nameFull": "M12 Link Image [m12_link_source.blend]"
|
||||
},
|
||||
"MATERIAL": {
|
||||
"idType": "MATERIAL",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_link_source.blend",
|
||||
"name": "M12 Link Material",
|
||||
"nameFull": "M12 Link Material [m12_link_source.blend]"
|
||||
},
|
||||
"MESH": {
|
||||
"idType": "MESH",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_link_source.blend",
|
||||
"name": "M12 Link Mesh",
|
||||
"nameFull": "M12 Link Mesh [m12_link_source.blend]"
|
||||
},
|
||||
"OBJECT": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_link_source.blend",
|
||||
"name": "M12 Link Object",
|
||||
"nameFull": "M12 Link Object [m12_link_source.blend]"
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"channels": 4,
|
||||
"colorspace": "sRGB",
|
||||
"packed": true,
|
||||
"pixelFloat32Sha256": "6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a",
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"root": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_link_source.blend",
|
||||
"name": "M12 Link Object",
|
||||
"nameFull": "M12 Link Object [m12_link_source.blend]"
|
||||
},
|
||||
"sourceMarker": "M12-03F"
|
||||
},
|
||||
"nextTask": "M12-03G",
|
||||
"operation": "LINK",
|
||||
"schemaVersion": 1,
|
||||
"selectedRoots": [
|
||||
"Object/M12 Link Object"
|
||||
],
|
||||
"source": {
|
||||
"file": "m12_link_source.blend",
|
||||
"sha256": "fae97569e9d2e2066fc92749672f86cc42717cd9b97b012faeb9eb92015d7fd1"
|
||||
},
|
||||
"sourceGraph": {
|
||||
"edges": [
|
||||
{
|
||||
"from": "Object/M12 Link Object",
|
||||
"relation": "OBJECT_DATA",
|
||||
"to": "Mesh/M12 Link Mesh"
|
||||
},
|
||||
{
|
||||
"from": "Mesh/M12 Link Mesh",
|
||||
"relation": "MATERIAL_SLOT[0]",
|
||||
"to": "Material/M12 Link Material"
|
||||
},
|
||||
{
|
||||
"from": "Material/M12 Link Material",
|
||||
"relation": "NODE_IMAGE[M12 Link Image Node]",
|
||||
"to": "Image/M12 Link Image"
|
||||
}
|
||||
],
|
||||
"geometry": {
|
||||
"edges": 4,
|
||||
"loops": 4,
|
||||
"materialSlots": [
|
||||
"M12 Link Material"
|
||||
],
|
||||
"polygons": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertices": 4
|
||||
},
|
||||
"ids": {
|
||||
"IMAGE": {
|
||||
"idType": "IMAGE",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Link Image",
|
||||
"nameFull": "M12 Link Image"
|
||||
},
|
||||
"MATERIAL": {
|
||||
"idType": "MATERIAL",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Link Material",
|
||||
"nameFull": "M12 Link Material"
|
||||
},
|
||||
"MESH": {
|
||||
"idType": "MESH",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Link Mesh",
|
||||
"nameFull": "M12 Link Mesh"
|
||||
},
|
||||
"OBJECT": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Link Object",
|
||||
"nameFull": "M12 Link Object"
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"channels": 4,
|
||||
"colorspace": "sRGB",
|
||||
"packed": true,
|
||||
"pixelFloat32Sha256": "6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a",
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"root": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Link Object",
|
||||
"nameFull": "M12 Link Object"
|
||||
},
|
||||
"sourceMarker": "M12-03F"
|
||||
},
|
||||
"stableMapping": [
|
||||
{
|
||||
"local": "Object/M12 Link Object",
|
||||
"owner": "SOURCE_LIBRARY",
|
||||
"readOnly": true,
|
||||
"source": "Object/M12 Link Object"
|
||||
},
|
||||
{
|
||||
"local": "Mesh/M12 Link Mesh",
|
||||
"owner": "SOURCE_LIBRARY",
|
||||
"readOnly": true,
|
||||
"source": "Mesh/M12 Link Mesh"
|
||||
},
|
||||
{
|
||||
"local": "Material/M12 Link Material",
|
||||
"owner": "SOURCE_LIBRARY",
|
||||
"readOnly": true,
|
||||
"source": "Material/M12 Link Material"
|
||||
},
|
||||
{
|
||||
"local": "Image/M12 Link Image",
|
||||
"owner": "SOURCE_LIBRARY",
|
||||
"readOnly": true,
|
||||
"source": "Image/M12 Link Image"
|
||||
}
|
||||
],
|
||||
"target": {
|
||||
"file": "m12_link_target.blend",
|
||||
"sha256": "acdaf0f297deb08c84e1a8beba30972e3414ef62e60e3b103fe0661199c438a1"
|
||||
},
|
||||
"task": "M12-03F"
|
||||
}
|
||||
43
tests/golden/M12-03F/manifest.json
Normal file
43
tests/golden/M12-03F/manifest.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03F",
|
||||
"parentTask": "M12-03E",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "LINK",
|
||||
"assertions": {
|
||||
"selectedRoots": 1,
|
||||
"dependencyClosure": 4,
|
||||
"linkedOwnership": "SOURCE_LIBRARY",
|
||||
"readOnly": true,
|
||||
"saveReopenStable": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03E/manifest.json",
|
||||
"sha256": "beaa88ea0385225e712f9816072420bd8744c15da3229ddc352462abec407739"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-library-link-fixture.py",
|
||||
"sha256": "15a2e34c1c5b2a8ee63b10084dbb894e0f9677b9e1cf4adb7e2ddce6b4c965b1"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-library-link-fixture.mjs",
|
||||
"sha256": "6a4c024bea227d7bc14f793467b91766b006459fe4d7717cc75dfee12f49f894"
|
||||
},
|
||||
"sourceBlend": {
|
||||
"path": "tests/files/web/m12_library_link_v1/m12_link_source.blend",
|
||||
"sha256": "fae97569e9d2e2066fc92749672f86cc42717cd9b97b012faeb9eb92015d7fd1"
|
||||
},
|
||||
"targetBlend": {
|
||||
"path": "tests/files/web/m12_library_link_v1/m12_link_target.blend",
|
||||
"sha256": "acdaf0f297deb08c84e1a8beba30972e3414ef62e60e3b103fe0661199c438a1"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-03F/desktop-link-report.json",
|
||||
"sha256": "b278d4c254eff63d41c8cb3ea1d5e0984192137d45b1695ba0672e16f95b58ea"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03G"
|
||||
}
|
||||
35
tests/golden/M12-03G/manifest.json
Normal file
35
tests/golden/M12-03G/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03G",
|
||||
"parentTask": "M12-03F",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LINK",
|
||||
"assertions": {
|
||||
"writerOperations": 6,
|
||||
"linkedMutationCode": "LINKED_DATA_MUTATION_BLOCKED",
|
||||
"staleRevisionCode": "REVISION_CONFLICT",
|
||||
"mainMutation": false,
|
||||
"recoverable": false
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03F/manifest.json",
|
||||
"sha256": "8220a8f5d560d45a75a62cbed645b3febc1390fe37b07c3c48871fefc1a9b159"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-linked-mutation.ts",
|
||||
"sha256": "f629e0e7e04dc1f5437b6e2ca62fbe35484fc238830fa47e8358bcab46b7e104"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-linked-mutation.test.mjs",
|
||||
"sha256": "f19d47cefe89daf6123062e045ec717e6ffe60977e8a4b20c996dd62e49da211"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03H"
|
||||
}
|
||||
35
tests/golden/M12-03H/manifest.json
Normal file
35
tests/golden/M12-03H/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03H",
|
||||
"parentTask": "M12-03G",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LINK_RELOAD",
|
||||
"assertions": {
|
||||
"matchingGenerationOnly": true,
|
||||
"replacementGenerationStep": 1,
|
||||
"staleCode": "REVISION_CONFLICT",
|
||||
"preservesUnrelatedSnapshots": true,
|
||||
"readOnlyOwner": "SOURCE_LIBRARY"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03G/manifest.json",
|
||||
"sha256": "ce7aba32499dbd22bce3bc78c4b0322f830e5d2648a47ce2d25271adf284dddb"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-linked-reload.ts",
|
||||
"sha256": "8be6f0b2abe36cd566ea7447d1b7de44c0e6a9a7351b863dfdd1372c1761060e"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-linked-reload.test.mjs",
|
||||
"sha256": "dff866291468cc01e775fe3b3b95c632f5c0742566f79b956a0193bfd8fd43d2"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03I"
|
||||
}
|
||||
37
tests/golden/M12-03I/manifest.json
Normal file
37
tests/golden/M12-03I/manifest.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03I",
|
||||
"parentTask": "M12-03H",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LINK_MISSING",
|
||||
"assertions": {
|
||||
"missingStatus": "MISSING",
|
||||
"placeholderKind": "MISSING_LIBRARY",
|
||||
"preservesSourceLocator": true,
|
||||
"preservesSourceSha256": true,
|
||||
"preservesDataBlockIds": true,
|
||||
"staleCode": "REVISION_CONFLICT",
|
||||
"sourceDriftCode": "ASSET_SOURCE_HASH_MISMATCH"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03H/manifest.json",
|
||||
"sha256": "72d3cf9a22d8a2015a7b8fcbc0496425a354e09cec56fd85949561e6b3700009"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-linked-missing.ts",
|
||||
"sha256": "5833e8c943ef6bd866a93a0e1666c9521fa6d3e8358861df57b628874b679ec2"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-linked-missing.test.mjs",
|
||||
"sha256": "4ab6d6ff4845b4ca963399e7eea214ceb412871dc1fdef5bac1ed0333596da4f"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03J"
|
||||
}
|
||||
47
tests/golden/M12-03J/desktop-override-report.json
Normal file
47
tests/golden/M12-03J/desktop-override-report.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0",
|
||||
"nextTask": "M12-03K",
|
||||
"operation": "LIBRARY_OVERRIDE",
|
||||
"overrideGraph": {
|
||||
"local": {
|
||||
"dataBlockId": "Object/M12 Override Object",
|
||||
"hierarchyRootDataBlockId": "Object/M12 Override Object",
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": true,
|
||||
"library": null,
|
||||
"owner": "LOCAL_OVERRIDE",
|
||||
"projectId": "m12-03j-project",
|
||||
"readOnly": false,
|
||||
"referenceSourceDataBlockId": "Object/M12 Override Object"
|
||||
},
|
||||
"propertyOverride": {
|
||||
"index": 0,
|
||||
"operationCount": 1,
|
||||
"propertyCount": 1,
|
||||
"rnaPath": "[\"m12_override_value\"]",
|
||||
"value": 2.5
|
||||
},
|
||||
"reference": {
|
||||
"dataBlockId": "Object/M12 Override Object",
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": "m12_override_source.blend",
|
||||
"owner": "SOURCE_LIBRARY",
|
||||
"readOnly": true
|
||||
},
|
||||
"sourceMarker": "M12-03J"
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"selectedRoots": [
|
||||
"Object/M12 Override Object"
|
||||
],
|
||||
"source": {
|
||||
"file": "m12_override_source.blend",
|
||||
"sha256": "d7f8d78e7e91481bf46ecc9a6bcb01e900a6a397839dd31ab80a53def7675601"
|
||||
},
|
||||
"target": {
|
||||
"file": "m12_override_target.blend",
|
||||
"sha256": "b008a1608ff1e8f679e1e1281bf7be0360f1137e815dd890cbd93e1e98675495"
|
||||
},
|
||||
"task": "M12-03J"
|
||||
}
|
||||
50
tests/golden/M12-03J/manifest.json
Normal file
50
tests/golden/M12-03J/manifest.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03J",
|
||||
"parentTask": "M12-03I",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "LIBRARY_OVERRIDE",
|
||||
"assertions": {
|
||||
"selectedRoots": 1,
|
||||
"referenceOwner": "SOURCE_LIBRARY",
|
||||
"referenceReadOnly": true,
|
||||
"localOwner": "LOCAL_OVERRIDE",
|
||||
"localReadOnly": false,
|
||||
"propertyPath": "[\\\"m12_override_value\\\"]",
|
||||
"propertyValue": 2.5,
|
||||
"saveReopenStable": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03I/manifest.json",
|
||||
"sha256": "f5fa606161b93e9ee42e7ca8144d2a83379acf601c5045eb8cc76732f8dba431"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-library-override-fixture.py",
|
||||
"sha256": "2cdbac04cac7240360a9d70919380fd90f9479e2cb41d8032fb51626ed4b4dd6"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-library-override-fixture.mjs",
|
||||
"sha256": "afebb3c9b8715b9d2e0c9b17f463f038bd23e8747074137bccbf1c09c4bfb5ba"
|
||||
},
|
||||
"sourceBlend": {
|
||||
"path": "tests/files/web/m12_library_override_v1/m12_override_source.blend",
|
||||
"sha256": "d7f8d78e7e91481bf46ecc9a6bcb01e900a6a397839dd31ab80a53def7675601"
|
||||
},
|
||||
"targetBlend": {
|
||||
"path": "tests/files/web/m12_library_override_v1/m12_override_target.blend",
|
||||
"sha256": "b008a1608ff1e8f679e1e1281bf7be0360f1137e815dd890cbd93e1e98675495"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M12-03J/desktop-override-report.json",
|
||||
"sha256": "19cb13a3417b4b65a8497b622337c42c4697b3f3d48de26a1f70f2d4527ddde0"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03K"
|
||||
}
|
||||
37
tests/golden/M12-03K/manifest.json
Normal file
37
tests/golden/M12-03K/manifest.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03K",
|
||||
"parentTask": "M12-03J",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_OVERRIDE_WRITER",
|
||||
"assertions": {
|
||||
"allowedOperation": "SET_M12_OVERRIDE_VALUE",
|
||||
"allowedPropertyPath": "[\\\"m12_override_value\\\"]",
|
||||
"allowedPropertyCount": 1,
|
||||
"owner": "LOCAL_OVERRIDE",
|
||||
"referenceReadOnly": true,
|
||||
"staleCode": "REVISION_CONFLICT",
|
||||
"linkedOwnerCode": "LINKED_DATA_MUTATION_BLOCKED"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03J/manifest.json",
|
||||
"sha256": "01d0f66bb3819eea3e92727d1b5bffbec935d24eeecc28d874b999df78d73fbf"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-override-writer.ts",
|
||||
"sha256": "dd181c7e9946b98334a5d1c686887afecfe3fc11d732beec246e40bf11a155aa"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-override-writer.test.mjs",
|
||||
"sha256": "e41bd32eb4ce4d331a20ecb91f3325a27f461b9ae85e98940d5afd482ec21c4c"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03L"
|
||||
}
|
||||
35
tests/golden/M12-03L/manifest.json
Normal file
35
tests/golden/M12-03L/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03L",
|
||||
"parentTask": "M12-03K",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_OVERRIDE_FRESHNESS",
|
||||
"assertions": {
|
||||
"matchingStatus": "READY",
|
||||
"staleCode": "REVISION_CONFLICT",
|
||||
"identityDriftCode": "ASSET_SOURCE_HASH_MISMATCH",
|
||||
"linkedOwnerCode": "LINKED_DATA_MUTATION_BLOCKED",
|
||||
"mainCommit": false
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03K/manifest.json",
|
||||
"sha256": "9eeee93e4a806aa59b5c53a6485fe3a1b5e3972c1d2585cdc71b7cfc293afb70"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-override-freshness.ts",
|
||||
"sha256": "2eff7ea7605b1579d7551336d87d4f30adb996b585596ff9eee67aea04ca7d22"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-override-freshness.test.mjs",
|
||||
"sha256": "d48344f31e1ba12e557ca30ece56643583efa633da556f5de3896a8e9175ef8f"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03M"
|
||||
}
|
||||
35
tests/golden/M12-03M/manifest.json
Normal file
35
tests/golden/M12-03M/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03M",
|
||||
"parentTask": "M12-03L",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_NEGATIVE_CASES",
|
||||
"assertions": {
|
||||
"dependencyCycleCode": "LIBRARY_DEPENDENCY_CYCLE",
|
||||
"crossLibraryCycleCode": "LIBRARY_DEPENDENCY_CYCLE",
|
||||
"dataBlockCollisionCode": "TASK_VALIDATION_FAILED",
|
||||
"duplicateReloadCode": "REVISION_CONFLICT",
|
||||
"missingSourceCode": "ASSET_SOURCE_HASH_MISMATCH"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03L/manifest.json",
|
||||
"sha256": "237f3f168e037b67b805ba8d9c9455250c889a5e90c45cbb17d2d20d9fbdcc50"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-negative-cases.ts",
|
||||
"sha256": "efc7cc810089eab6178fc5c2f2a45d641625a032ecfa5b2b4ef37694d0decc97"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-negative-cases.test.mjs",
|
||||
"sha256": "b7ae41b2c35b2fe1598bca4425dd434230bfe4bf342320c88214a060dcbb0a16"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03N"
|
||||
}
|
||||
60
tests/golden/M12-03N/manifest.json
Normal file
60
tests/golden/M12-03N/manifest.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03N",
|
||||
"parentTask": "M12-03M",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "DESKTOP_WASM_CHROMIUM",
|
||||
"operation": "LIBRARY_OPERATION_COMMANDS",
|
||||
"assertions": {
|
||||
"operations": ["APPEND", "LINK", "LIBRARY_OVERRIDE"],
|
||||
"lanes": ["DESKTOP", "WASM", "CHROMIUM"],
|
||||
"independentCommands": 9,
|
||||
"mainAppendChromiumTest": "web/tests/e2e/library-append-main.spec.ts",
|
||||
"linkChromiumTest": "web/tests/e2e/library-link-chromium.spec.ts",
|
||||
"overrideChromiumTest": "web/tests/e2e/library-override-chromium.spec.ts"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03M/manifest.json",
|
||||
"sha256": "693cbedfe8e29167283a753d119de5a9cfe5e20bc96aff7ba84d720ffde9148a"
|
||||
},
|
||||
"commandChecker": {
|
||||
"path": "tools/web/check-library-operation-commands.mjs",
|
||||
"sha256": "3564347393134d835fdf279b8b8f58558ee24fe0165c3b4527195d094a451e98"
|
||||
},
|
||||
"appendWasmProtocol": {
|
||||
"path": "web/protocol/library-main-append.ts",
|
||||
"sha256": "bfd98561cbe797d7b8f07c92c53a25460c839a64ab7222b7795cf58d54dff8d7"
|
||||
},
|
||||
"appendWasmUnit": {
|
||||
"path": "web/tests/unit/library-append-wasm.test.mjs",
|
||||
"sha256": "75fc2d626f7ca7e820e9cacf659a453886e15e790cde43348828c03bed752ec7"
|
||||
},
|
||||
"appendChromium": {
|
||||
"path": "web/tests/e2e/library-append-main.spec.ts",
|
||||
"sha256": "101f67d35c2320da57459f08a59687d769234b910dbd9aaec5a668cee7e0f9f0"
|
||||
},
|
||||
"linkChromium": {
|
||||
"path": "web/tests/e2e/library-link-chromium.spec.ts",
|
||||
"sha256": "814e3486522fb4f0ffdd59acd385a4fca9c5660cdb07e5a2acb1cadd70376bff"
|
||||
},
|
||||
"overrideChromium": {
|
||||
"path": "web/tests/e2e/library-override-chromium.spec.ts",
|
||||
"sha256": "1c12982b4eb4fb4b9a3c88907a842a1fc413b3a3a760a9f57b350f57060d007f"
|
||||
},
|
||||
"linkChromiumWrapper": {
|
||||
"path": "web/app/src/library-link-chromium.ts",
|
||||
"sha256": "096af8e594a6d475476dc3253e3d99069d9f84bc383b84c690a38d08f1f0137a"
|
||||
},
|
||||
"overrideChromiumWrapper": {
|
||||
"path": "web/app/src/library-override-chromium.ts",
|
||||
"sha256": "f3bb9c7d57c65a333ba6aa982a19956025c23e740e1771f741d161defc591f21"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04A"
|
||||
}
|
||||
35
tests/golden/M12-04A/manifest.json
Normal file
35
tests/golden/M12-04A/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04A",
|
||||
"parentTask": "M12-03N",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_SOURCE_ORIGIN",
|
||||
"assertions": {
|
||||
"acceptedKinds": ["HTTPS_ORIGIN", "PROJECT_ASSET", "USER_SELECTED_FILE"],
|
||||
"undeclaredHttpsCode": "IO_EXTERNAL_URI_BLOCKED",
|
||||
"unsafeProjectPathCode": "IO_EXTERNAL_URI_BLOCKED",
|
||||
"sourceHash": true,
|
||||
"credentialFreeHttps": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-03N/manifest.json",
|
||||
"sha256": "e4cccc8edc277b5047c3f8006ea40b26b119d28589fe2f3bd9bfa4cc3575c85a"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-source-origin.ts",
|
||||
"sha256": "67a1808f225194a09a72987c5340c7494c5fa8d99dffde40664a11a779caedeb"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-source-origin.test.mjs",
|
||||
"sha256": "89b207c9cb13b4fb055a2dfed0237c0f8a00b13a39cc4175a378f5ef2abdb7ae"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04B"
|
||||
}
|
||||
40
tests/golden/M12-04B/manifest.json
Normal file
40
tests/golden/M12-04B/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04B",
|
||||
"parentTask": "M12-04A",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_PATH_NORMALIZATION",
|
||||
"assertions": {
|
||||
"canonicalSeparator": "/",
|
||||
"dotSegmentsResolved": true,
|
||||
"percentDecodePasses": 1,
|
||||
"unicodeNormalization": "NFC",
|
||||
"canonicalIdempotent": true,
|
||||
"projectEscapeCode": "ASSET_PATH_OUTSIDE_PROJECT"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-04A/manifest.json",
|
||||
"sha256": "af80827d925ddd96d8541e446e0f70c956fd4c56e64ac984d187f5449df4cb0d"
|
||||
},
|
||||
"normalizer": {
|
||||
"path": "web/protocol/asset-path.ts",
|
||||
"sha256": "6109d05251fc7355ac32d4c0d8298f85ea8b731767c76c394577c4e44652a6bf"
|
||||
},
|
||||
"sourceAdmission": {
|
||||
"path": "web/protocol/library-source-origin.ts",
|
||||
"sha256": "67a1808f225194a09a72987c5340c7494c5fa8d99dffde40664a11a779caedeb"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-path-normalization.test.mjs",
|
||||
"sha256": "abde64c60397541e92a83dd9e4a24e65faf340a8d046650604c101a21037c777"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04C"
|
||||
}
|
||||
41
tests/golden/M12-04C/manifest.json
Normal file
41
tests/golden/M12-04C/manifest.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04C",
|
||||
"parentTask": "M12-04B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "LIBRARY_PATH_SECURITY",
|
||||
"assertions": {
|
||||
"absolutePathCode": "ASSET_PATH_OUTSIDE_PROJECT",
|
||||
"uncPathCode": "ASSET_PATH_OUTSIDE_PROJECT",
|
||||
"drivePathCode": "ASSET_PATH_OUTSIDE_PROJECT",
|
||||
"controlCharacterCode": "ASSET_PATH_OUTSIDE_PROJECT",
|
||||
"originEscapeCode": "IO_EXTERNAL_URI_BLOCKED",
|
||||
"declaredOriginPathRejected": true,
|
||||
"encodedControlsRejected": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-04B/manifest.json",
|
||||
"sha256": "8cd29c3f5281082584fc6aefe2ec385a2eedf8116e837a4db54c391391ff8f98"
|
||||
},
|
||||
"pathNormalizer": {
|
||||
"path": "web/protocol/asset-path.ts",
|
||||
"sha256": "6109d05251fc7355ac32d4c0d8298f85ea8b731767c76c394577c4e44652a6bf"
|
||||
},
|
||||
"sourceOrigin": {
|
||||
"path": "web/protocol/library-source-origin.ts",
|
||||
"sha256": "67a1808f225194a09a72987c5340c7494c5fa8d99dffde40664a11a779caedeb"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-path-security.test.mjs",
|
||||
"sha256": "ab302cacb24634a3225dda5cb8f5282cb80b3bd81ed5c8900ddf4ff18267b7e2"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04D"
|
||||
}
|
||||
37
tests/golden/M12-04D/manifest.json
Normal file
37
tests/golden/M12-04D/manifest.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04D",
|
||||
"parentTask": "M12-04C",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "ARCHIVE_LINK_SAFETY",
|
||||
"assertions": {
|
||||
"symlinkTargetBase": "link-parent",
|
||||
"hardlinkTargetBase": "archive-root",
|
||||
"resolvedWithinTemporaryRoot": true,
|
||||
"missingTargetCode": "IO_ARCHIVE_UNSAFE",
|
||||
"cycleCode": "IO_ARCHIVE_UNSAFE",
|
||||
"outsideRootCode": "IO_ARCHIVE_UNSAFE",
|
||||
"hardlinkDirectoryCode": "IO_ARCHIVE_UNSAFE"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-04C/manifest.json",
|
||||
"sha256": "a7f3a45eb7f68d022f38185a1c1409e1db1b27647fef587d66d2ffa52d78f98e"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/archive-link-safety.ts",
|
||||
"sha256": "d55a4ba762898aed22bdcc7aa6493c713ee94f6bb1bf58754fdc459d0ddf70d1"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-link-safety.test.mjs",
|
||||
"sha256": "7739275be91222d7bfb61d2f5a1daf812c6860fe34d0aea27df8380a77322120"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04E"
|
||||
}
|
||||
36
tests/golden/M12-04E/manifest.json
Normal file
36
tests/golden/M12-04E/manifest.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04E",
|
||||
"parentTask": "M12-04D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "ARCHIVE_METADATA_FIRST",
|
||||
"assertions": {
|
||||
"zipFirstRead": "CENTRAL_DIRECTORY",
|
||||
"tarFirstRead": "MANIFEST",
|
||||
"payloadReadsBeforeMetadata": false,
|
||||
"wrongRangeCode": "IO_ARCHIVE_UNSAFE",
|
||||
"duplicateMetadataCode": "IO_ARCHIVE_UNSAFE",
|
||||
"metadataRangeBoundBytes": 67108864
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-04D/manifest.json",
|
||||
"sha256": "1c09abd1f4bd5908d22ab3b22e3e71d050f694af0b82a7f78a351d7a1bf1e664"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/archive-metadata-first.ts",
|
||||
"sha256": "869586b041e134c7d1cb2ebd7e13b35218b337223d401697a179f71cd1420f5b"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/library-metadata-first.test.mjs",
|
||||
"sha256": "2da649722acee9cace8db6f337b4a93500a9c775a0b0f086bf38dd2b3e7f9e91"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-04F"
|
||||
}
|
||||
24
tests/golden/M12-04F/manifest.json
Normal file
24
tests/golden/M12-04F/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04F",
|
||||
"parentTask": "M12-04E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "ARCHIVE_BUDGETS",
|
||||
"assertions": {
|
||||
"maxArchiveEntries": 100000,
|
||||
"maxEntryBytes": 2147483648,
|
||||
"maxArchiveBytes": 4294967296,
|
||||
"maxPathDepth": 64,
|
||||
"maxFileNameBytes": 255,
|
||||
"budgetCode": "IO_ARCHIVE_UNSAFE"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04E/manifest.json", "sha256": "d935392fb23c2e6ad651fb6ad6cb67f8ead3d562e626bb230d2febd9d7f03b1c" },
|
||||
"protocol": { "path": "web/protocol/asset-library-io.ts", "sha256": "e02efa79668f4ee10b1c28786709eba2c93691b28ccf1155c6213dda12f59a8f" },
|
||||
"unit": { "path": "web/tests/unit/library-archive-budget.test.mjs", "sha256": "b0d8356c6fb348d98e28ce220052845a29439b34b3c976b21a4dbf370ea19593" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-04G"
|
||||
}
|
||||
23
tests/golden/M12-04G/manifest.json
Normal file
23
tests/golden/M12-04G/manifest.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04G",
|
||||
"parentTask": "M12-04F",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_UNIT",
|
||||
"operation": "ARCHIVE_CONFLICTS",
|
||||
"assertions": {
|
||||
"compressionRatio": 100,
|
||||
"overlapCode": "IO_ARCHIVE_UNSAFE",
|
||||
"duplicatePathCode": "IO_ARCHIVE_UNSAFE",
|
||||
"prefixConflictCode": "IO_ARCHIVE_UNSAFE",
|
||||
"outOfRangeCode": "IO_ARCHIVE_UNSAFE"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04F/manifest.json", "sha256": "cda905b1e27b62d9ea3a05170f975015480ce6739c15bdf1f5a1f0b79f93ce06" },
|
||||
"protocol": { "path": "web/protocol/archive-conflicts.ts", "sha256": "3bec372e4f67ec309f28534cebcbaf8b492144adfa82ff6c8603f88c3ba16254" },
|
||||
"unit": { "path": "web/tests/unit/library-archive-conflicts.test.mjs", "sha256": "3f2d44dce33b1c17b3a48f58b04fdd821abc88d98ce3d3b5bb724859e0f0ab3c" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-04H"
|
||||
}
|
||||
24
tests/golden/M12-04H/manifest.json
Normal file
24
tests/golden/M12-04H/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04H",
|
||||
"parentTask": "M12-04G",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_REAL_FS_UNIT",
|
||||
"operation": "ARCHIVE_EXTRACTION_CANCELLATION",
|
||||
"assertions": {
|
||||
"cancellationCode": "IO_ARCHIVE_CANCELLED",
|
||||
"stagingEntriesAfter": 0,
|
||||
"publishedProjects": 0,
|
||||
"committedIdentityUnchanged": true,
|
||||
"commitLinearization": "BEFORE_ATOMIC_COMMIT"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04G/manifest.json", "sha256": "c35e675e8f512e85b748f0b5578874fed8c99df7674a152e698236a67c9f4fa4" },
|
||||
"protocol": { "path": "web/protocol/archive-extraction-transaction.ts", "sha256": "c40adc1449172014cc1820db567e155828314abb404b66e4de13c26ddee06e4b" },
|
||||
"errorCodes": { "path": "web/protocol/error.ts", "sha256": "751c70c898540fa7e82fb1b1a79254756ec8db8e4201a88b6d817d7c3d92103f" },
|
||||
"unit": { "path": "web/tests/unit/library-archive-cancellation.test.mjs", "sha256": "77e7d5bc64dd6b313006ebf523602601acdaf7949a1484da872ddcd046983786" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-04I"
|
||||
}
|
||||
24
tests/golden/M12-04I/manifest.json
Normal file
24
tests/golden/M12-04I/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04I",
|
||||
"parentTask": "M12-04H",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_REAL_FS_UNIT",
|
||||
"operation": "ARCHIVE_QUOTA_OOM_RECOVERY",
|
||||
"assertions": {
|
||||
"faultCodes": ["STORAGE_QUOTA", "WASM_OUT_OF_MEMORY"],
|
||||
"partialStagingEntriesAfter": 0,
|
||||
"committedIdentityUnchangedAfterFault": true,
|
||||
"recoverySession": "SAME_STORAGE_INSTANCE",
|
||||
"smallArchiveCommitted": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04H/manifest.json", "sha256": "7fce600a416aec5ade1a91a13d86caf4cb1f65b710054b59d525ff8b1d3c7409" },
|
||||
"baseProtocol": { "path": "web/protocol/archive-extraction-transaction.ts", "sha256": "c40adc1449172014cc1820db567e155828314abb404b66e4de13c26ddee06e4b" },
|
||||
"recoveryProtocol": { "path": "web/protocol/archive-extraction-recovery.ts", "sha256": "0ae9801ea151403b244c5f58f7f99231bba7a25abb1f61e3669879510b92dccf" },
|
||||
"unit": { "path": "web/tests/unit/library-archive-recovery.test.mjs", "sha256": "a931edef8f3ca1243a80ec2b8e9ff5b8da1dfd339f3d8c162ad2ebd08d3db6a1" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-04J"
|
||||
}
|
||||
27
tests/golden/M12-04J/manifest.json
Normal file
27
tests/golden/M12-04J/manifest.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-04J",
|
||||
"parentTask": "M12-04I",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_PROTOCOL_BINARY_FIXTURE_CHROMIUM",
|
||||
"operation": "MALICIOUS_ZIP_TAR_REGRESSION",
|
||||
"assertions": {
|
||||
"fixtureCount": 6,
|
||||
"zipFixtureCount": 3,
|
||||
"tarFixtureCount": 3,
|
||||
"metadataOnly": true,
|
||||
"extractionAllowed": false,
|
||||
"expectedCode": "IO_ARCHIVE_UNSAFE",
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04I/manifest.json", "sha256": "574afa68a787b9481d0e098d38b94cb810a9827fe185b0df796d62cc160ba7c5" },
|
||||
"generator": { "path": "tools/web/generate-malicious-archive-fixtures.mjs", "sha256": "b372ea8cb2f97b035ffb2cc18666dae9167dcfb349131851ad9f1ff0fc40ba16" },
|
||||
"checker": { "path": "tools/web/check-malicious-archive-fixtures.mjs", "sha256": "edda2f420f26e55f9990d24b755bb9b4f732ec32c2e072210144b3d0b6634d9b" },
|
||||
"fixtureManifest": { "path": "tests/files/web/archive-security/manifest.json", "sha256": "a93834316f6a23b8a0e6c1f1f806ec584d6f03aa339c2680cae2ce8133a40e58" },
|
||||
"chromium": { "path": "web/tests/e2e/archive-security-fixtures.spec.ts", "sha256": "f327500808dd67359a152ce28134b58d027aebd6758416b5535b659b9900bbfe" },
|
||||
"package": { "path": "web/package.json", "sha256": "342f75fe285f99da301eba97590fd9fc76cef4938508177fd43e1827f0295076" }
|
||||
},
|
||||
"nextTask": "M12-05A"
|
||||
}
|
||||
2796
tests/golden/M12-05A/format-inventory.json
Normal file
2796
tests/golden/M12-05A/format-inventory.json
Normal file
File diff suppressed because it is too large
Load Diff
26
tests/golden/M12-05A/manifest.json
Normal file
26
tests/golden/M12-05A/manifest.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05A",
|
||||
"parentTask": "M12-04J",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_RUNTIME",
|
||||
"operation": "IO_FORMAT_RUNTIME_INVENTORY",
|
||||
"assertions": {
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"formatCount": 7,
|
||||
"formats": ["GLTF", "GLB", "OBJ", "STL", "PLY", "USD", "ALEMBIC"],
|
||||
"availableFormats": ["GLTF", "GLB", "OBJ", "STL", "PLY"],
|
||||
"buildDisabledFormats": ["USD", "ALEMBIC"],
|
||||
"runtimeReceipt": true,
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-04J/manifest.json", "sha256": "989d417ab44e165849c7054f331f7038ec1d779349c39dd4f5b30050bbaecf56" },
|
||||
"generator": { "path": "tools/web/generate-io-format-runtime-inventory.py", "sha256": "aa926397664240a5195f8864fc3ed5549bafcc963a03c513c7e37926b0559d7d" },
|
||||
"checker": { "path": "tools/web/check-io-format-runtime-inventory.mjs", "sha256": "12853306ea5eb2698ab636c7dfc2f27ae140295641473c57b84f93fa13d4864e" },
|
||||
"inventory": { "path": "tests/golden/M12-05A/format-inventory.json", "sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-05B"
|
||||
}
|
||||
392
tests/golden/M12-05B/capability-matrix.json
Normal file
392
tests/golden/M12-05B/capability-matrix.json
Normal file
@@ -0,0 +1,392 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05B",
|
||||
"runtimeInventorySha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4",
|
||||
"formats": [
|
||||
{
|
||||
"format": "GLTF",
|
||||
"runtimeImportStatus": "AVAILABLE",
|
||||
"runtimeExportStatus": "AVAILABLE",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"runtimeImportStatus": "AVAILABLE",
|
||||
"runtimeExportStatus": "AVAILABLE",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "READY",
|
||||
"execution": "LOCAL",
|
||||
"code": null
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "PARTIAL",
|
||||
"evidence": "bounded GLB export gate exists; full format round-trip remains M12-06"
|
||||
},
|
||||
"material": {
|
||||
"status": "PARTIAL",
|
||||
"evidence": "bounded GLB export gate exists; full format round-trip remains M12-06"
|
||||
},
|
||||
"animation": {
|
||||
"status": "PARTIAL",
|
||||
"evidence": "bounded GLB export gate exists; full format round-trip remains M12-06"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"runtimeImportStatus": "AVAILABLE",
|
||||
"runtimeExportStatus": "AVAILABLE",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"runtimeImportStatus": "AVAILABLE",
|
||||
"runtimeExportStatus": "AVAILABLE",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"runtimeImportStatus": "AVAILABLE",
|
||||
"runtimeExportStatus": "AVAILABLE",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"runtimeImportStatus": "OPERATOR_UNREGISTERED",
|
||||
"runtimeExportStatus": "OPERATOR_UNREGISTERED",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"runtimeImportStatus": "OPERATOR_UNREGISTERED",
|
||||
"runtimeExportStatus": "OPERATOR_UNREGISTERED",
|
||||
"operations": {
|
||||
"IMPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
},
|
||||
"EXPORT": {
|
||||
"local": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"server": {
|
||||
"status": "BLOCKED",
|
||||
"execution": "NONE",
|
||||
"code": "IO_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
"geometry": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"material": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
},
|
||||
"animation": {
|
||||
"status": "UNVERIFIED",
|
||||
"evidence": "no verified Web executor for this format/operation"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
27
tests/golden/M12-05B/manifest.json
Normal file
27
tests/golden/M12-05B/manifest.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05B",
|
||||
"parentTask": "M12-05A",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_CAPABILITY_MATRIX_PROTOCOL",
|
||||
"operation": "IO_FORMAT_CAPABILITY_MATRIX",
|
||||
"assertions": {
|
||||
"formatCount": 7,
|
||||
"localGlbExportReady": true,
|
||||
"blockedImportRoutes": 7,
|
||||
"blockedServerRoutes": 14,
|
||||
"unverifiedUnimplementedFeatures": true,
|
||||
"runtimeBinding": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-05A/manifest.json", "sha256": "202b144c91f8e2c39477e257aeb26f9bd0b1b05b459ff8a246668024e94deec7" },
|
||||
"protocol": { "path": "web/protocol/io-format-capability-matrix.ts", "sha256": "3063ae5e45f5b1642d329aa554187d121998d816a5a6740a2b9662f00c3c5738" },
|
||||
"generator": { "path": "tools/web/generate-io-format-capability-matrix.mjs", "sha256": "746078caaf29fa5aa2281b901b9ea5fc66f9a935eb3f6e282d4fbfb018d4c390" },
|
||||
"checker": { "path": "tools/web/check-io-format-capability-matrix.mjs", "sha256": "4a8b35cd7f87238c13627a00c3bb0b34c130fc34d597773574efac7d8909b804" },
|
||||
"unit": { "path": "web/tests/unit/io-format-capability-matrix.test.mjs", "sha256": "0cc4d8f1df1ecdab20d8100cf5f12b44cb2a68bca4384ef7964a032b2f74b36e" },
|
||||
"matrix": { "path": "tests/golden/M12-05B/capability-matrix.json", "sha256": "139c9d764736da176b32414ecda840c07eb0ba5f3864da2dc08ce04bae161366" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-05C"
|
||||
}
|
||||
29
tests/golden/M12-05C/manifest.json
Normal file
29
tests/golden/M12-05C/manifest.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05C",
|
||||
"parentTask": "M12-05B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_IO_FORMAT_UI_CAPABILITY_GATE",
|
||||
"operation": "IO_FORMAT_UI_GATE",
|
||||
"assertions": {
|
||||
"matrixBound": true,
|
||||
"projectFileAccept": ".blend,application/octet-stream",
|
||||
"importRoutes": 0,
|
||||
"localExportRoutes": 1,
|
||||
"blockedRoutesHidden": true,
|
||||
"operatorSearchUsesRegistry": true,
|
||||
"unsupportedSelectionFailClosed": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-05B/manifest.json", "sha256": "8cc9517c9f25138c351bc5a79efe3b1ce6d9f6663d3b7c14397c5e4e8f11181a" },
|
||||
"protocol": { "path": "web/protocol/io-format-ui-gate.ts", "sha256": "fc397ceb947d4ede6c34c1d51438253a6b59244fc40f5eb77ce155bf1c477476" },
|
||||
"generator": { "path": "tools/web/generate-io-format-ui-gate.mjs", "sha256": "1ef4ae8a3e8d2f73101a87cba1c42ea99a065e1f6846f6a591841b97c0c39e6f" },
|
||||
"checker": { "path": "tools/web/check-io-format-ui-gate.mjs", "sha256": "81d6f27df26aab7b633fbe61c6d7b37519668aff41e43314924dceaacb3affde" },
|
||||
"unit": { "path": "web/tests/unit/io-format-ui-gate.test.mjs", "sha256": "84ca8fb6022da9f167daa104c44489a6c7d9f059699e57ce621b8d7f64f19082" },
|
||||
"chromium": { "path": "web/tests/e2e/io-format-ui-gate.spec.ts", "sha256": "eda2cdb9ede3bcbd717800c9c6fdb28d8cebef96f0296a2ee847a05e60cd0eed" },
|
||||
"registry": { "path": "web/app/src/capabilities/io-format-ui-registry.json", "sha256": "6b410bc6f2cad032af55bf13e1c8ddd841b01e9913ffc0ba381da8b7204285fd" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-05D"
|
||||
}
|
||||
30
tests/golden/M12-05D/manifest.json
Normal file
30
tests/golden/M12-05D/manifest.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05D",
|
||||
"parentTask": "M12-05C",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_RUNTIME_RECEIPT_GATE",
|
||||
"operation": "IO_FORMAT_RUNTIME_RECEIPT",
|
||||
"assertions": {
|
||||
"inventoryBound": true,
|
||||
"formatCount": 7,
|
||||
"receiptCount": 14,
|
||||
"glbExport": "READY",
|
||||
"usdExport": "BLOCKED",
|
||||
"extensionIndependent": true,
|
||||
"uiExecutorBound": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-05C/manifest.json", "sha256": "f46fd394e2144255d8b4304e8ce4fe60aad4302a80e991fd83d50cd915235ee3" },
|
||||
"protocol": { "path": "web/protocol/io-format-runtime-receipt.ts", "sha256": "461a84557fa368c29dbc6707959b689faae7c8f7050dccc4d3f12e358b61bb22" },
|
||||
"generator": { "path": "tools/web/generate-io-format-runtime-receipts.mjs", "sha256": "796cd641e86d8242c13317f771ae237cbf1692ff675a53bbdb689615edb5f372" },
|
||||
"checker": { "path": "tools/web/check-io-format-runtime-receipts.mjs", "sha256": "aaf9862041f155f96f50ea8481ff765089255bc59ecd8944f12362b81b8c1f1a" },
|
||||
"unit": { "path": "web/tests/unit/io-format-runtime-receipt.test.mjs", "sha256": "a5f09277f5dcdacd25c44191f7407d6cee944f8022b1c467c2a69e172fc2ac6b" },
|
||||
"runtimeReceipts": { "path": "tests/golden/M12-05D/runtime-receipts.json", "sha256": "f2c9a77e2cfad0ef3574b804fc06fb22972c07f55c72b0e6db2e359c4d95f57b" },
|
||||
"appReceipts": { "path": "web/app/src/capabilities/io-format-runtime-receipts.json", "sha256": "f2c9a77e2cfad0ef3574b804fc06fb22972c07f55c72b0e6db2e359c4d95f57b" },
|
||||
"app": { "path": "web/app/src/app/App.tsx", "sha256": "74216aac70992f8d879e983237ca324b998008582f0cd4658e90994cf9fae0a8" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-05E"
|
||||
}
|
||||
282
tests/golden/M12-05D/runtime-receipts.json
Normal file
282
tests/golden/M12-05D/runtime-receipts.json
Normal file
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05D",
|
||||
"inventorySha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildCommitTimestamp": 0,
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildOptions": {
|
||||
"alembic": false,
|
||||
"io_ply": true,
|
||||
"io_stl": true,
|
||||
"io_wavefront_obj": true,
|
||||
"usd": false
|
||||
},
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"receipts": [
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.obj_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_import",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.obj_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_export",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.stl_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_import",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.stl_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_export",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.ply_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_import",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.ply_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_export",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.usd_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.usd_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.alembic_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.alembic_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
325
tests/golden/M12-05E/bound-runtime-receipts.json
Normal file
325
tests/golden/M12-05E/bound-runtime-receipts.json
Normal file
@@ -0,0 +1,325 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05E",
|
||||
"parentReceiptSetSha256": "f2c9a77e2cfad0ef3574b804fc06fb22972c07f55c72b0e6db2e359c4d95f57b",
|
||||
"inventorySha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildCommitTimestamp": 0,
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildOptions": {
|
||||
"alembic": false,
|
||||
"io_ply": true,
|
||||
"io_stl": true,
|
||||
"io_wavefront_obj": true,
|
||||
"usd": false
|
||||
},
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"receipts": [
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
],
|
||||
"sourceSha256": "843c7eb040189ccd7fcccfb697c4ecfd35d405add50008967b7ca5a89e4dcde7",
|
||||
"settingsSha256": "01a5fbe96ab7af4bf38c35a3723a7619233299086e400ff5064dbd91e9d586e8",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
],
|
||||
"sourceSha256": "a1c2dea067898071d6d4f0fc4f83e81df920bc572a9250ed01229d618ef15a37",
|
||||
"settingsSha256": "df7db92e5ea9a4d52a81dc8092f48ca9dfda80594e500b05f3787352891962f9",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
],
|
||||
"sourceSha256": "d78e336432dc578727992b8ca53368e3ac49ffdafeb1c16847fe48c54e35a079",
|
||||
"settingsSha256": "b909a16f4103dfad49997c597c80ad3e71a932989f8a4594eb4f019223bd56e6",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
],
|
||||
"sourceSha256": "0c2820eb9d7b82a1cd1cb208f75f263a527c58576952d4bd934cf0f7eb29ee3e",
|
||||
"settingsSha256": "3b375dcb889e594e61da9d8e912037d8fa0220ea876e7465e6c37da4f5b21cee",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.obj_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_import",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
],
|
||||
"sourceSha256": "42f9e3b35f753e43100aaea618ed306f1bf062fb7bb44af841a2e2d599449fbd",
|
||||
"settingsSha256": "4e879a3018ffcf529c28fb54e09efe5f3829b501a2b001da86f9a9b4b303bccb",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.obj_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_export",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
],
|
||||
"sourceSha256": "b4328f82639bdfefb016aec15629135ebd080e0a5696759dd670ab85168b7c60",
|
||||
"settingsSha256": "f7660d5742890d2f05e8da803f5d8616233570a4f06960b85a2142efd9396d2f",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.stl_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_import",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
],
|
||||
"sourceSha256": "f6bb7a058c246914f5f077665aab1f3d45c60b176f917b15a54522d12164c703",
|
||||
"settingsSha256": "b01bd0b819aa72cf1de817b3e9bca2df03b9ceac41f639f738176973fea9accb",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.stl_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_export",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
],
|
||||
"sourceSha256": "8be11ddd9bd68dcddc676529d30abcc236289f25ece32e137fd79bcd5ff3286d",
|
||||
"settingsSha256": "5f1797ab8291fb3d84a8c1a892aa692a120a7db4ef84c9d3a9b1e78d5a6d92b7",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.ply_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_import",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
],
|
||||
"sourceSha256": "2c8483351e293c5e0450f55902c24e3346bf95d53243ebf194fccc1efc1caa80",
|
||||
"settingsSha256": "390cbc8a4843d88bd567a7f7d51b9e0d5853992bfc7a66c4a2fd335ed33d25a3",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.ply_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_export",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
],
|
||||
"sourceSha256": "2f6cf92d5a813083b206b9c38a4442f82685b1c5740f313b90a0a7b60604a2b5",
|
||||
"settingsSha256": "cd4bf21d72086001a02377cdc5c7f22856cbd1e04b261e37484260f3fc2ea6ae",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.usd_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
],
|
||||
"sourceSha256": "a8f79c9243ffa9ba0ba8e3e948c198fdffa727bac578269d8ec041f56cad1c5d",
|
||||
"settingsSha256": "5a396eb68ddd5943df9834996b1e6b993ad7e66b019308aa318517980b518390",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.usd_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
],
|
||||
"sourceSha256": "cf6a9737773c27faf82cd8b3d4df84a9b671e1c873cd5041f12d70926ec62abf",
|
||||
"settingsSha256": "5a396eb68ddd5943df9834996b1e6b993ad7e66b019308aa318517980b518390",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.alembic_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
],
|
||||
"sourceSha256": "7471c261ab8520df718399e69f6f8d73be11fb76f1717eac9a407964fc2f7ee3",
|
||||
"settingsSha256": "fa2669dd3c464f8312581faf665690709dc503fdfb5662642a6e635bd2e91e55",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.alembic_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
],
|
||||
"sourceSha256": "8d983f6f8c5bb722d2b12c47c56115ae4bdff0a173a9fb9f4d93f083bea8e513",
|
||||
"settingsSha256": "fa2669dd3c464f8312581faf665690709dc503fdfb5662642a6e635bd2e91e55",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
}
|
||||
]
|
||||
}
|
||||
28
tests/golden/M12-05E/manifest.json
Normal file
28
tests/golden/M12-05E/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05E",
|
||||
"parentTask": "M12-05D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_BOUND_RUNTIME_RECEIPT",
|
||||
"operation": "IO_FORMAT_RECEIPT_BINDING",
|
||||
"assertions": {
|
||||
"receiptCount": 14,
|
||||
"sourceHashBound": true,
|
||||
"settingsHashBound": true,
|
||||
"runtimeHashBound": true,
|
||||
"parentInventoryBound": true,
|
||||
"deterministic": true,
|
||||
"packageHashPreserved": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-05D/manifest.json", "sha256": "3d0049a7b0331f01bb71df043270c18d1a5c9ce6dc74353c49c8ce591761df1b" },
|
||||
"protocol": { "path": "web/protocol/io-format-receipt-binding.ts", "sha256": "681e719ab2b18eb85d056547fb70b461dd73b3a7fb4fdbe6295b8e49d5649e49" },
|
||||
"generator": { "path": "tools/web/generate-io-format-receipt-bindings.mjs", "sha256": "eb7b5c499f141c1788bc37e53585662eedff3f2dabff870f4ad166f4a619796f" },
|
||||
"checker": { "path": "tools/web/check-io-format-receipt-bindings.mjs", "sha256": "ec2b22b468809ecc25ab2d4983065680a66ad3be6705d1827b44bf45ac622e26" },
|
||||
"unit": { "path": "web/tests/unit/io-format-receipt-binding.test.mjs", "sha256": "e9ae3e360ad41c32da3634a4efa915654853e79a35df36728c1ddf586a0bf7b5" },
|
||||
"boundReceipts": { "path": "tests/golden/M12-05E/bound-runtime-receipts.json", "sha256": "7f765bf16b62466f579b3de00751a0e012fef1c788f229c8e9675a57caa18aad" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-05F"
|
||||
}
|
||||
332
tests/golden/M12-05F/fresh-runtime-receipts.json
Normal file
332
tests/golden/M12-05F/fresh-runtime-receipts.json
Normal file
@@ -0,0 +1,332 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05F",
|
||||
"parentBindingSha256": "7f765bf16b62466f579b3de00751a0e012fef1c788f229c8e9675a57caa18aad",
|
||||
"boundReceiptSetSha256": "2015d719a2046f76dda3daf7c8ae7a3fc5183a499489ef06a0c33f166c6ea0b9",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6",
|
||||
"bound": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05E",
|
||||
"parentReceiptSetSha256": "f2c9a77e2cfad0ef3574b804fc06fb22972c07f55c72b0e6db2e359c4d95f57b",
|
||||
"inventorySha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildCommitTimestamp": 0,
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildOptions": {
|
||||
"alembic": false,
|
||||
"io_ply": true,
|
||||
"io_stl": true,
|
||||
"io_wavefront_obj": true,
|
||||
"usd": false
|
||||
},
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"receipts": [
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
],
|
||||
"sourceSha256": "843c7eb040189ccd7fcccfb697c4ecfd35d405add50008967b7ca5a89e4dcde7",
|
||||
"settingsSha256": "01a5fbe96ab7af4bf38c35a3723a7619233299086e400ff5064dbd91e9d586e8",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLTF",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLTF_SEPARATE"
|
||||
],
|
||||
"extensions": [
|
||||
".gltf"
|
||||
],
|
||||
"sourceSha256": "a1c2dea067898071d6d4f0fc4f83e81df920bc572a9250ed01229d618ef15a37",
|
||||
"settingsSha256": "df7db92e5ea9a4d52a81dc8092f48ca9dfda80594e500b05f3787352891962f9",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "IMPORT",
|
||||
"operator": "import_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "IMPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
],
|
||||
"sourceSha256": "d78e336432dc578727992b8ca53368e3ac49ffdafeb1c16847fe48c54e35a079",
|
||||
"settingsSha256": "b909a16f4103dfad49997c597c80ad3e71a932989f8a4594eb4f019223bd56e6",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "GLB",
|
||||
"family": "GLTF",
|
||||
"operation": "EXPORT",
|
||||
"operator": "export_scene.gltf",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "EXPORT_SCENE_OT_gltf",
|
||||
"buildOption": null,
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"GLB"
|
||||
],
|
||||
"extensions": [
|
||||
".glb"
|
||||
],
|
||||
"sourceSha256": "0c2820eb9d7b82a1cd1cb208f75f263a527c58576952d4bd934cf0f7eb29ee3e",
|
||||
"settingsSha256": "3b375dcb889e594e61da9d8e912037d8fa0220ea876e7465e6c37da4f5b21cee",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.obj_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_import",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
],
|
||||
"sourceSha256": "42f9e3b35f753e43100aaea618ed306f1bf062fb7bb44af841a2e2d599449fbd",
|
||||
"settingsSha256": "4e879a3018ffcf529c28fb54e09efe5f3829b501a2b001da86f9a9b4b303bccb",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "OBJ",
|
||||
"family": "OBJ",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.obj_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_obj_export",
|
||||
"buildOption": "io_wavefront_obj",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"OBJ"
|
||||
],
|
||||
"extensions": [
|
||||
".obj"
|
||||
],
|
||||
"sourceSha256": "b4328f82639bdfefb016aec15629135ebd080e0a5696759dd670ab85168b7c60",
|
||||
"settingsSha256": "f7660d5742890d2f05e8da803f5d8616233570a4f06960b85a2142efd9396d2f",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.stl_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_import",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
],
|
||||
"sourceSha256": "f6bb7a058c246914f5f077665aab1f3d45c60b176f917b15a54522d12164c703",
|
||||
"settingsSha256": "b01bd0b819aa72cf1de817b3e9bca2df03b9ceac41f639f738176973fea9accb",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "STL",
|
||||
"family": "STL",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.stl_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_stl_export",
|
||||
"buildOption": "io_stl",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"STL_BINARY",
|
||||
"STL_ASCII"
|
||||
],
|
||||
"extensions": [
|
||||
".stl"
|
||||
],
|
||||
"sourceSha256": "8be11ddd9bd68dcddc676529d30abcc236289f25ece32e137fd79bcd5ff3286d",
|
||||
"settingsSha256": "5f1797ab8291fb3d84a8c1a892aa692a120a7db4ef84c9d3a9b1e78d5a6d92b7",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.ply_import",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_import",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
],
|
||||
"sourceSha256": "2c8483351e293c5e0450f55902c24e3346bf95d53243ebf194fccc1efc1caa80",
|
||||
"settingsSha256": "390cbc8a4843d88bd567a7f7d51b9e0d5853992bfc7a66c4a2fd335ed33d25a3",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "PLY",
|
||||
"family": "PLY",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.ply_export",
|
||||
"registered": true,
|
||||
"rnaIdentifier": "WM_OT_ply_export",
|
||||
"buildOption": "io_ply",
|
||||
"buildOptionEnabled": true,
|
||||
"runtimeStatus": "AVAILABLE",
|
||||
"variants": [
|
||||
"PLY"
|
||||
],
|
||||
"extensions": [
|
||||
".ply"
|
||||
],
|
||||
"sourceSha256": "2f6cf92d5a813083b206b9c38a4442f82685b1c5740f313b90a0a7b60604a2b5",
|
||||
"settingsSha256": "cd4bf21d72086001a02377cdc5c7f22856cbd1e04b261e37484260f3fc2ea6ae",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.usd_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
],
|
||||
"sourceSha256": "a8f79c9243ffa9ba0ba8e3e948c198fdffa727bac578269d8ec041f56cad1c5d",
|
||||
"settingsSha256": "5a396eb68ddd5943df9834996b1e6b993ad7e66b019308aa318517980b518390",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "USD",
|
||||
"family": "USD",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.usd_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "usd",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"USD",
|
||||
"USDA",
|
||||
"USDC",
|
||||
"USDZ"
|
||||
],
|
||||
"extensions": [
|
||||
".usd",
|
||||
".usda",
|
||||
".usdc",
|
||||
".usdz"
|
||||
],
|
||||
"sourceSha256": "cf6a9737773c27faf82cd8b3d4df84a9b671e1c873cd5041f12d70926ec62abf",
|
||||
"settingsSha256": "5a396eb68ddd5943df9834996b1e6b993ad7e66b019308aa318517980b518390",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "IMPORT",
|
||||
"operator": "wm.alembic_import",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
],
|
||||
"sourceSha256": "7471c261ab8520df718399e69f6f8d73be11fb76f1717eac9a407964fc2f7ee3",
|
||||
"settingsSha256": "fa2669dd3c464f8312581faf665690709dc503fdfb5662642a6e635bd2e91e55",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
},
|
||||
{
|
||||
"format": "ALEMBIC",
|
||||
"family": "ALEMBIC",
|
||||
"operation": "EXPORT",
|
||||
"operator": "wm.alembic_export",
|
||||
"registered": false,
|
||||
"rnaIdentifier": null,
|
||||
"buildOption": "alembic",
|
||||
"buildOptionEnabled": null,
|
||||
"runtimeStatus": "OPERATOR_UNREGISTERED",
|
||||
"variants": [
|
||||
"ALEMBIC"
|
||||
],
|
||||
"extensions": [
|
||||
".abc"
|
||||
],
|
||||
"sourceSha256": "8d983f6f8c5bb722d2b12c47c56115ae4bdff0a173a9fb9f4d93f083bea8e513",
|
||||
"settingsSha256": "fa2669dd3c464f8312581faf665690709dc503fdfb5662642a6e635bd2e91e55",
|
||||
"runtimeSha256": "729b46fdfea424feb258ee42ad0f3360aa433abaf31831eeb8e4f6203fa298b6"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
34
tests/golden/M12-05F/manifest.json
Normal file
34
tests/golden/M12-05F/manifest.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-05F",
|
||||
"parentTask": "M12-05E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_RUNTIME_RECEIPT_FRESHNESS",
|
||||
"operation": "IO_FORMAT_RECEIPT_FRESHNESS_GATE",
|
||||
"assertions": {
|
||||
"receiptCount": 14,
|
||||
"parentBindingBound": true,
|
||||
"canonicalReceiptSetHash": true,
|
||||
"runtimeIdentityHash": true,
|
||||
"forgedReceiptBlocked": true,
|
||||
"staleReceiptBlocked": true,
|
||||
"crossVersionReceiptBlocked": true,
|
||||
"appRouteBound": true,
|
||||
"deterministic": true,
|
||||
"packageHashPreserved": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-05E/manifest.json", "sha256": "2fbaaf39c6acd9f55fbdbadccc0b027e9e7763bf069c954a96ca49b193648990" },
|
||||
"protocol": { "path": "web/protocol/io-format-receipt-freshness.ts", "sha256": "111a630c7beccd31989dc4f78932b7d7b741fb6bef03e45cb39a8139f774d235" },
|
||||
"generator": { "path": "tools/web/generate-io-format-receipt-freshness.mjs", "sha256": "6a1e798ce46e1d14d833091d4d7ae452dccb13efe583594277785465eb725bbf" },
|
||||
"checker": { "path": "tools/web/check-io-format-receipt-freshness.mjs", "sha256": "7a8fe69ea1aa2c1e121be008a9fb60fc236f7ef776d2088a7b00b14f46fe3fba" },
|
||||
"unit": { "path": "web/tests/unit/io-format-receipt-freshness.test.mjs", "sha256": "cd1c2adca81653f98f9a1c6c7d104ad0e3052283213fb7166dac827c956928fe" },
|
||||
"freshnessReceipts": { "path": "tests/golden/M12-05F/fresh-runtime-receipts.json", "sha256": "0187ad0d9ea05fc4b152b7abd4945191dbe9ec24dfde4ca7dbe4aadfd1230efe" },
|
||||
"appFreshnessReceipts": { "path": "web/app/src/capabilities/io-format-runtime-receipts-freshness.json", "sha256": "0187ad0d9ea05fc4b152b7abd4945191dbe9ec24dfde4ca7dbe4aadfd1230efe" },
|
||||
"appExpected": { "path": "web/app/src/capabilities/io-format-runtime-receipts-freshness-expected.json", "sha256": "8d65f78aa774ff252871cb1cc09e69b4ff04fbb45e61200eaf67534c9d2651b2" },
|
||||
"app": { "path": "web/app/src/app/App.tsx", "sha256": "043ff3a2f39ef3a1303791081b80851b427e7db5dfd9af2161926dd6f1ea9ca4" },
|
||||
"package": { "path": "web/package.json", "sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c" }
|
||||
},
|
||||
"nextTask": "M12-06A"
|
||||
}
|
||||
697
tests/golden/M12-06A/desktop-fixtures.json
Normal file
697
tests/golden/M12-06A/desktop-fixtures.json
Normal file
@@ -0,0 +1,697 @@
|
||||
{
|
||||
"fixtureCount": 5,
|
||||
"fixtures": [
|
||||
{
|
||||
"byteLength": 1236,
|
||||
"file": "mesh.glb",
|
||||
"id": "mesh",
|
||||
"semantic": {
|
||||
"animations": [],
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v5.2.39",
|
||||
"version": "2.0"
|
||||
},
|
||||
"extensionsRequired": [],
|
||||
"extensionsUsed": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": true,
|
||||
"emissiveFactor": null,
|
||||
"name": "M12 Mesh Material",
|
||||
"normalTexture": null,
|
||||
"pbr": {
|
||||
"baseColorFactor": null,
|
||||
"baseColorTexture": null,
|
||||
"metallicFactor": 0.15000000596046448,
|
||||
"roughnessFactor": 0.550000011920929
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "M12 Mesh Fixture Mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"COLOR_0": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"NORMAL": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"POSITION": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
}
|
||||
},
|
||||
"indices": {
|
||||
"componentType": 5123,
|
||||
"count": 6,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"targets": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodeNames": [
|
||||
"M12 Mesh Fixture"
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [],
|
||||
"mesh": 0,
|
||||
"name": "M12 Mesh Fixture",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": null
|
||||
}
|
||||
],
|
||||
"samplers": [],
|
||||
"scene": 0,
|
||||
"skins": [],
|
||||
"textures": []
|
||||
},
|
||||
"sha256": "e52b9268b6524744fb498691f976000635e544ba3b47e9f8ff22b03bcdf17a94"
|
||||
},
|
||||
{
|
||||
"byteLength": 1208,
|
||||
"file": "pbr.glb",
|
||||
"id": "pbr",
|
||||
"semantic": {
|
||||
"animations": [],
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v5.2.39",
|
||||
"version": "2.0"
|
||||
},
|
||||
"extensionsRequired": [],
|
||||
"extensionsUsed": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": true,
|
||||
"emissiveFactor": [
|
||||
0.029999999329447746,
|
||||
0.05999999865889549,
|
||||
0.11999999731779099
|
||||
],
|
||||
"name": "M12 PBR Material",
|
||||
"normalTexture": null,
|
||||
"pbr": {
|
||||
"baseColorFactor": [
|
||||
0.3100000023841858,
|
||||
0.5699999928474426,
|
||||
0.9100000262260437,
|
||||
1
|
||||
],
|
||||
"baseColorTexture": null,
|
||||
"metallicFactor": 0.7200000286102295,
|
||||
"roughnessFactor": 0.2800000011920929
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "M12 PBR Fixture Mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"POSITION": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
}
|
||||
},
|
||||
"indices": {
|
||||
"componentType": 5123,
|
||||
"count": 6,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"targets": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodeNames": [
|
||||
"M12 PBR Fixture"
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [],
|
||||
"mesh": 0,
|
||||
"name": "M12 PBR Fixture",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": null
|
||||
}
|
||||
],
|
||||
"samplers": [],
|
||||
"scene": 0,
|
||||
"skins": [],
|
||||
"textures": []
|
||||
},
|
||||
"sha256": "244cc8a992c5a70692b8bbc8333533718b3bac7022110715ce3b23d2e4c0b361"
|
||||
},
|
||||
{
|
||||
"byteLength": 1704,
|
||||
"file": "uv.glb",
|
||||
"id": "uv",
|
||||
"semantic": {
|
||||
"animations": [],
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v5.2.39",
|
||||
"version": "2.0"
|
||||
},
|
||||
"extensionsRequired": [],
|
||||
"extensionsUsed": [],
|
||||
"images": [
|
||||
{
|
||||
"bufferView": 4,
|
||||
"mimeType": "image/png",
|
||||
"name": "M12 UV Texture"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": true,
|
||||
"emissiveFactor": null,
|
||||
"name": "M12 UV Material",
|
||||
"normalTexture": null,
|
||||
"pbr": {
|
||||
"baseColorFactor": null,
|
||||
"baseColorTexture": {
|
||||
"index": 0
|
||||
},
|
||||
"metallicFactor": 0,
|
||||
"roughnessFactor": 0.44999998807907104
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "M12 UV Fixture Mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"POSITION": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"TEXCOORD_0": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC2"
|
||||
}
|
||||
},
|
||||
"indices": {
|
||||
"componentType": 5123,
|
||||
"count": 6,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"targets": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodeNames": [
|
||||
"M12 UV Fixture"
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [],
|
||||
"mesh": 0,
|
||||
"name": "M12 UV Fixture",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": null
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"magFilter": 9728,
|
||||
"minFilter": 9984
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"skins": [],
|
||||
"textures": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"sha256": "1e0397d2b69d8261b3252451b50ab4aba6525b94713719f35069a9a9d96fcfa2"
|
||||
},
|
||||
{
|
||||
"byteLength": 1912,
|
||||
"file": "skin.glb",
|
||||
"id": "skin",
|
||||
"semantic": {
|
||||
"animations": [],
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v5.2.39",
|
||||
"version": "2.0"
|
||||
},
|
||||
"extensionsRequired": [],
|
||||
"extensionsUsed": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": true,
|
||||
"emissiveFactor": null,
|
||||
"name": "M12 Skin Material",
|
||||
"normalTexture": null,
|
||||
"pbr": {
|
||||
"baseColorFactor": [
|
||||
0.7599999904632568,
|
||||
0.23999999463558197,
|
||||
0.18000000715255737,
|
||||
1
|
||||
],
|
||||
"baseColorTexture": null,
|
||||
"metallicFactor": 0.05000000074505806,
|
||||
"roughnessFactor": 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "M12 Skin Fixture Mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"JOINTS_0": {
|
||||
"componentType": 5121,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC4"
|
||||
},
|
||||
"NORMAL": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"POSITION": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
0.5
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-0.5
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"WEIGHTS_0": {
|
||||
"componentType": 5126,
|
||||
"count": 4,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC4"
|
||||
}
|
||||
},
|
||||
"indices": {
|
||||
"componentType": 5123,
|
||||
"count": 6,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"targets": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodeNames": [
|
||||
"Tip",
|
||||
"Root",
|
||||
"M12 Skin Fixture",
|
||||
"M12 Skin Armature"
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [],
|
||||
"mesh": null,
|
||||
"name": "Tip",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
0
|
||||
],
|
||||
"mesh": null,
|
||||
"name": "Root",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": null
|
||||
},
|
||||
{
|
||||
"children": [],
|
||||
"mesh": 0,
|
||||
"name": "M12 Skin Fixture",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": 0,
|
||||
"translation": null
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
2,
|
||||
1
|
||||
],
|
||||
"mesh": null,
|
||||
"name": "M12 Skin Armature",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": null
|
||||
}
|
||||
],
|
||||
"samplers": [],
|
||||
"scene": 0,
|
||||
"skins": [
|
||||
{
|
||||
"inverseBindMatrices": {
|
||||
"componentType": 5126,
|
||||
"count": 2,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "MAT4"
|
||||
},
|
||||
"joints": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"name": "M12 Skin Armature",
|
||||
"skeleton": null
|
||||
}
|
||||
],
|
||||
"textures": []
|
||||
},
|
||||
"sha256": "4086ee4c8873aa03090338b676575b7a5335fb7c9384fec6ccb36108e71929f6"
|
||||
},
|
||||
{
|
||||
"byteLength": 2616,
|
||||
"file": "animation.glb",
|
||||
"id": "animation",
|
||||
"semantic": {
|
||||
"animations": [
|
||||
{
|
||||
"channels": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"target": {
|
||||
"node": 0,
|
||||
"path": "translation"
|
||||
}
|
||||
},
|
||||
{
|
||||
"sampler": 1,
|
||||
"target": {
|
||||
"node": 0,
|
||||
"path": "rotation"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "M12 Animation Action",
|
||||
"samplers": [
|
||||
{
|
||||
"input": {
|
||||
"componentType": 5126,
|
||||
"count": 25,
|
||||
"max": [
|
||||
1.0416666666666667
|
||||
],
|
||||
"min": [
|
||||
0.041666666666666664
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"interpolation": "LINEAR",
|
||||
"output": {
|
||||
"componentType": 5126,
|
||||
"count": 25,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"input": {
|
||||
"componentType": 5126,
|
||||
"count": 25,
|
||||
"max": [
|
||||
1.0416666666666667
|
||||
],
|
||||
"min": [
|
||||
0.041666666666666664
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"interpolation": "LINEAR",
|
||||
"output": {
|
||||
"componentType": 5126,
|
||||
"count": 25,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v5.2.39",
|
||||
"version": "2.0"
|
||||
},
|
||||
"extensionsRequired": [],
|
||||
"extensionsUsed": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": true,
|
||||
"emissiveFactor": null,
|
||||
"name": "M12 Animation Material",
|
||||
"normalTexture": null,
|
||||
"pbr": {
|
||||
"baseColorFactor": [
|
||||
0.1599999964237213,
|
||||
0.7200000286102295,
|
||||
0.3799999952316284,
|
||||
1
|
||||
],
|
||||
"baseColorTexture": null,
|
||||
"metallicFactor": 0.10000000149011612,
|
||||
"roughnessFactor": 0.4000000059604645
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "M12 Animation Fixture Mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": {
|
||||
"componentType": 5126,
|
||||
"count": 3,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
},
|
||||
"POSITION": {
|
||||
"componentType": 5126,
|
||||
"count": 3,
|
||||
"max": [
|
||||
0.75,
|
||||
0,
|
||||
0.75
|
||||
],
|
||||
"min": [
|
||||
-0.75,
|
||||
0,
|
||||
-0.75
|
||||
],
|
||||
"normalized": false,
|
||||
"type": "VEC3"
|
||||
}
|
||||
},
|
||||
"indices": {
|
||||
"componentType": 5123,
|
||||
"count": 3,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"normalized": false,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"targets": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodeNames": [
|
||||
"M12 Animation Fixture"
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [],
|
||||
"mesh": 0,
|
||||
"name": "M12 Animation Fixture",
|
||||
"rotation": null,
|
||||
"scale": null,
|
||||
"skin": null,
|
||||
"translation": [
|
||||
-1,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"samplers": [],
|
||||
"scene": 0,
|
||||
"skins": [],
|
||||
"textures": []
|
||||
},
|
||||
"sha256": "44f6cc47961a146dc97ea337ae31a8b64bb4ab213b716f81ec22129db704f1fb"
|
||||
}
|
||||
],
|
||||
"maxFixtureBytes": 524288,
|
||||
"nextTask": "M12-06B",
|
||||
"operation": "DESKTOP_GLB_FIXTURE_GENERATION",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06A"
|
||||
}
|
||||
57
tests/golden/M12-06A/manifest.json
Normal file
57
tests/golden/M12-06A/manifest.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06A",
|
||||
"parentTask": "M12-05F",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "DESKTOP_GLB_FIXTURE_GENERATION",
|
||||
"fixtureIds": [
|
||||
"mesh",
|
||||
"pbr",
|
||||
"uv",
|
||||
"skin",
|
||||
"animation"
|
||||
],
|
||||
"fixtureCount": 5,
|
||||
"maxFixtureBytes": 524288,
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-05F/manifest.json",
|
||||
"sha256": "63e1506801ddee2f1eaf64cad68a9d5c918405f642ca237c6a1ec249ff297623"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-glb-desktop-fixtures.py",
|
||||
"sha256": "0247dd2405a68b42d99c2b005546ad2aa99b46416e3fe9489832467f6ea4eb4d"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-desktop-fixtures.mjs",
|
||||
"sha256": "211ebdb66bf2e2d349455d5303e889a4a1ae3323639a89dd78b3bda574dd820b"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-06A/desktop-fixtures.json",
|
||||
"sha256": "dea31cc861622166dc502b333bc177b70b66b54d9c62aaccc6522745dab5ae13"
|
||||
},
|
||||
"meshFixture": {
|
||||
"path": "tests/files/web/m12_glb_desktop_v1/mesh.glb",
|
||||
"sha256": "e52b9268b6524744fb498691f976000635e544ba3b47e9f8ff22b03bcdf17a94"
|
||||
},
|
||||
"pbrFixture": {
|
||||
"path": "tests/files/web/m12_glb_desktop_v1/pbr.glb",
|
||||
"sha256": "244cc8a992c5a70692b8bbc8333533718b3bac7022110715ce3b23d2e4c0b361"
|
||||
},
|
||||
"uvFixture": {
|
||||
"path": "tests/files/web/m12_glb_desktop_v1/uv.glb",
|
||||
"sha256": "1e0397d2b69d8261b3252451b50ab4aba6525b94713719f35069a9a9d96fcfa2"
|
||||
},
|
||||
"skinFixture": {
|
||||
"path": "tests/files/web/m12_glb_desktop_v1/skin.glb",
|
||||
"sha256": "4086ee4c8873aa03090338b676575b7a5335fb7c9384fec6ccb36108e71929f6"
|
||||
},
|
||||
"animationFixture": {
|
||||
"path": "tests/files/web/m12_glb_desktop_v1/animation.glb",
|
||||
"sha256": "44f6cc47961a146dc97ea337ae31a8b64bb4ab213b716f81ec22129db704f1fb"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06B"
|
||||
}
|
||||
63
tests/golden/M12-06B/manifest.json
Normal file
63
tests/golden/M12-06B/manifest.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06B",
|
||||
"parentTask": "M12-06A",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER",
|
||||
"operation": "WEB_GLB_IMPORT_SEMANTIC_COMPARISON",
|
||||
"fixtureIds": [
|
||||
"mesh",
|
||||
"pbr",
|
||||
"uv",
|
||||
"skin",
|
||||
"animation"
|
||||
],
|
||||
"comparedDomains": [
|
||||
"topology",
|
||||
"attributes",
|
||||
"materials",
|
||||
"nodes",
|
||||
"animations"
|
||||
],
|
||||
"routeState": "BLOCKED_UNTIL_MAIN_PERSISTENCE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06A/manifest.json",
|
||||
"sha256": "e3554a1e739cbe3f217f6169130532365538b0c0eafbb97afc58d4d56c4287cb"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/glb-import.ts",
|
||||
"sha256": "45d9a7912c4a59a552789a8ea0dfaff5f1849f8d213f14d238de024b77acdb0d"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-glb-desktop-import-report.mjs",
|
||||
"sha256": "6f97527b7da04c7b4f9b09c48b9f367d1270db9f7820498d33832a80754436c2"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-desktop-import.mjs",
|
||||
"sha256": "804a4b5545d95d7ab1ba265469a981d0a10b71dab36f0c96283eb73b401443d2"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/glb-desktop-import.test.mjs",
|
||||
"sha256": "6bf2a96b3e43e5fae93589ea5dcf98e7a69b10266378e442988198925286a8d8"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/glb-desktop-import-test.worker.ts",
|
||||
"sha256": "eb32049631113270fb62acb7ae9379e8ff9a03e38086db2fa309c6891cd707bf"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/glb-desktop-import.spec.ts",
|
||||
"sha256": "fa3e06419c918406f24b5a4260523bd94cfe729a84786e9434517fdfed624d45"
|
||||
},
|
||||
"webImportReport": {
|
||||
"path": "tests/golden/M12-06B/web-import-report.json",
|
||||
"sha256": "79933888cc5aa2d1e3639ec349ca4c31d028fe89f751ebb8d4342f06d15ecfc2"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06C"
|
||||
}
|
||||
220
tests/golden/M12-06B/web-import-report.json
Normal file
220
tests/golden/M12-06B/web-import-report.json
Normal file
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06B",
|
||||
"operation": "WEB_GLB_IMPORT_SEMANTIC_COMPARISON",
|
||||
"parentManifestSha256": "e3554a1e739cbe3f217f6169130532365538b0c0eafbb97afc58d4d56c4287cb",
|
||||
"fixtureReportSha256": "dea31cc861622166dc502b333bc177b70b66b54d9c62aaccc6522745dab5ae13",
|
||||
"fixtureCount": 5,
|
||||
"comparedDomains": [
|
||||
"topology",
|
||||
"attributes",
|
||||
"materials",
|
||||
"nodes",
|
||||
"animations"
|
||||
],
|
||||
"allCompatible": true,
|
||||
"comparisons": [
|
||||
{
|
||||
"id": "mesh",
|
||||
"file": "mesh.glb",
|
||||
"sourceSha256": "e52b9268b6524744fb498691f976000635e544ba3b47e9f8ff22b03bcdf17a94",
|
||||
"byteLength": 1236,
|
||||
"desktopSemanticSha256": "8f9e9049e7d45c6ab0665853efacfd549548b972b12d99b9cf7c5046341c0040",
|
||||
"webSemanticSha256": "8f9e9049e7d45c6ab0665853efacfd549548b972b12d99b9cf7c5046341c0040",
|
||||
"compatible": true,
|
||||
"mismatchCount": 0,
|
||||
"topology": {
|
||||
"meshCount": 1,
|
||||
"primitiveCount": 1,
|
||||
"indexCount": 6,
|
||||
"modes": [
|
||||
4
|
||||
]
|
||||
},
|
||||
"attributes": [
|
||||
"COLOR_0",
|
||||
"NORMAL",
|
||||
"POSITION"
|
||||
],
|
||||
"materials": {
|
||||
"count": 1,
|
||||
"pbrCount": 1,
|
||||
"texturedCount": 0
|
||||
},
|
||||
"nodes": {
|
||||
"count": 1,
|
||||
"namedCount": 1,
|
||||
"hierarchyEdges": 0,
|
||||
"skinnedCount": 0
|
||||
},
|
||||
"animations": {
|
||||
"count": 0,
|
||||
"channelPaths": [],
|
||||
"sampleCounts": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "pbr",
|
||||
"file": "pbr.glb",
|
||||
"sourceSha256": "244cc8a992c5a70692b8bbc8333533718b3bac7022110715ce3b23d2e4c0b361",
|
||||
"byteLength": 1208,
|
||||
"desktopSemanticSha256": "6a44faf6de63ed31261f30a494921c18427779f04c01e3923b2cb92b43e29ad2",
|
||||
"webSemanticSha256": "6a44faf6de63ed31261f30a494921c18427779f04c01e3923b2cb92b43e29ad2",
|
||||
"compatible": true,
|
||||
"mismatchCount": 0,
|
||||
"topology": {
|
||||
"meshCount": 1,
|
||||
"primitiveCount": 1,
|
||||
"indexCount": 6,
|
||||
"modes": [
|
||||
4
|
||||
]
|
||||
},
|
||||
"attributes": [
|
||||
"NORMAL",
|
||||
"POSITION"
|
||||
],
|
||||
"materials": {
|
||||
"count": 1,
|
||||
"pbrCount": 1,
|
||||
"texturedCount": 0
|
||||
},
|
||||
"nodes": {
|
||||
"count": 1,
|
||||
"namedCount": 1,
|
||||
"hierarchyEdges": 0,
|
||||
"skinnedCount": 0
|
||||
},
|
||||
"animations": {
|
||||
"count": 0,
|
||||
"channelPaths": [],
|
||||
"sampleCounts": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "uv",
|
||||
"file": "uv.glb",
|
||||
"sourceSha256": "1e0397d2b69d8261b3252451b50ab4aba6525b94713719f35069a9a9d96fcfa2",
|
||||
"byteLength": 1704,
|
||||
"desktopSemanticSha256": "c98257548ff7bf7e83f5a975a7a8988736452ffe39f68f1f48da17297c6ba9a4",
|
||||
"webSemanticSha256": "c98257548ff7bf7e83f5a975a7a8988736452ffe39f68f1f48da17297c6ba9a4",
|
||||
"compatible": true,
|
||||
"mismatchCount": 0,
|
||||
"topology": {
|
||||
"meshCount": 1,
|
||||
"primitiveCount": 1,
|
||||
"indexCount": 6,
|
||||
"modes": [
|
||||
4
|
||||
]
|
||||
},
|
||||
"attributes": [
|
||||
"NORMAL",
|
||||
"POSITION",
|
||||
"TEXCOORD_0"
|
||||
],
|
||||
"materials": {
|
||||
"count": 1,
|
||||
"pbrCount": 1,
|
||||
"texturedCount": 1
|
||||
},
|
||||
"nodes": {
|
||||
"count": 1,
|
||||
"namedCount": 1,
|
||||
"hierarchyEdges": 0,
|
||||
"skinnedCount": 0
|
||||
},
|
||||
"animations": {
|
||||
"count": 0,
|
||||
"channelPaths": [],
|
||||
"sampleCounts": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "skin",
|
||||
"file": "skin.glb",
|
||||
"sourceSha256": "4086ee4c8873aa03090338b676575b7a5335fb7c9384fec6ccb36108e71929f6",
|
||||
"byteLength": 1912,
|
||||
"desktopSemanticSha256": "f1be7ed4b7cf41dfc8a76cd291fa9deb8143c9ed85b2b189408d699447cb1241",
|
||||
"webSemanticSha256": "f1be7ed4b7cf41dfc8a76cd291fa9deb8143c9ed85b2b189408d699447cb1241",
|
||||
"compatible": true,
|
||||
"mismatchCount": 0,
|
||||
"topology": {
|
||||
"meshCount": 1,
|
||||
"primitiveCount": 1,
|
||||
"indexCount": 6,
|
||||
"modes": [
|
||||
4
|
||||
]
|
||||
},
|
||||
"attributes": [
|
||||
"JOINTS_0",
|
||||
"NORMAL",
|
||||
"POSITION",
|
||||
"WEIGHTS_0"
|
||||
],
|
||||
"materials": {
|
||||
"count": 1,
|
||||
"pbrCount": 1,
|
||||
"texturedCount": 0
|
||||
},
|
||||
"nodes": {
|
||||
"count": 4,
|
||||
"namedCount": 4,
|
||||
"hierarchyEdges": 3,
|
||||
"skinnedCount": 1
|
||||
},
|
||||
"animations": {
|
||||
"count": 0,
|
||||
"channelPaths": [],
|
||||
"sampleCounts": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "animation",
|
||||
"file": "animation.glb",
|
||||
"sourceSha256": "44f6cc47961a146dc97ea337ae31a8b64bb4ab213b716f81ec22129db704f1fb",
|
||||
"byteLength": 2616,
|
||||
"desktopSemanticSha256": "51e28284353b913f01ba43947350fd24000712260886d67fc619dd0d24b1e46e",
|
||||
"webSemanticSha256": "51e28284353b913f01ba43947350fd24000712260886d67fc619dd0d24b1e46e",
|
||||
"compatible": true,
|
||||
"mismatchCount": 0,
|
||||
"topology": {
|
||||
"meshCount": 1,
|
||||
"primitiveCount": 1,
|
||||
"indexCount": 3,
|
||||
"modes": [
|
||||
4
|
||||
]
|
||||
},
|
||||
"attributes": [
|
||||
"NORMAL",
|
||||
"POSITION"
|
||||
],
|
||||
"materials": {
|
||||
"count": 1,
|
||||
"pbrCount": 1,
|
||||
"texturedCount": 0
|
||||
},
|
||||
"nodes": {
|
||||
"count": 1,
|
||||
"namedCount": 1,
|
||||
"hierarchyEdges": 0,
|
||||
"skinnedCount": 0
|
||||
},
|
||||
"animations": {
|
||||
"count": 1,
|
||||
"channelPaths": [
|
||||
"rotation",
|
||||
"translation"
|
||||
],
|
||||
"sampleCounts": [
|
||||
25,
|
||||
25
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"routeState": "BLOCKED_UNTIL_MAIN_PERSISTENCE",
|
||||
"nextTask": "M12-06C"
|
||||
}
|
||||
451
tests/golden/M12-06C/desktop-main-report.json
Normal file
451
tests/golden/M12-06C/desktop-main-report.json
Normal file
@@ -0,0 +1,451 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixtureCount": 5,
|
||||
"fixtures": [
|
||||
{
|
||||
"blend": {
|
||||
"byteLength": 88625,
|
||||
"file": "mesh.blend",
|
||||
"sha256": "66e29adc016f07e220019b6f24eb7e5016c684dca4b3102b20c8e836968d422d"
|
||||
},
|
||||
"glb": {
|
||||
"file": "mesh.glb",
|
||||
"sha256": "e52b9268b6524744fb498691f976000635e544ba3b47e9f8ff22b03bcdf17a94"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 Mesh Material",
|
||||
"nodeNames": [
|
||||
"Color Attribute",
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 Mesh Material"
|
||||
],
|
||||
"name": "M12 Mesh Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 Mesh Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Mesh Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 Mesh Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 Mesh Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 Mesh Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "mesh"
|
||||
},
|
||||
{
|
||||
"blend": {
|
||||
"byteLength": 88389,
|
||||
"file": "pbr.blend",
|
||||
"sha256": "ba08aeb2876d82ddf731abe81d3a42041a1be36617d0b6324c870d5bcd4cc771"
|
||||
},
|
||||
"glb": {
|
||||
"file": "pbr.glb",
|
||||
"sha256": "244cc8a992c5a70692b8bbc8333533718b3bac7022110715ce3b23d2e4c0b361"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 PBR Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 PBR Material"
|
||||
],
|
||||
"name": "M12 PBR Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 PBR Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 PBR Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 PBR Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 PBR Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 PBR Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "pbr"
|
||||
},
|
||||
{
|
||||
"blend": {
|
||||
"byteLength": 89127,
|
||||
"file": "uv.blend",
|
||||
"sha256": "1270cb452d34d2fd7a19181a2b20f70b7a028bdd2db7cf1bba4e1003f7de0f48"
|
||||
},
|
||||
"glb": {
|
||||
"file": "uv.glb",
|
||||
"sha256": "1e0397d2b69d8261b3252451b50ab4aba6525b94713719f35069a9a9d96fcfa2"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [
|
||||
{
|
||||
"mimeType": "PNG",
|
||||
"name": "M12 UV Texture",
|
||||
"packed": true,
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 UV Material",
|
||||
"nodeNames": [
|
||||
"Image Texture",
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 UV Material"
|
||||
],
|
||||
"name": "M12 UV Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 UV Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 UV Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [
|
||||
"image:M12 UV Texture"
|
||||
],
|
||||
"materials": [
|
||||
"material:M12 UV Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 UV Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 UV Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "uv"
|
||||
},
|
||||
{
|
||||
"blend": {
|
||||
"byteLength": 91781,
|
||||
"file": "skin.blend",
|
||||
"sha256": "23f175e44ec588c75db99d3f9134863fc3d7d1f192bbd815d5d1c4e3218bce0c"
|
||||
},
|
||||
"glb": {
|
||||
"file": "skin.glb",
|
||||
"sha256": "4086ee4c8873aa03090338b676575b7a5335fb7c9384fec6ccb36108e71929f6"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [
|
||||
{
|
||||
"bones": [
|
||||
{
|
||||
"name": "Root",
|
||||
"parent": null
|
||||
},
|
||||
{
|
||||
"name": "Tip",
|
||||
"parent": "Root"
|
||||
}
|
||||
],
|
||||
"name": "M12 Skin Armature"
|
||||
}
|
||||
],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 Skin Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [],
|
||||
"name": "Icosphere",
|
||||
"polygonCount": 80,
|
||||
"triangleCount": 80,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertexCount": 42
|
||||
},
|
||||
{
|
||||
"materials": [
|
||||
"M12 Skin Material"
|
||||
],
|
||||
"name": "M12 Skin Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "Icosphere",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Icosphere",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
"M12 Skin Fixture"
|
||||
],
|
||||
"data": "M12 Skin Armature",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Skin Armature",
|
||||
"parent": null,
|
||||
"type": "ARMATURE"
|
||||
},
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 Skin Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Skin Fixture",
|
||||
"parent": "M12 Skin Armature",
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [
|
||||
"armature:M12 Skin Armature"
|
||||
],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 Skin Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:Icosphere",
|
||||
"mesh:M12 Skin Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:Icosphere",
|
||||
"object:M12 Skin Armature",
|
||||
"object:M12 Skin Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "skin"
|
||||
},
|
||||
{
|
||||
"blend": {
|
||||
"byteLength": 91107,
|
||||
"file": "animation.blend",
|
||||
"sha256": "fa6baf3a67ff11fe3d2922210089a7c508e4ee28bfaabe4cf628ba6addee1ff5"
|
||||
},
|
||||
"glb": {
|
||||
"file": "animation.glb",
|
||||
"sha256": "44f6cc47961a146dc97ea337ae31a8b64bb4ab213b716f81ec22129db704f1fb"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [
|
||||
{
|
||||
"fcurves": [
|
||||
[
|
||||
"location",
|
||||
0
|
||||
],
|
||||
[
|
||||
"location",
|
||||
1
|
||||
],
|
||||
[
|
||||
"location",
|
||||
2
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
0
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
1
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
2
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
3
|
||||
]
|
||||
],
|
||||
"frameRange": [
|
||||
1.0,
|
||||
25.0
|
||||
],
|
||||
"name": "M12 Animation Action"
|
||||
}
|
||||
],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 Animation Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 Animation Material"
|
||||
],
|
||||
"name": "M12 Animation Fixture Mesh",
|
||||
"polygonCount": 1,
|
||||
"triangleCount": 1,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 3
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 Animation Fixture Mesh",
|
||||
"location": [
|
||||
-1.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Animation Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [
|
||||
"action:M12 Animation Action:object:M12 Animation Fixture"
|
||||
],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 Animation Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 Animation Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 Animation Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "animation"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-06D",
|
||||
"operation": "DESKTOP_GLB_IMPORT_MAIN_PERSISTENCE_BASELINE",
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06C"
|
||||
}
|
||||
64
tests/golden/M12-06C/manifest.json
Normal file
64
tests/golden/M12-06C/manifest.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06C",
|
||||
"parentTask": "M12-06B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP_WASM_CHROMIUM",
|
||||
"operation": "GLB_IMPORT_MAIN_SAVE_REOPEN",
|
||||
"assertions": {
|
||||
"fixtureCount": 5,
|
||||
"desktopImportSaveReopen": true,
|
||||
"webMainAuthority": true,
|
||||
"oneVisibilityTransaction": true,
|
||||
"stableIdsPreserved": true,
|
||||
"resourceCountersZeroAfterOpen": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06B/manifest.json",
|
||||
"sha256": "5275310394b34726a05b30ab67658e1381662dddf9163a97cb02f47f646a8fa4"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-glb-main-persistence-fixtures.py",
|
||||
"sha256": "8989d6ce4196f140a7bfb44b863dc530a6aa462ca4a57fa7b77c468e06ab61ad"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-main-persistence.mjs",
|
||||
"sha256": "5bbbbeaf2d20ff9bbdeb74c8dd10fa6ffc421d1d59f86540e95f29c2cfd10903"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-06C/desktop-main-report.json",
|
||||
"sha256": "76b000454a9073ef762d25fa546d5c65a004659a93eb6ec82fad1e679b2e81be"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/glb-main-persistence.spec.ts",
|
||||
"sha256": "7c97877f1cbbfd0166e106c80faee53f474f78816cca68ea924df5aa3c47776d"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
},
|
||||
"meshBlend": {
|
||||
"path": "tests/files/web/m12_glb_main_v1/mesh.blend",
|
||||
"sha256": "66e29adc016f07e220019b6f24eb7e5016c684dca4b3102b20c8e836968d422d"
|
||||
},
|
||||
"pbrBlend": {
|
||||
"path": "tests/files/web/m12_glb_main_v1/pbr.blend",
|
||||
"sha256": "ba08aeb2876d82ddf731abe81d3a42041a1be36617d0b6324c870d5bcd4cc771"
|
||||
},
|
||||
"uvBlend": {
|
||||
"path": "tests/files/web/m12_glb_main_v1/uv.blend",
|
||||
"sha256": "1270cb452d34d2fd7a19181a2b20f70b7a028bdd2db7cf1bba4e1003f7de0f48"
|
||||
},
|
||||
"skinBlend": {
|
||||
"path": "tests/files/web/m12_glb_main_v1/skin.blend",
|
||||
"sha256": "23f175e44ec588c75db99d3f9134863fc3d7d1f192bbd815d5d1c4e3218bce0c"
|
||||
},
|
||||
"animationBlend": {
|
||||
"path": "tests/files/web/m12_glb_main_v1/animation.blend",
|
||||
"sha256": "fa6baf3a67ff11fe3d2922210089a7c508e4ee28bfaabe4cf628ba6addee1ff5"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06D"
|
||||
}
|
||||
55
tests/golden/M12-06D/manifest.json
Normal file
55
tests/golden/M12-06D/manifest.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06D",
|
||||
"parentTask": "M12-06C",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_WASM_CHROMIUM",
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"assertions": {
|
||||
"fixtureCount": 5,
|
||||
"machineReport": true,
|
||||
"unsupportedShaderFailsClosed": true,
|
||||
"exportableFixtureOutputsHashed": true,
|
||||
"warningOrderDeterministic": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06C/manifest.json",
|
||||
"sha256": "e3a57636a47591e3b02dff5a07e8a0aec5e0dc43bf6b4829bffc811035dbbb31"
|
||||
},
|
||||
"exportProtocol": {
|
||||
"path": "web/protocol/glb-export.ts",
|
||||
"sha256": "a5d342827860a9e55b49a3bb3a196a01b1e53546325d6e594778afb9360c3125"
|
||||
},
|
||||
"lossReportProtocol": {
|
||||
"path": "web/protocol/glb-loss-report.ts",
|
||||
"sha256": "dce9c790b2f52d46efe0908ecb044d63d21b3c6c3f7d77ddb5e697b29a7a2d6e"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/glb-loss-report-test.worker.ts",
|
||||
"sha256": "6f6294d26fe7b717416a5dd25fe834fb4b9a2ecbe8b011395c9559a26701ec77"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/glb-export-loss-report.spec.ts",
|
||||
"sha256": "ce334b6bb5d82c133d317e916c03711029fba1c19c634dec06c06da9eddbd776"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-loss-report.mjs",
|
||||
"sha256": "a23346860fa26405b2cd24591b0ab36fea29cb561ec8c2991ecfeabcffc17ee1"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/glb-loss-report.test.mjs",
|
||||
"sha256": "dfcc2d968e4e0c0cef4496bc304cb481f10d1f0dc4c76a40ea1d6e2f11b6b708"
|
||||
},
|
||||
"webLossReport": {
|
||||
"path": "tests/golden/M12-06D/web-loss-report.json",
|
||||
"sha256": "c6db52234d867985ef5fbcdc7c62298ec9aaa013028b5a54e2b9a16aa4133397"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06E"
|
||||
}
|
||||
163
tests/golden/M12-06D/web-loss-report.json
Normal file
163
tests/golden/M12-06D/web-loss-report.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06D",
|
||||
"operation": "WEB_GLB_EXPORT_LOSS_REPORT",
|
||||
"fixtureCount": 5,
|
||||
"fixtures": [
|
||||
{
|
||||
"fixtureId": "mesh",
|
||||
"sourceBlendSha256": "66e29adc016f07e220019b6f24eb7e5016c684dca4b3102b20c8e836968d422d",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"sceneId": "scene:Scene",
|
||||
"sourceRevision": 1,
|
||||
"canExport": false,
|
||||
"errorCount": 1,
|
||||
"warningCount": 1,
|
||||
"losses": [
|
||||
{
|
||||
"code": "LINKED_MATERIAL_INPUT_UNEVALUATED",
|
||||
"severity": "warning",
|
||||
"message": "Material M12 Mesh Material contains unevaluated linked inputs",
|
||||
"id": "material:M12 Mesh Material"
|
||||
},
|
||||
{
|
||||
"code": "SHADER_GRAPH_UNMAPPABLE",
|
||||
"severity": "error",
|
||||
"message": "Material M12 Mesh Material: Shader node UNSUPPORTED cannot be represented by glTF PBR",
|
||||
"id": "material:M12 Mesh Material"
|
||||
}
|
||||
],
|
||||
"surface": {
|
||||
"nodeCount": 1,
|
||||
"meshCount": 1,
|
||||
"materialCount": 1,
|
||||
"imageCount": 0,
|
||||
"animationCount": 0,
|
||||
"nonMeshCount": 0
|
||||
}
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"fixtureId": "pbr",
|
||||
"sourceBlendSha256": "ba08aeb2876d82ddf731abe81d3a42041a1be36617d0b6324c870d5bcd4cc771",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"sceneId": "scene:Scene",
|
||||
"sourceRevision": 1,
|
||||
"canExport": true,
|
||||
"errorCount": 0,
|
||||
"warningCount": 0,
|
||||
"losses": [],
|
||||
"surface": {
|
||||
"nodeCount": 1,
|
||||
"meshCount": 1,
|
||||
"materialCount": 1,
|
||||
"imageCount": 0,
|
||||
"animationCount": 0,
|
||||
"nonMeshCount": 0
|
||||
}
|
||||
},
|
||||
"output": {
|
||||
"byteLength": 1840,
|
||||
"sha256": "1ab7936fae6e0c28e1b90e8a6ae24b3893c075c9fc58ac8896f780fdefb8277e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"fixtureId": "uv",
|
||||
"sourceBlendSha256": "1270cb452d34d2fd7a19181a2b20f70b7a028bdd2db7cf1bba4e1003f7de0f48",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"sceneId": "scene:Scene",
|
||||
"sourceRevision": 1,
|
||||
"canExport": true,
|
||||
"errorCount": 0,
|
||||
"warningCount": 1,
|
||||
"losses": [
|
||||
{
|
||||
"code": "LINKED_MATERIAL_INPUT_UNEVALUATED",
|
||||
"severity": "warning",
|
||||
"message": "Material M12 UV Material contains unevaluated linked inputs",
|
||||
"id": "material:M12 UV Material"
|
||||
}
|
||||
],
|
||||
"surface": {
|
||||
"nodeCount": 1,
|
||||
"meshCount": 1,
|
||||
"materialCount": 1,
|
||||
"imageCount": 1,
|
||||
"animationCount": 0,
|
||||
"nonMeshCount": 0
|
||||
}
|
||||
},
|
||||
"output": {
|
||||
"byteLength": 2756,
|
||||
"sha256": "8bd045388527ddad7cf886c0c7a2a45b6e7d6db603568a10a959bc6d423ae145"
|
||||
}
|
||||
},
|
||||
{
|
||||
"fixtureId": "skin",
|
||||
"sourceBlendSha256": "23f175e44ec588c75db99d3f9134863fc3d7d1f192bbd815d5d1c4e3218bce0c",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"sceneId": "scene:Scene",
|
||||
"sourceRevision": 1,
|
||||
"canExport": true,
|
||||
"errorCount": 0,
|
||||
"warningCount": 1,
|
||||
"losses": [
|
||||
{
|
||||
"code": "MODIFIER_STACK_NOT_BAKED",
|
||||
"severity": "warning",
|
||||
"message": "Mesh M12 Skin Fixture Mesh has enabled modifiers that are not baked for export",
|
||||
"id": "mesh:M12 Skin Fixture Mesh"
|
||||
}
|
||||
],
|
||||
"surface": {
|
||||
"nodeCount": 3,
|
||||
"meshCount": 2,
|
||||
"materialCount": 1,
|
||||
"imageCount": 0,
|
||||
"animationCount": 0,
|
||||
"nonMeshCount": 0
|
||||
}
|
||||
},
|
||||
"output": {
|
||||
"byteLength": 14264,
|
||||
"sha256": "4a45d00dfa23638682bb61a4f74b283bcd986126da4890d068902e3c85efc332"
|
||||
}
|
||||
},
|
||||
{
|
||||
"fixtureId": "animation",
|
||||
"sourceBlendSha256": "fa6baf3a67ff11fe3d2922210089a7c508e4ee28bfaabe4cf628ba6addee1ff5",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "GLB_EXPORT_LOSS_REPORT",
|
||||
"sceneId": "scene:Scene",
|
||||
"sourceRevision": 1,
|
||||
"canExport": true,
|
||||
"errorCount": 0,
|
||||
"warningCount": 0,
|
||||
"losses": [],
|
||||
"surface": {
|
||||
"nodeCount": 1,
|
||||
"meshCount": 1,
|
||||
"materialCount": 1,
|
||||
"imageCount": 0,
|
||||
"animationCount": 1,
|
||||
"nonMeshCount": 0
|
||||
}
|
||||
},
|
||||
"output": {
|
||||
"byteLength": 3708,
|
||||
"sha256": "b83de103df3f5a49487868f3ede3046875c90b0d084bbd998511c3a7c987a4fa"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-06E"
|
||||
}
|
||||
393
tests/golden/M12-06E/desktop-reimport-report.json
Normal file
393
tests/golden/M12-06E/desktop-reimport-report.json
Normal file
@@ -0,0 +1,393 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixtureCount": 4,
|
||||
"fixtures": [
|
||||
{
|
||||
"glb": {
|
||||
"byteLength": 1840,
|
||||
"file": "pbr.glb",
|
||||
"sha256": "1ab7936fae6e0c28e1b90e8a6ae24b3893c075c9fc58ac8896f780fdefb8277e"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 PBR Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 PBR Material"
|
||||
],
|
||||
"name": "M12 PBR Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 PBR Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 PBR Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 PBR Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 PBR Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 PBR Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "pbr"
|
||||
},
|
||||
{
|
||||
"glb": {
|
||||
"byteLength": 2756,
|
||||
"file": "uv.glb",
|
||||
"sha256": "8bd045388527ddad7cf886c0c7a2a45b6e7d6db603568a10a959bc6d423ae145"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [
|
||||
{
|
||||
"mimeType": "PNG",
|
||||
"name": "M12 UV Texture",
|
||||
"packed": true,
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 UV Material",
|
||||
"nodeNames": [
|
||||
"Image Texture",
|
||||
"Material Output",
|
||||
"Mix",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 UV Material"
|
||||
],
|
||||
"name": "M12 UV Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertexCount": 6
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 UV Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 UV Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [],
|
||||
"images": [
|
||||
"image:M12 UV Texture"
|
||||
],
|
||||
"materials": [
|
||||
"material:M12 UV Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 UV Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 UV Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "uv"
|
||||
},
|
||||
{
|
||||
"glb": {
|
||||
"byteLength": 14264,
|
||||
"file": "skin.glb",
|
||||
"sha256": "4a45d00dfa23638682bb61a4f74b283bcd986126da4890d068902e3c85efc332"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [],
|
||||
"armatures": [
|
||||
{
|
||||
"bones": [
|
||||
{
|
||||
"name": "Root",
|
||||
"parent": null
|
||||
},
|
||||
{
|
||||
"name": "Tip",
|
||||
"parent": "Root"
|
||||
}
|
||||
],
|
||||
"name": "M12 Skin Armature"
|
||||
}
|
||||
],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 Skin Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [],
|
||||
"name": "Icosphere",
|
||||
"polygonCount": 80,
|
||||
"triangleCount": 80,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertexCount": 240
|
||||
},
|
||||
{
|
||||
"materials": [],
|
||||
"name": "Icosphere.001",
|
||||
"polygonCount": 80,
|
||||
"triangleCount": 80,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertexCount": 42
|
||||
},
|
||||
{
|
||||
"materials": [
|
||||
"M12 Skin Material"
|
||||
],
|
||||
"name": "M12 Skin Fixture Mesh",
|
||||
"polygonCount": 2,
|
||||
"triangleCount": 2,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 4
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "Icosphere",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Icosphere",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
},
|
||||
{
|
||||
"children": [],
|
||||
"data": "Icosphere.001",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Icosphere.001",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
"M12 Skin Fixture"
|
||||
],
|
||||
"data": "M12 Skin Armature",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Skin Armature",
|
||||
"parent": null,
|
||||
"type": "ARMATURE"
|
||||
},
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 Skin Fixture Mesh",
|
||||
"location": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Skin Fixture",
|
||||
"parent": "M12 Skin Armature",
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [],
|
||||
"armatures": [
|
||||
"armature:M12 Skin Armature"
|
||||
],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 Skin Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:Icosphere",
|
||||
"mesh:Icosphere.001",
|
||||
"mesh:M12 Skin Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:Icosphere",
|
||||
"object:Icosphere.001",
|
||||
"object:M12 Skin Armature",
|
||||
"object:M12 Skin Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "skin"
|
||||
},
|
||||
{
|
||||
"glb": {
|
||||
"byteLength": 3708,
|
||||
"file": "animation.glb",
|
||||
"sha256": "b83de103df3f5a49487868f3ede3046875c90b0d084bbd998511c3a7c987a4fa"
|
||||
},
|
||||
"graph": {
|
||||
"actions": [
|
||||
{
|
||||
"fcurves": [
|
||||
[
|
||||
"location",
|
||||
0
|
||||
],
|
||||
[
|
||||
"location",
|
||||
1
|
||||
],
|
||||
[
|
||||
"location",
|
||||
2
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
0
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
1
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
2
|
||||
],
|
||||
[
|
||||
"rotation_quaternion",
|
||||
3
|
||||
]
|
||||
],
|
||||
"frameRange": [
|
||||
1.0,
|
||||
25.0
|
||||
],
|
||||
"name": "M12 Animation Action"
|
||||
}
|
||||
],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12 Animation Material",
|
||||
"nodeNames": [
|
||||
"Material Output",
|
||||
"Principled BSDF"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"materials": [
|
||||
"M12 Animation Material"
|
||||
],
|
||||
"name": "M12 Animation Fixture Mesh",
|
||||
"polygonCount": 1,
|
||||
"triangleCount": 1,
|
||||
"uvLayers": [],
|
||||
"vertexCount": 3
|
||||
}
|
||||
],
|
||||
"objects": [
|
||||
{
|
||||
"children": [],
|
||||
"data": "M12 Animation Fixture Mesh",
|
||||
"location": [
|
||||
-1.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "M12 Animation Fixture",
|
||||
"parent": null,
|
||||
"type": "MESH"
|
||||
}
|
||||
],
|
||||
"stableIds": {
|
||||
"actions": [
|
||||
"action:M12 Animation Action:object:M12 Animation Fixture"
|
||||
],
|
||||
"armatures": [],
|
||||
"images": [],
|
||||
"materials": [
|
||||
"material:M12 Animation Material"
|
||||
],
|
||||
"meshes": [
|
||||
"mesh:M12 Animation Fixture Mesh"
|
||||
],
|
||||
"objects": [
|
||||
"object:M12 Animation Fixture"
|
||||
]
|
||||
}
|
||||
},
|
||||
"id": "animation"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-06F",
|
||||
"operation": "DESKTOP_REIMPORT_WEB_GLB_CANONICAL_REPORT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06E"
|
||||
}
|
||||
60
tests/golden/M12-06E/manifest.json
Normal file
60
tests/golden/M12-06E/manifest.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06E",
|
||||
"parentTask": "M12-06D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "DESKTOP_REIMPORT_WEB_GLB_CANONICAL_REPORT",
|
||||
"assertions": {
|
||||
"fixtureCount": 4,
|
||||
"desktopReimportSaveReopen": true,
|
||||
"exactFixtures": ["pbr", "animation"],
|
||||
"knownMismatchedFixtures": ["uv", "skin"],
|
||||
"mismatchesReported": true,
|
||||
"deterministicReport": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06D/manifest.json",
|
||||
"sha256": "c01c5861d493e1f177e8cde3038bc5283a7671fa39bf84484662d307623325a2"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-glb-web-reimport-report.py",
|
||||
"sha256": "3ae1ba45e15cae5d0308fc3fcb3766764cd374c096e27eaaddba9228a3d75004"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-web-reimport.mjs",
|
||||
"sha256": "c21b45a975ec70586da1b9e50b8cf4ccf74644300b4f381c3fee0ad735cfcdb9"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-06E/desktop-reimport-report.json",
|
||||
"sha256": "e4d03d25cfac3c4beff4d0af0769b1c39b058670c679c12f4a11ae30d2d91f3c"
|
||||
},
|
||||
"webExportTest": {
|
||||
"path": "web/tests/e2e/glb-export-loss-report.spec.ts",
|
||||
"sha256": "ce334b6bb5d82c133d317e916c03711029fba1c19c634dec06c06da9eddbd776"
|
||||
},
|
||||
"pbrGLB": {
|
||||
"path": "tests/files/web/m12_glb_web_v1/pbr.glb",
|
||||
"sha256": "1ab7936fae6e0c28e1b90e8a6ae24b3893c075c9fc58ac8896f780fdefb8277e"
|
||||
},
|
||||
"uvGLB": {
|
||||
"path": "tests/files/web/m12_glb_web_v1/uv.glb",
|
||||
"sha256": "8bd045388527ddad7cf886c0c7a2a45b6e7d6db603568a10a959bc6d423ae145"
|
||||
},
|
||||
"skinGLB": {
|
||||
"path": "tests/files/web/m12_glb_web_v1/skin.glb",
|
||||
"sha256": "4a45d00dfa23638682bb61a4f74b283bcd986126da4890d068902e3c85efc332"
|
||||
},
|
||||
"animationGLB": {
|
||||
"path": "tests/files/web/m12_glb_web_v1/animation.glb",
|
||||
"sha256": "b83de103df3f5a49487868f3ede3046875c90b0d084bbd998511c3a7c987a4fa"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06F"
|
||||
}
|
||||
51
tests/golden/M12-06F/manifest.json
Normal file
51
tests/golden/M12-06F/manifest.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06F",
|
||||
"parentTask": "M12-06E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER",
|
||||
"operation": "GLB_IMPORT_NEGATIVE_CASES",
|
||||
"assertions": {
|
||||
"sparseAccessor": "GLB_SPARSE_ACCESSOR_UNSUPPORTED",
|
||||
"extensions": "GLB_EXTENSION_UNSUPPORTED",
|
||||
"externalUri": "GLB_EXTERNAL_URI_BLOCKED",
|
||||
"overBudget": "GLB_IMPORT_BUDGET_EXCEEDED",
|
||||
"browserWorker": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06E/manifest.json",
|
||||
"sha256": "3d3b13fd54a314fd6f6907fc2d314e66ef74e8ca770a8accd823370d272737fc"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/glb-import.ts",
|
||||
"sha256": "0b6329c08e6f3cd9af6f27ef7c463b037a7cab94192afb4538d3d6c4cfcbc147"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/glb-negative-cases.test.mjs",
|
||||
"sha256": "9af1c155143a0c685a62f569f705afd9fcc3bb49e0d724ebf3ad2c6356d63d6d"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/glb-negative-cases-test.worker.ts",
|
||||
"sha256": "d84a6b884ce1bfedd598b2602d803493bf10f6ad62fdfac49d64fca3f30f3931"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/glb-negative-cases.spec.ts",
|
||||
"sha256": "c6694689ce04ff2faea2c20be648f438a9f7eb25cdfd2f714b94c1f556ea1510"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-negative-cases.mjs",
|
||||
"sha256": "08377c306fd7d1082f7fd734e37809960c9798d29d626681fe9ad3f94cb7a29e"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M12-06F/negative-report.json",
|
||||
"sha256": "7367a624b562a9613b4b908c894ab04c731ae0a348a3b58689075f4a9decd90c"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-06G"
|
||||
}
|
||||
18
tests/golden/M12-06F/negative-report.json
Normal file
18
tests/golden/M12-06F/negative-report.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06F",
|
||||
"operation": "GLB_IMPORT_NEGATIVE_CASES",
|
||||
"budget": {
|
||||
"maxBytes": 524288,
|
||||
"maxJsonBytes": 262144,
|
||||
"maxBufferViews": 4096,
|
||||
"maxAccessors": 8192
|
||||
},
|
||||
"cases": [
|
||||
{ "id": "sparse", "code": "GLB_SPARSE_ACCESSOR_UNSUPPORTED" },
|
||||
{ "id": "extension", "code": "GLB_EXTENSION_UNSUPPORTED" },
|
||||
{ "id": "external-uri", "code": "GLB_EXTERNAL_URI_BLOCKED" },
|
||||
{ "id": "over-budget", "code": "GLB_IMPORT_BUDGET_EXCEEDED" }
|
||||
],
|
||||
"nextTask": "M12-06G"
|
||||
}
|
||||
69
tests/golden/M12-06G/manifest.json
Normal file
69
tests/golden/M12-06G/manifest.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06G",
|
||||
"parentTask": "M12-06F",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER_OPFS",
|
||||
"operation": "GLB_IMPORT_EXPORT_RECOVERY",
|
||||
"assertions": {
|
||||
"importCancellation": "GLB_OPERATION_CANCELLED",
|
||||
"exportCancellation": "GLB_OPERATION_CANCELLED",
|
||||
"workerRestart": "GLB_WORKER_RESTARTED",
|
||||
"opfsQuota": "GLB_OPFS_QUOTA",
|
||||
"temporaryResourcesAfterCancel": 0,
|
||||
"committedAssetPreserved": true,
|
||||
"smallAssetRecovery": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06F/manifest.json",
|
||||
"sha256": "27b42da0683dab11a884553440088c30cf58d51364268fdaac86668786aaedd4"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/glb-recovery.ts",
|
||||
"sha256": "da4e2a546d7598e80798cfebd105e52b7522c896acb545710c78bb8a5c3705aa"
|
||||
},
|
||||
"storageProtocol": {
|
||||
"path": "web/protocol/storage.ts",
|
||||
"sha256": "2c8ce9e32fcae973e9262a024fd849221680104bcd427ec308f99ef25112d951"
|
||||
},
|
||||
"storageClient": {
|
||||
"path": "web/app/src/storage/StorageClient.ts",
|
||||
"sha256": "00cd35e4632479e4cd153314113e201c822fd209ae6c8e9fbeff5f1399728565"
|
||||
},
|
||||
"storageWorker": {
|
||||
"path": "web/app/src/workers/storage.worker.ts",
|
||||
"sha256": "80bf4d2ac59cbf7998c2a72c8961ae38abe43685b60df564d0746e1a45e9e1bc"
|
||||
},
|
||||
"operationWorker": {
|
||||
"path": "web/app/src/workers/glb-recovery-test.worker.ts",
|
||||
"sha256": "947c4a768422725ff2f689b2eefa8068bee51bb7ff342af17e8d4a4d0a4a7ca2"
|
||||
},
|
||||
"browserAdapter": {
|
||||
"path": "web/app/src/testing/glb-recovery.ts",
|
||||
"sha256": "2c753a04c153471c2bf7691073b836d968a1a1300e3da038f493983b46738cdf"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/glb-recovery.test.mjs",
|
||||
"sha256": "6dd48f62a85c5aaf3a04b6e572a47a7986b23cbec84a099ea510af81e8dd3a3a"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/glb-recovery.spec.ts",
|
||||
"sha256": "7d95e992f44fb913f70c104f0d6b23bd76f47d48db4a21899e35ae1d188e2093"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-glb-recovery.mjs",
|
||||
"sha256": "b185248fdcd6b3cee84252bd68fcb6921bb6385bfa4a00486e93c58e94755cce"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M12-06G/recovery-report.json",
|
||||
"sha256": "1a008a76590573468446ca6e5cbdfe0ea5a8b27493291590d937b90db90d6e42"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07A"
|
||||
}
|
||||
41
tests/golden/M12-06G/recovery-report.json
Normal file
41
tests/golden/M12-06G/recovery-report.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-06G",
|
||||
"operation": "GLB_IMPORT_EXPORT_RECOVERY",
|
||||
"cancellation": [
|
||||
{
|
||||
"operation": "IMPORT",
|
||||
"status": "CANCELLED",
|
||||
"code": "GLB_OPERATION_CANCELLED",
|
||||
"committed": false,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0
|
||||
},
|
||||
{
|
||||
"operation": "EXPORT",
|
||||
"status": "CANCELLED",
|
||||
"code": "GLB_OPERATION_CANCELLED",
|
||||
"committed": false,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0
|
||||
}
|
||||
],
|
||||
"workerRestart": {
|
||||
"operation": "IMPORT",
|
||||
"generationBefore": 1,
|
||||
"generationAfter": 2,
|
||||
"status": "RECOVERED",
|
||||
"code": "GLB_WORKER_RESTARTED",
|
||||
"resultHash": "EXACT"
|
||||
},
|
||||
"opfsQuota": {
|
||||
"operation": "EXPORT_ASSET_COMMIT",
|
||||
"status": "BLOCKED",
|
||||
"code": "GLB_OPFS_QUOTA",
|
||||
"backend": "OPFS",
|
||||
"committedAssetPreserved": true,
|
||||
"workerRestart": true,
|
||||
"smallAssetRecovery": true
|
||||
},
|
||||
"nextTask": "M12-07A"
|
||||
}
|
||||
223
tests/golden/M12-07A/desktop-fixture.json
Normal file
223
tests/golden/M12-07A/desktop-fixture.json
Normal file
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"byteLength": 465,
|
||||
"name": "single-mesh.obj",
|
||||
"sha256": "a56694d1ee28735c68381ff18c3a52581612feebac0101a53e502956c27d144f"
|
||||
},
|
||||
{
|
||||
"byteLength": 426,
|
||||
"name": "single-mesh.mtl",
|
||||
"sha256": "392f1b10ff5a0b142d520a9443b4c96191985f15d4244c79b36fdeda0f153715"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07B",
|
||||
"operation": "DESKTOP_OBJ_SINGLE_MESH_FIXTURE",
|
||||
"operator": "wm.obj_export",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"semantic": {
|
||||
"faces": [
|
||||
{
|
||||
"groups": [
|
||||
"M12_OBJ_Single_Mesh_M12_OBJ_Red"
|
||||
],
|
||||
"material": "M12_OBJ_Red",
|
||||
"vertices": [
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 1,
|
||||
"texcoord": 1
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 2,
|
||||
"texcoord": 2
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 3,
|
||||
"texcoord": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"M12_OBJ_Single_Mesh_M12_OBJ_Blue"
|
||||
],
|
||||
"material": "M12_OBJ_Blue",
|
||||
"vertices": [
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 1,
|
||||
"texcoord": 1
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 3,
|
||||
"texcoord": 3
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 4,
|
||||
"texcoord": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"materialLibraries": [
|
||||
"single-mesh.mtl"
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"name": "M12_OBJ_Blue",
|
||||
"properties": {
|
||||
"Ka": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"Kd": [
|
||||
0.8,
|
||||
0.8,
|
||||
0.8
|
||||
],
|
||||
"Ke": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Ks": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.5
|
||||
],
|
||||
"Ni": [
|
||||
1.5
|
||||
],
|
||||
"Ns": [
|
||||
250.0
|
||||
],
|
||||
"d": [
|
||||
1.0
|
||||
],
|
||||
"illum": [
|
||||
2.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "M12_OBJ_Red",
|
||||
"properties": {
|
||||
"Ka": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"Kd": [
|
||||
0.8,
|
||||
0.8,
|
||||
0.8
|
||||
],
|
||||
"Ke": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Ks": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.5
|
||||
],
|
||||
"Ni": [
|
||||
1.5
|
||||
],
|
||||
"Ns": [
|
||||
250.0
|
||||
],
|
||||
"d": [
|
||||
1.0
|
||||
],
|
||||
"illum": [
|
||||
2.0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"normals": [
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"objects": [
|
||||
"M12_OBJ_Single_Mesh"
|
||||
],
|
||||
"positions": [
|
||||
[
|
||||
-1.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
],
|
||||
[
|
||||
-1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
]
|
||||
],
|
||||
"texcoords": [
|
||||
[
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"exportMaterialGroups": true,
|
||||
"exportMaterials": true,
|
||||
"exportNormals": true,
|
||||
"exportUV": true,
|
||||
"forwardAxis": "NEGATIVE_Z",
|
||||
"globalScale": 1.0,
|
||||
"upAxis": "Y"
|
||||
},
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/wavefront_obj",
|
||||
"task": "M12-07A"
|
||||
}
|
||||
56
tests/golden/M12-07A/manifest.json
Normal file
56
tests/golden/M12-07A/manifest.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07A",
|
||||
"parentTask": "M12-06G",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "DESKTOP_OBJ_SINGLE_MESH_FIXTURE",
|
||||
"assertions": {
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/wavefront_obj",
|
||||
"operator": "wm.obj_export",
|
||||
"objectCount": 1,
|
||||
"positionCount": 4,
|
||||
"normalCount": 1,
|
||||
"uvCount": 4,
|
||||
"faceCount": 2,
|
||||
"materialCount": 2,
|
||||
"materialGroupCount": 2,
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-06G/manifest.json",
|
||||
"sha256": "1c732b8d9f1a0bdb502f44e2e843e91efea12e93483a35658f8a9c70a69a2430"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-obj-single-mesh-fixture.py",
|
||||
"sha256": "604c3006f194c7c64a487b8f760693b66830f3cfa602928b46769955e7d4f358"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-obj-single-mesh-fixture.mjs",
|
||||
"sha256": "3d0208f61a86d4d29796d8284756f53931c90864b15b7dfe4fcc84d7f65a8040"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-07A/desktop-fixture.json",
|
||||
"sha256": "6c560a8eecf84973c2b05f9fd50d33bd45515e97c4f7970f1502de406c39f6a5"
|
||||
},
|
||||
"objFixture": {
|
||||
"path": "tests/files/web/m12_obj_desktop_v1/single-mesh.obj",
|
||||
"sha256": "a56694d1ee28735c68381ff18c3a52581612feebac0101a53e502956c27d144f"
|
||||
},
|
||||
"mtlFixture": {
|
||||
"path": "tests/files/web/m12_obj_desktop_v1/single-mesh.mtl",
|
||||
"sha256": "392f1b10ff5a0b142d520a9443b4c96191985f15d4244c79b36fdeda0f153715"
|
||||
},
|
||||
"runtimeInventory": {
|
||||
"path": "tests/golden/M12-05A/format-inventory.json",
|
||||
"sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07B"
|
||||
}
|
||||
223
tests/golden/M12-07B/desktop-fixtures.json
Normal file
223
tests/golden/M12-07B/desktop-fixtures.json
Normal file
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"byteLength": 670,
|
||||
"name": "multi-object.obj",
|
||||
"sha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a"
|
||||
},
|
||||
{
|
||||
"byteLength": 440,
|
||||
"name": "multi-object.mtl",
|
||||
"sha256": "80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f"
|
||||
},
|
||||
{
|
||||
"byteLength": 261,
|
||||
"name": "m12_obj_texture.png",
|
||||
"sha256": "44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c"
|
||||
},
|
||||
{
|
||||
"byteLength": 688,
|
||||
"name": "negative-index.obj",
|
||||
"sha256": "9457954284cac1d68e23627e3ff734c0c591b3a24086ce5aa3d0dbbfc22f01bc"
|
||||
},
|
||||
{
|
||||
"byteLength": 664,
|
||||
"name": "malformed-face.obj",
|
||||
"sha256": "6dd508b5ba944c2d15e2889c9ad9a3693845145c3bf6c9bf7df992081c915864"
|
||||
}
|
||||
],
|
||||
"malformedFace": {
|
||||
"expectedCode": "OBJ_FACE_ARITY_INVALID",
|
||||
"file": "malformed-face.obj"
|
||||
},
|
||||
"negativeIndex": {
|
||||
"expectedStatus": "ACCEPT_WITH_NEGATIVE_INDICES",
|
||||
"faceCount": 2,
|
||||
"file": "negative-index.obj"
|
||||
},
|
||||
"nextTask": "M12-07C",
|
||||
"operation": "DESKTOP_OBJ_MULTI_OBJECT_AND_NEGATIVE_FIXTURES",
|
||||
"operator": "wm.obj_export",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"semantic": {
|
||||
"faces": [
|
||||
{
|
||||
"groups": [
|
||||
"M12_OBJ_Left_M12_OBJ_Left_Material"
|
||||
],
|
||||
"material": "M12_OBJ_Left_Material",
|
||||
"object": "M12_OBJ_Left_M12_OBJ_Left_Mesh",
|
||||
"vertices": [
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 1,
|
||||
"texcoord": 1
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 2,
|
||||
"texcoord": 2
|
||||
},
|
||||
{
|
||||
"normal": 1,
|
||||
"position": 3,
|
||||
"texcoord": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"M12_OBJ_Right_M12_OBJ_Right_Material"
|
||||
],
|
||||
"material": "M12_OBJ_Right_Material",
|
||||
"object": "M12_OBJ_Right_M12_OBJ_Right_Mesh",
|
||||
"vertices": [
|
||||
{
|
||||
"normal": 2,
|
||||
"position": 4,
|
||||
"texcoord": 4
|
||||
},
|
||||
{
|
||||
"normal": 2,
|
||||
"position": 5,
|
||||
"texcoord": 5
|
||||
},
|
||||
{
|
||||
"normal": 2,
|
||||
"position": 6,
|
||||
"texcoord": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
"M12_OBJ_Left_M12_OBJ_Left_Mesh",
|
||||
"M12_OBJ_Left_M12_OBJ_Left_Material",
|
||||
"M12_OBJ_Right_M12_OBJ_Right_Mesh",
|
||||
"M12_OBJ_Right_M12_OBJ_Right_Material"
|
||||
],
|
||||
"materialLibraries": [
|
||||
"multi-object.mtl"
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"mapKd": "m12_obj_texture.png",
|
||||
"name": "M12_OBJ_Left_Material"
|
||||
},
|
||||
{
|
||||
"mapKd": "m12_obj_texture.png",
|
||||
"name": "M12_OBJ_Right_Material"
|
||||
}
|
||||
],
|
||||
"normals": [
|
||||
[
|
||||
-0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
],
|
||||
[
|
||||
-0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
]
|
||||
],
|
||||
"objects": [
|
||||
"M12_OBJ_Left_M12_OBJ_Left_Mesh",
|
||||
"M12_OBJ_Right_M12_OBJ_Right_Mesh"
|
||||
],
|
||||
"positions": [
|
||||
[
|
||||
-1.75,
|
||||
0.0,
|
||||
0.75
|
||||
],
|
||||
[
|
||||
-0.25,
|
||||
0.0,
|
||||
0.75
|
||||
],
|
||||
[
|
||||
-1.0,
|
||||
0.0,
|
||||
-0.75
|
||||
],
|
||||
[
|
||||
0.25,
|
||||
0.0,
|
||||
0.75
|
||||
],
|
||||
[
|
||||
1.75,
|
||||
0.0,
|
||||
0.75
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0,
|
||||
-0.75
|
||||
]
|
||||
],
|
||||
"texcoords": [
|
||||
[
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
0.5,
|
||||
1.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"exportMaterialGroups": true,
|
||||
"exportMaterials": true,
|
||||
"exportNormals": true,
|
||||
"exportObjectGroups": true,
|
||||
"exportUV": true,
|
||||
"forwardAxis": "NEGATIVE_Z",
|
||||
"globalScale": 1.0,
|
||||
"pathMode": "RELATIVE",
|
||||
"upAxis": "Y"
|
||||
},
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/wavefront_obj",
|
||||
"task": "M12-07B",
|
||||
"textureOrigin": {
|
||||
"mtlMapKd": [
|
||||
"m12_obj_texture.png",
|
||||
"m12_obj_texture.png"
|
||||
],
|
||||
"relative": true,
|
||||
"textureFile": "m12_obj_texture.png"
|
||||
}
|
||||
}
|
||||
68
tests/golden/M12-07B/manifest.json
Normal file
68
tests/golden/M12-07B/manifest.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07B",
|
||||
"parentTask": "M12-07A",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP_AND_OBJ_NEGATIVE_FIXTURES",
|
||||
"operation": "DESKTOP_OBJ_MULTI_OBJECT_AND_NEGATIVE_FIXTURES",
|
||||
"assertions": {
|
||||
"objectCount": 2,
|
||||
"positionCount": 6,
|
||||
"uvCount": 6,
|
||||
"normalCount": 2,
|
||||
"faceCount": 2,
|
||||
"materialCount": 2,
|
||||
"relativeTextureOrigin": true,
|
||||
"negativeIndices": "ACCEPT_WITH_NEGATIVE_INDICES",
|
||||
"malformedFace": "OBJ_FACE_ARITY_INVALID",
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07A/manifest.json",
|
||||
"sha256": "d80b74502202effa7be15640c945dc7e04af703b58e7a15c3fe7babc43c17b46"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-obj-multi-negative-fixtures.py",
|
||||
"sha256": "8d4faed82cba76e46bf639e5031b30568e8b9a15240cbddb1c22ee7ad11d697b"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-obj-multi-negative-fixtures.mjs",
|
||||
"sha256": "61188d67efd6133e714f2d55c7c8516b9d04896de068f994523a3c398eebdd2f"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-07B/desktop-fixtures.json",
|
||||
"sha256": "b60ff785676c0f0168588605ad442a650615191ac00770b7e5a308cc4ade83ce"
|
||||
},
|
||||
"objFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/multi-object.obj",
|
||||
"sha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a"
|
||||
},
|
||||
"mtlFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/multi-object.mtl",
|
||||
"sha256": "80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f"
|
||||
},
|
||||
"textureFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/m12_obj_texture.png",
|
||||
"sha256": "44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c"
|
||||
},
|
||||
"negativeIndexFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/negative-index.obj",
|
||||
"sha256": "9457954284cac1d68e23627e3ff734c0c591b3a24086ce5aa3d0dbbfc22f01bc"
|
||||
},
|
||||
"malformedFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/malformed-face.obj",
|
||||
"sha256": "6dd508b5ba944c2d15e2889c9ad9a3693845145c3bf6c9bf7df992081c915864"
|
||||
},
|
||||
"runtimeInventory": {
|
||||
"path": "tests/golden/M12-05A/format-inventory.json",
|
||||
"sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07C"
|
||||
}
|
||||
70
tests/golden/M12-07C/manifest.json
Normal file
70
tests/golden/M12-07C/manifest.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07C",
|
||||
"parentTask": "M12-07B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER_AND_BLENDER_5_2",
|
||||
"operation": "WEB_OBJ_TO_DESKTOP_ROUNDTRIP",
|
||||
"assertions": {
|
||||
"browserObjectCount": 2,
|
||||
"desktopObjectCount": 2,
|
||||
"triangleCountExact": true,
|
||||
"uvLayerPresent": true,
|
||||
"materialPresent": true,
|
||||
"boundTextureLossWarnings": 0,
|
||||
"missingTextureLossWarnings": 2,
|
||||
"desktopExact": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07B/manifest.json",
|
||||
"sha256": "785f593271058098704498cb0a7c948305087f1a83bf8f29b6e6fb9fe9341926"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/obj-import.ts",
|
||||
"sha256": "e7240af65e0d90f3ee690a4e3f391416fe4744ac6c46edc8ac0d72386857cab9"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/obj-roundtrip-test.worker.ts",
|
||||
"sha256": "bf1fcc60ec318cf6c2747d44f4af741b46f284cf5f5307e142f0ab6d50b14302"
|
||||
},
|
||||
"desktopImporter": {
|
||||
"path": "tools/web/check-obj-web-roundtrip.py",
|
||||
"sha256": "9f1eb4ab679255a0f1f596696e8befc33a4e30c0cbe6ea423e2aaa0314cec22d"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/obj-import.test.mjs",
|
||||
"sha256": "485a669be5de8e370e9b5a3239357b028ba61ca5c4076819cd46aed52a5c210a"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/obj-web-roundtrip.spec.ts",
|
||||
"sha256": "93785b4017ba14b007926b0f82442f8ae5968f242a2a762e5f5dc77d36110f5b"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-obj-web-roundtrip.mjs",
|
||||
"sha256": "9d53014f4b89f786c516ebe8d300030c2728e4a36a86a5ef136b2769a12ac96b"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M12-07C/web-roundtrip-report.json",
|
||||
"sha256": "45eaffc9c2e50c84b557d13ebbe9f4f53b63e19e00bc69b272491ef6366dff81"
|
||||
},
|
||||
"objFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/multi-object.obj",
|
||||
"sha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a"
|
||||
},
|
||||
"mtlFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/multi-object.mtl",
|
||||
"sha256": "80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f"
|
||||
},
|
||||
"textureFixture": {
|
||||
"path": "tests/files/web/m12_obj_multi_v1/m12_obj_texture.png",
|
||||
"sha256": "44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07D"
|
||||
}
|
||||
95
tests/golden/M12-07C/web-roundtrip-report.json
Normal file
95
tests/golden/M12-07C/web-roundtrip-report.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07C",
|
||||
"operation": "WEB_OBJ_TO_DESKTOP_ROUNDTRIP",
|
||||
"source": {
|
||||
"objSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"mtlSha256": "80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f",
|
||||
"textureSha256": "44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c"
|
||||
},
|
||||
"browser": {
|
||||
"imported": {
|
||||
"schemaVersion": 1,
|
||||
"objectCount": 2,
|
||||
"positionCount": 6,
|
||||
"texcoordCount": 6,
|
||||
"normalCount": 2,
|
||||
"faceCount": 2,
|
||||
"materialCount": 2
|
||||
},
|
||||
"outputObjSha256": "64d419bea9738bd584e61214b34aa67e5ed2204a0e2e1db6ed334f8561d63276",
|
||||
"outputMtlSha256": "4e00c589ed29d99994119cfa12ae9f4ef7cc13c33fdd6ee8ce2eb97e6cf61c29",
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "OBJ_EXPORT_LOSS_REPORT",
|
||||
"canRoundTrip": true,
|
||||
"warningCount": 0,
|
||||
"warnings": []
|
||||
},
|
||||
"missingTextureLoss": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "OBJ_EXPORT_LOSS_REPORT",
|
||||
"canRoundTrip": true,
|
||||
"warningCount": 2,
|
||||
"warnings": [
|
||||
{
|
||||
"code": "OBJ_TEXTURE_ORIGIN_UNRESOLVED",
|
||||
"severity": "warning",
|
||||
"message": "OBJ texture m12_obj_texture.png is not bound to a supplied asset",
|
||||
"path": "m12_obj_texture.png"
|
||||
},
|
||||
{
|
||||
"code": "OBJ_TEXTURE_ORIGIN_UNRESOLVED",
|
||||
"severity": "warning",
|
||||
"message": "OBJ texture m12_obj_texture.png is not bound to a supplied asset",
|
||||
"path": "m12_obj_texture.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"desktop": {
|
||||
"meshCount": 2,
|
||||
"objectCount": 2,
|
||||
"objects": [
|
||||
{
|
||||
"materials": [
|
||||
"M12_OBJ_Left_Material"
|
||||
],
|
||||
"name": "M12_OBJ_Left_M12_OBJ_Left_Material",
|
||||
"normalCount": 3,
|
||||
"polygonCount": 1,
|
||||
"triangleCount": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"uvLoopCount": 3,
|
||||
"vertexCount": 3
|
||||
},
|
||||
{
|
||||
"materials": [
|
||||
"M12_OBJ_Right_Material"
|
||||
],
|
||||
"name": "M12_OBJ_Right_M12_OBJ_Right_Material",
|
||||
"normalCount": 3,
|
||||
"polygonCount": 1,
|
||||
"triangleCount": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"uvLoopCount": 3,
|
||||
"vertexCount": 3
|
||||
}
|
||||
],
|
||||
"operation": "DESKTOP_IMPORT_WEB_OBJ",
|
||||
"schemaVersion": 1,
|
||||
"sourceObjBytes": 518,
|
||||
"sourceObjSha256": "64d419bea9738bd584e61214b34aa67e5ed2204a0e2e1db6ed334f8561d63276"
|
||||
},
|
||||
"comparisons": {
|
||||
"objectCountExact": true,
|
||||
"triangleCountExact": true,
|
||||
"uvLayerPresent": true,
|
||||
"materialPresent": true
|
||||
},
|
||||
"nextTask": "M12-07D"
|
||||
}
|
||||
68
tests/golden/M12-07D/capability-report.json
Normal file
68
tests/golden/M12-07D/capability-report.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"byteLength": 184,
|
||||
"name": "capability-binary.stl",
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
{
|
||||
"byteLength": 213,
|
||||
"name": "capability-ascii.stl",
|
||||
"sha256": "a463a5add8be070fb67b34f00ef6e7b46025aed31fa429d4a033d75a11cf0113"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07E",
|
||||
"operation": "DESKTOP_STL_BINARY_ASCII_CAPABILITY",
|
||||
"operator": "wm.stl_export",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"settings": {
|
||||
"evaluationMode": "DAG_EVAL_VIEWPORT",
|
||||
"exportSelectedObjects": true,
|
||||
"forwardAxis": "NEGATIVE_Z",
|
||||
"globalScale": 1.0,
|
||||
"upAxis": "Y",
|
||||
"useSceneUnit": false
|
||||
},
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/stl",
|
||||
"task": "M12-07D",
|
||||
"variants": [
|
||||
{
|
||||
"asciiFormat": false,
|
||||
"file": "capability-binary.stl",
|
||||
"id": "STL_BINARY",
|
||||
"semantic": {
|
||||
"byteLength": 184,
|
||||
"format": "STL_BINARY",
|
||||
"header": "",
|
||||
"triangleCount": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"asciiFormat": true,
|
||||
"file": "capability-ascii.stl",
|
||||
"id": "STL_ASCII",
|
||||
"semantic": {
|
||||
"byteLength": 213,
|
||||
"facetCount": 2,
|
||||
"format": "STL_ASCII",
|
||||
"solid": "",
|
||||
"vertexCount": 6
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
54
tests/golden/M12-07D/manifest.json
Normal file
54
tests/golden/M12-07D/manifest.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07D",
|
||||
"parentTask": "M12-07C",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "DESKTOP_STL_BINARY_ASCII_CAPABILITY",
|
||||
"assertions": {
|
||||
"operator": "wm.stl_export",
|
||||
"binaryVariant": "STL_BINARY",
|
||||
"asciiVariant": "STL_ASCII",
|
||||
"binaryTriangleCount": 2,
|
||||
"asciiFacetCount": 2,
|
||||
"asciiVertexCount": 6,
|
||||
"binaryByteLength": 184,
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07C/manifest.json",
|
||||
"sha256": "0c639954900b1fcc3b8285d0f4c0ecfa5807df6cde6d1f2cd3b59c4636d71674"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-stl-capability-fixtures.py",
|
||||
"sha256": "8310104e66f246b32ac7cb4619e7f4da109baf2ece39ea670cbb6d33bd88c8b8"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-stl-capability-fixtures.mjs",
|
||||
"sha256": "b2ad901eaa9701436cf7bcc8aa4e40d1b2d6eda7c6c44a0af830347a37cc9ca8"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-07D/capability-report.json",
|
||||
"sha256": "29c7d2a6e6764440c99eec25bb5760c7e0880839691757fb3e607ed4f5050013"
|
||||
},
|
||||
"binaryFixture": {
|
||||
"path": "tests/files/web/m12_stl_capability_v1/capability-binary.stl",
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
"asciiFixture": {
|
||||
"path": "tests/files/web/m12_stl_capability_v1/capability-ascii.stl",
|
||||
"sha256": "a463a5add8be070fb67b34f00ef6e7b46025aed31fa429d4a033d75a11cf0113"
|
||||
},
|
||||
"runtimeInventory": {
|
||||
"path": "tests/golden/M12-05A/format-inventory.json",
|
||||
"sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07E"
|
||||
}
|
||||
144
tests/golden/M12-07E/desktop-edge-report.json
Normal file
144
tests/golden/M12-07E/desktop-edge-report.json
Normal file
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"cases": [
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "capability-binary.stl",
|
||||
"globalScale": 1.0,
|
||||
"id": "BINARY_UNIT_1",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
1.0,
|
||||
1.0,
|
||||
7.549790126404332e-08
|
||||
],
|
||||
"min": [
|
||||
-1.0,
|
||||
-1.0,
|
||||
-7.549790126404332e-08
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 2,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "capability-binary.stl",
|
||||
"globalScale": 0.001,
|
||||
"id": "BINARY_UNIT_001",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
0.0010000000474974513,
|
||||
0.0010000000474974513,
|
||||
7.549790653760269e-11
|
||||
],
|
||||
"min": [
|
||||
-0.0010000000474974513,
|
||||
-0.0010000000474974513,
|
||||
-7.549790653760269e-11
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 2,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "degenerate-binary.stl",
|
||||
"globalScale": 1.0,
|
||||
"id": "DEGENERATE_TRIANGLE",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
1.0,
|
||||
1.0,
|
||||
7.549790126404332e-08
|
||||
],
|
||||
"min": [
|
||||
-1.0,
|
||||
-1.0,
|
||||
-7.549790126404332e-08
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 1,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0.0,
|
||||
1.0,
|
||||
-0.0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 1,
|
||||
"vertexCount": 3
|
||||
},
|
||||
"sha256": "c120bb0f218819eb89a3607c0b4f8fafd9afb599402e3b21deaa3b2be143e7d0"
|
||||
},
|
||||
{
|
||||
"byteLength": 188,
|
||||
"file": "trailing-binary.stl",
|
||||
"globalScale": 1.0,
|
||||
"id": "TRAILING_BYTES",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"min": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 0,
|
||||
"polygonNormals": [],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 0,
|
||||
"vertexCount": 0
|
||||
},
|
||||
"sha256": "0a30aab6db1588722067000e2a08c3c6206a8ed5b7531caa0b082723700a3681"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07F",
|
||||
"operation": "BLENDER_STL_EDGE_PROBE",
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07E"
|
||||
}
|
||||
27
tests/golden/M12-07E/edge-fixtures.json
Normal file
27
tests/golden/M12-07E/edge-fixtures.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07E",
|
||||
"operation": "STL_EDGE_FIXTURE_GENERATION",
|
||||
"parent": {
|
||||
"path": "tests/files/web/m12_stl_capability_v1/capability-binary.stl",
|
||||
"byteLength": 184,
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
"id": "DEGENERATE_TRIANGLE",
|
||||
"file": "degenerate-binary.stl",
|
||||
"byteLength": 184,
|
||||
"sha256": "c120bb0f218819eb89a3607c0b4f8fafd9afb599402e3b21deaa3b2be143e7d0",
|
||||
"expectedCode": "STL_DEGENERATE_TRIANGLE"
|
||||
},
|
||||
{
|
||||
"id": "TRAILING_BYTES",
|
||||
"file": "trailing-binary.stl",
|
||||
"byteLength": 188,
|
||||
"sha256": "0a30aab6db1588722067000e2a08c3c6206a8ed5b7531caa0b082723700a3681",
|
||||
"expectedCode": "STL_TRAILING_BYTES"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07F"
|
||||
}
|
||||
78
tests/golden/M12-07E/manifest.json
Normal file
78
tests/golden/M12-07E/manifest.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07E",
|
||||
"parentTask": "M12-07D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER_AND_BLENDER_5_2",
|
||||
"operation": "STL_NORMAL_UNIT_EDGE_PARITY",
|
||||
"assertions": {
|
||||
"binaryAsciiNormalExact": true,
|
||||
"desktopNormalExact": true,
|
||||
"unitRatioExactWithinFloat32": true,
|
||||
"degenerateTriangleExact": true,
|
||||
"removedDegenerateTriangles": 1,
|
||||
"trailingWeb": "BLOCKED/STL_TRAILING_BYTES",
|
||||
"trailingDesktop": "ACCEPTED_EMPTY",
|
||||
"trailingParity": "STRICTER_WEB_BLOCK"
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07D/manifest.json",
|
||||
"sha256": "bbc78e47f389562e7d648bf49c9b3bf8a08aaa36e914589a6eab0a1f6e72748d"
|
||||
},
|
||||
"fixtureGenerator": {
|
||||
"path": "tools/web/generate-stl-edge-fixtures.mjs",
|
||||
"sha256": "018013347642603c21237ebb023bdc7a4e338f5a3f875fea536a996eb121e716"
|
||||
},
|
||||
"desktopProbe": {
|
||||
"path": "tools/web/probe-stl-edge-fixtures.py",
|
||||
"sha256": "b3d6ea197ef77b5a14f60f5e6b43d4392e943ff5d56acf73915507fc9a4161b7"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/stl-import.ts",
|
||||
"sha256": "87eec72e2b8aa7ad0b168ca0ee8c4016c941f56f5f1ac53aa5fe71d0832f1dd8"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/stl-edge-test.worker.ts",
|
||||
"sha256": "d714f1f3a218a2226dd349aea81c6c54efa6246de1c4fe51aaa9f5c352ef44fc"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/stl-import.test.mjs",
|
||||
"sha256": "4af52833486421c017f3af2b833b0776e60a6ab57ed66fea2161cf9674f4b243"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/stl-edge-parity.spec.ts",
|
||||
"sha256": "121d348250e26d29ad966f7427bbef9da77de2098e2e305827b11aae52002c5c"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-stl-edge-parity.mjs",
|
||||
"sha256": "b5ed7fbb41bb46fba982d5726cb8c3eaecf360b772a01d6337c309b1c4a4f535"
|
||||
},
|
||||
"fixtureReport": {
|
||||
"path": "tests/golden/M12-07E/edge-fixtures.json",
|
||||
"sha256": "545463a984356d6635cbaae3865d13fe95bd2d841c394ac9ddff496c95d46f18"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-07E/desktop-edge-report.json",
|
||||
"sha256": "2d3028a3b7d97f39654cff5fcef1d0c1c71e9f2d08e3e29c2e926651ed3860f1"
|
||||
},
|
||||
"webReport": {
|
||||
"path": "tests/golden/M12-07E/web-edge-report.json",
|
||||
"sha256": "e0686cc9be3b68e564651207443e0ebf3e3b0eb3d07a32915b03f44b1908357b"
|
||||
},
|
||||
"degenerateFixture": {
|
||||
"path": "tests/files/web/m12_stl_edges_v1/degenerate-binary.stl",
|
||||
"sha256": "c120bb0f218819eb89a3607c0b4f8fafd9afb599402e3b21deaa3b2be143e7d0"
|
||||
},
|
||||
"trailingFixture": {
|
||||
"path": "tests/files/web/m12_stl_edges_v1/trailing-binary.stl",
|
||||
"sha256": "0a30aab6db1588722067000e2a08c3c6206a8ed5b7531caa0b082723700a3681"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07F"
|
||||
}
|
||||
436
tests/golden/M12-07E/web-edge-report.json
Normal file
436
tests/golden/M12-07E/web-edge-report.json
Normal file
@@ -0,0 +1,436 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07E",
|
||||
"operation": "STL_NORMAL_UNIT_EDGE_PARITY",
|
||||
"browser": [
|
||||
{
|
||||
"id": "BINARY_UNIT_1",
|
||||
"status": "ACCEPTED",
|
||||
"result": {
|
||||
"schemaVersion": 1,
|
||||
"variant": "STL_BINARY",
|
||||
"unitScale": 1,
|
||||
"declaredTriangleCount": 2,
|
||||
"triangleCount": 2,
|
||||
"removedDegenerateTriangles": 0,
|
||||
"normals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"vertices": [
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
]
|
||||
],
|
||||
"bounds": {
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "BINARY_UNIT_001",
|
||||
"status": "ACCEPTED",
|
||||
"result": {
|
||||
"schemaVersion": 1,
|
||||
"variant": "STL_BINARY",
|
||||
"unitScale": 0.001,
|
||||
"declaredTriangleCount": 2,
|
||||
"triangleCount": 2,
|
||||
"removedDegenerateTriangles": 0,
|
||||
"normals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"vertices": [
|
||||
[
|
||||
[
|
||||
-0.001,
|
||||
0,
|
||||
0.001
|
||||
],
|
||||
[
|
||||
0.001,
|
||||
0,
|
||||
0.001
|
||||
],
|
||||
[
|
||||
0.001,
|
||||
0,
|
||||
-0.001
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
-0.001,
|
||||
0,
|
||||
0.001
|
||||
],
|
||||
[
|
||||
0.001,
|
||||
0,
|
||||
-0.001
|
||||
],
|
||||
[
|
||||
-0.001,
|
||||
0,
|
||||
-0.001
|
||||
]
|
||||
]
|
||||
],
|
||||
"bounds": {
|
||||
"min": [
|
||||
-0.001,
|
||||
0,
|
||||
-0.001
|
||||
],
|
||||
"max": [
|
||||
0.001,
|
||||
0,
|
||||
0.001
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ASCII_UNIT_1",
|
||||
"status": "ACCEPTED",
|
||||
"result": {
|
||||
"schemaVersion": 1,
|
||||
"variant": "STL_ASCII",
|
||||
"unitScale": 1,
|
||||
"declaredTriangleCount": 2,
|
||||
"triangleCount": 2,
|
||||
"removedDegenerateTriangles": 0,
|
||||
"normals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"vertices": [
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
]
|
||||
],
|
||||
"bounds": {
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "DEGENERATE_TRIANGLE",
|
||||
"status": "ACCEPTED",
|
||||
"result": {
|
||||
"schemaVersion": 1,
|
||||
"variant": "STL_BINARY",
|
||||
"unitScale": 1,
|
||||
"declaredTriangleCount": 2,
|
||||
"triangleCount": 1,
|
||||
"removedDegenerateTriangles": 1,
|
||||
"normals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"vertices": [
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
]
|
||||
],
|
||||
"bounds": {
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "TRAILING_BYTES",
|
||||
"status": "BLOCKED",
|
||||
"code": "STL_TRAILING_BYTES"
|
||||
}
|
||||
],
|
||||
"desktop": {
|
||||
"cases": [
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "capability-binary.stl",
|
||||
"globalScale": 1,
|
||||
"id": "BINARY_UNIT_1",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
1,
|
||||
1,
|
||||
7.549790126404332e-8
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
-1,
|
||||
-7.549790126404332e-8
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 2,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "capability-binary.stl",
|
||||
"globalScale": 0.001,
|
||||
"id": "BINARY_UNIT_001",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
0.0010000000474974513,
|
||||
0.0010000000474974513,
|
||||
7.549790653760269e-11
|
||||
],
|
||||
"min": [
|
||||
-0.0010000000474974513,
|
||||
-0.0010000000474974513,
|
||||
-7.549790653760269e-11
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 2,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
{
|
||||
"byteLength": 184,
|
||||
"file": "degenerate-binary.stl",
|
||||
"globalScale": 1,
|
||||
"id": "DEGENERATE_TRIANGLE",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
1,
|
||||
1,
|
||||
7.549790126404332e-8
|
||||
],
|
||||
"min": [
|
||||
-1,
|
||||
-1,
|
||||
-7.549790126404332e-8
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 1,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 1,
|
||||
"vertexCount": 3
|
||||
},
|
||||
"sha256": "c120bb0f218819eb89a3607c0b4f8fafd9afb599402e3b21deaa3b2be143e7d0"
|
||||
},
|
||||
{
|
||||
"byteLength": 188,
|
||||
"file": "trailing-binary.stl",
|
||||
"globalScale": 1,
|
||||
"id": "TRAILING_BYTES",
|
||||
"result": {
|
||||
"bounds": {
|
||||
"max": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"objectCount": 1,
|
||||
"polygonCount": 0,
|
||||
"polygonNormals": [],
|
||||
"status": "ACCEPTED",
|
||||
"triangleCount": 0,
|
||||
"vertexCount": 0
|
||||
},
|
||||
"sha256": "0a30aab6db1588722067000e2a08c3c6206a8ed5b7531caa0b082723700a3681"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07F",
|
||||
"operation": "BLENDER_STL_EDGE_PROBE",
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07E"
|
||||
},
|
||||
"comparisons": {
|
||||
"binaryAsciiNormalExact": true,
|
||||
"desktopNormalExact": true,
|
||||
"webUnitRatio": 1000,
|
||||
"desktopUnitRatio": 999.999952502551,
|
||||
"unitRatioExactWithinFloat32": true,
|
||||
"degenerateTriangleExact": true,
|
||||
"trailingBytes": {
|
||||
"web": "BLOCKED/STL_TRAILING_BYTES",
|
||||
"desktop": "ACCEPTED_EMPTY",
|
||||
"parity": "STRICTER_WEB_BLOCK"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07F"
|
||||
}
|
||||
59
tests/golden/M12-07F/manifest.json
Normal file
59
tests/golden/M12-07F/manifest.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07F",
|
||||
"parentTask": "M12-07E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WEB_TYPESCRIPT_CHROMIUM_WORKER_AND_BLENDER_5_2",
|
||||
"operation": "WEB_STL_TO_DESKTOP_ROUNDTRIP",
|
||||
"assertions": {
|
||||
"browserTriangles": 2,
|
||||
"desktopTriangles": 2,
|
||||
"normalExact": true,
|
||||
"materialLossCode": "STL_MATERIAL_UNSUPPORTED",
|
||||
"desktopExact": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07E/manifest.json",
|
||||
"sha256": "19a9f460d1b939c9504dadd364cb87dab3b1769b0599035e2d2b51b47091e034"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/stl-export.ts",
|
||||
"sha256": "3b9c409de9fb3eaea34f82c1ddd466670d2b478845d8ff6af3c4e44cb4e04a52"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/stl-roundtrip-test.worker.ts",
|
||||
"sha256": "1da8b8281cf8ebf9ccf5fd2f42da8ed5886001ab83daba8d9fcd88980257af87"
|
||||
},
|
||||
"desktopImporter": {
|
||||
"path": "tools/web/check-stl-web-roundtrip.py",
|
||||
"sha256": "c4cbff52ff2e7cecba7aeab47e865975955da23a0e1e8ff885ece56b894558d5"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/stl-export.test.mjs",
|
||||
"sha256": "f06af242df80ec26d06e92b749449cfebaf909476198ff825207cdd4b9484102"
|
||||
},
|
||||
"chromium": {
|
||||
"path": "web/tests/e2e/stl-web-roundtrip.spec.ts",
|
||||
"sha256": "2e979dcd030f5316fcbe28e2c19b1c99fe5d111e849d3fc1d2ea316d2159032b"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-stl-web-roundtrip.mjs",
|
||||
"sha256": "093de04bf80b0909eee56ea590e04e7aa4749168e2e49615c62ab39ddc0d16cf"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M12-07F/web-roundtrip-report.json",
|
||||
"sha256": "0495c645b4280f6e7821f0ba02010e25d4accbc552e3cd7c58e052607799040e"
|
||||
},
|
||||
"sourceFixture": {
|
||||
"path": "tests/files/web/m12_stl_capability_v1/capability-binary.stl",
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07G"
|
||||
}
|
||||
122
tests/golden/M12-07F/web-roundtrip-report.json
Normal file
122
tests/golden/M12-07F/web-roundtrip-report.json
Normal file
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07F",
|
||||
"operation": "WEB_STL_TO_DESKTOP_ROUNDTRIP",
|
||||
"source": {
|
||||
"sha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"bytes": 184
|
||||
},
|
||||
"browser": {
|
||||
"imported": {
|
||||
"schemaVersion": 1,
|
||||
"variant": "STL_BINARY",
|
||||
"unitScale": 1,
|
||||
"declaredTriangleCount": 2,
|
||||
"triangleCount": 2,
|
||||
"removedDegenerateTriangles": 0,
|
||||
"normals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"vertices": [
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
]
|
||||
],
|
||||
"bounds": {
|
||||
"min": [
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"max": [
|
||||
1,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
},
|
||||
"outputSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"outputBytes": 184,
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "STL_EXPORT_LOSS_REPORT",
|
||||
"canRoundTrip": true,
|
||||
"warningCount": 1,
|
||||
"warnings": [
|
||||
{
|
||||
"code": "STL_MATERIAL_UNSUPPORTED",
|
||||
"severity": "warning",
|
||||
"message": "STL has no material slots; 2 source material assignments are omitted"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"desktop": {
|
||||
"objectCount": 1,
|
||||
"operation": "DESKTOP_IMPORT_WEB_STL",
|
||||
"polygonCount": 2,
|
||||
"polygonNormals": [
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
],
|
||||
"schemaVersion": 1,
|
||||
"sourceBytes": 184,
|
||||
"sourceSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"comparison": {
|
||||
"triangleCountExact": true,
|
||||
"normalExact": true,
|
||||
"materialLossExplicit": true
|
||||
},
|
||||
"nextTask": "M12-07G"
|
||||
}
|
||||
87
tests/golden/M12-07G/capability-report.json
Normal file
87
tests/golden/M12-07G/capability-report.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"byteLength": 322,
|
||||
"name": "capability-ascii.ply",
|
||||
"sha256": "63646cab9bf6ccecb23092e5e24d04df1e0a690c866127c72a35791e99262331"
|
||||
},
|
||||
{
|
||||
"byteLength": 391,
|
||||
"name": "capability-binary-le.ply",
|
||||
"sha256": "e40fbb494b8b147c555a0fc06eb191415406bb9a6c061acf6befd8464c8c41a5"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07H",
|
||||
"operation": "DESKTOP_PLY_ASCII_BINARY_LE_CAPABILITY",
|
||||
"operator": "wm.ply_export",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"settings": {
|
||||
"exportColors": "NONE",
|
||||
"exportNormals": true,
|
||||
"exportSelectedObjects": true,
|
||||
"exportTriangulatedMesh": true,
|
||||
"exportUV": false,
|
||||
"forwardAxis": "NEGATIVE_Z",
|
||||
"globalScale": 1.0,
|
||||
"upAxis": "Y"
|
||||
},
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/ply",
|
||||
"task": "M12-07G",
|
||||
"variants": [
|
||||
{
|
||||
"asciiFormat": true,
|
||||
"file": "capability-ascii.ply",
|
||||
"id": "PLY_ASCII",
|
||||
"semantic": {
|
||||
"byteLength": 322,
|
||||
"elements": [
|
||||
{
|
||||
"count": 4,
|
||||
"name": "vertex"
|
||||
},
|
||||
{
|
||||
"count": 2,
|
||||
"name": "face"
|
||||
}
|
||||
],
|
||||
"format": "ascii",
|
||||
"headerBytes": 254
|
||||
}
|
||||
},
|
||||
{
|
||||
"asciiFormat": false,
|
||||
"file": "capability-binary-le.ply",
|
||||
"id": "PLY_BINARY_LITTLE_ENDIAN",
|
||||
"semantic": {
|
||||
"byteLength": 391,
|
||||
"elements": [
|
||||
{
|
||||
"count": 4,
|
||||
"name": "vertex"
|
||||
},
|
||||
{
|
||||
"count": 2,
|
||||
"name": "face"
|
||||
}
|
||||
],
|
||||
"format": "binary_little_endian",
|
||||
"headerBytes": 269
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
52
tests/golden/M12-07G/manifest.json
Normal file
52
tests/golden/M12-07G/manifest.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07G",
|
||||
"parentTask": "M12-07F",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "DESKTOP_PLY_ASCII_BINARY_LE_CAPABILITY",
|
||||
"assertions": {
|
||||
"asciiVariant": "ascii",
|
||||
"binaryVariant": "binary_little_endian",
|
||||
"vertexCount": 4,
|
||||
"faceCount": 2,
|
||||
"binaryLittleEndian": true,
|
||||
"deterministicRegeneration": true
|
||||
},
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M12-07F/manifest.json",
|
||||
"sha256": "3cbbcb541ee123da0ef8916ac2ca8805680d539bbf8db3b4a8d331aec418148c"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-ply-capability-fixtures.py",
|
||||
"sha256": "581cd84057357e3a87997cf9c07d5d5633209648ac11e44611782eb254a38ebd"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-ply-capability-fixtures.mjs",
|
||||
"sha256": "5280d6e57b7a722ea881e27b792c6082c5113c1577ac0e87f87cc87fdf59516c"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-07G/capability-report.json",
|
||||
"sha256": "26b1ce83334b41778cef5ce2a1f2c4d34254f63d7c7573cb3fb550f93ddeabb2"
|
||||
},
|
||||
"asciiFixture": {
|
||||
"path": "tests/files/web/m12_ply_capability_v1/capability-ascii.ply",
|
||||
"sha256": "63646cab9bf6ccecb23092e5e24d04df1e0a690c866127c72a35791e99262331"
|
||||
},
|
||||
"binaryFixture": {
|
||||
"path": "tests/files/web/m12_ply_capability_v1/capability-binary-le.ply",
|
||||
"sha256": "e40fbb494b8b147c555a0fc06eb191415406bb9a6c061acf6befd8464c8c41a5"
|
||||
},
|
||||
"runtimeInventory": {
|
||||
"path": "tests/golden/M12-05A/format-inventory.json",
|
||||
"sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4"
|
||||
},
|
||||
"package": {
|
||||
"path": "web/package.json",
|
||||
"sha256": "cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-07H"
|
||||
}
|
||||
27
tests/golden/M12-07H/manifest.json
Normal file
27
tests/golden/M12-07H/manifest.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07H",
|
||||
"parentTask": "M12-07G",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP_AND_CHROMIUM",
|
||||
"operation": "PLY_VERTEX_FACE_COLOR_CUSTOM_MAPPING",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-07G/manifest.json", "sha256": "87df9c12f9c6eacf63051b70e9bb2eb43ebd1e5c4487b3512c45adb94cbb82ea" },
|
||||
"generator": { "path": "tools/web/generate-ply-mapping-fixtures.py", "sha256": "ffc051eccfc6973ee00cc791cdbd641fcce308b4083741e3e6ae82291d9347b7" },
|
||||
"fixtureChecker": { "path": "tools/web/check-ply-mapping-fixtures.mjs", "sha256": "2b055dbc705830848efdf4d8db8543a3ccc684de1f258732bcafefa86cf65c3a" },
|
||||
"desktopImporter": { "path": "tools/web/check-ply-web-roundtrip.py", "sha256": "6edbc6e401a1a902dcfd11c4d767e8c8620d694e40eb4ca29dd8479f9c55ef37" },
|
||||
"protocol": { "path": "web/protocol/ply-import.ts", "sha256": "058a3263fde553637840a4e9ad4e8e9d923eb52c250f8000317c7f43a228881d" },
|
||||
"worker": { "path": "web/app/src/workers/ply-roundtrip-test.worker.ts", "sha256": "f6bf5e39e83286d7b257bbdce88f4d7fa027c64651da9765567788b5cf298c71" },
|
||||
"unitTest": { "path": "web/tests/unit/ply-import.test.mjs", "sha256": "b03a5f4b4b2a974fa26e653763470b92d1433c5d352ae09ab5492b841e6e5e1f" },
|
||||
"e2eTest": { "path": "web/tests/e2e/ply-web-roundtrip.spec.ts", "sha256": "2cadebc89057655d78e9b520bb6adf9debb27c6d783cd002efee08d269636fb9" },
|
||||
"mappingReport": { "path": "tests/golden/M12-07H/mapping-report.json", "sha256": "8a02fc9e364ed79e50ef00897affa9ab63808d3cb3cdabd00fdb8ee4c26ec18a" },
|
||||
"webRoundtripReport": { "path": "tests/golden/M12-07H/web-roundtrip-report.json", "sha256": "1ca9d3b7870fcc8c9e3c9bbbd90ef48bd13bbc9ae0462312c9482f24f05f13ec" },
|
||||
"asciiFixture": { "path": "tests/files/web/m12_ply_mapping_v1/mapping-ascii.ply", "sha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5" },
|
||||
"binaryFixture": { "path": "tests/files/web/m12_ply_mapping_v1/mapping-binary-le.ply", "sha256": "d0fc195fd1a101c42ac984a2382bccdddb7d0bf60dd618e9f637c964f1b30b9e" },
|
||||
"unknownFixture": { "path": "tests/files/web/m12_ply_mapping_v1/unknown-property-ascii.ply", "sha256": "a994c7126f235d0067ce4af35f8b0c6699cc83073e2a37e982edd45ece459f33" },
|
||||
"runtimeInventory": { "path": "tests/golden/M12-05A/format-inventory.json", "sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4" },
|
||||
"package": { "path": "web/package.json", "sha256": "c56c653effb38f9ac9c53aa19a531ca0cdab04d4457212f286349091d5b65c22" }
|
||||
},
|
||||
"nextTask": "M12-07I"
|
||||
}
|
||||
292
tests/golden/M12-07H/mapping-report.json
Normal file
292
tests/golden/M12-07H/mapping-report.json
Normal file
@@ -0,0 +1,292 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"byteLength": 521,
|
||||
"name": "mapping-ascii.ply",
|
||||
"sha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5"
|
||||
},
|
||||
{
|
||||
"byteLength": 568,
|
||||
"name": "mapping-binary-le.ply",
|
||||
"sha256": "d0fc195fd1a101c42ac984a2382bccdddb7d0bf60dd618e9f637c964f1b30b9e"
|
||||
},
|
||||
{
|
||||
"byteLength": 586,
|
||||
"name": "unknown-property-ascii.ply",
|
||||
"sha256": "a994c7126f235d0067ce4af35f8b0c6699cc83073e2a37e982edd45ece459f33"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07I",
|
||||
"operation": "PLY_VERTEX_FACE_COLOR_CUSTOM_MAPPING",
|
||||
"operator": "wm.ply_export",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"settings": {
|
||||
"exportAttributes": true,
|
||||
"exportColors": "SRGB",
|
||||
"exportNormals": true,
|
||||
"exportSelectedObjects": true,
|
||||
"exportTriangulatedMesh": true,
|
||||
"exportUV": false,
|
||||
"forwardAxis": "NEGATIVE_Z",
|
||||
"globalScale": 1.0,
|
||||
"upAxis": "Y"
|
||||
},
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/io/ply",
|
||||
"task": "M12-07H",
|
||||
"unknownProperty": {
|
||||
"expectedCode": "PLY_UNKNOWN_PROPERTY",
|
||||
"file": "unknown-property-ascii.ply",
|
||||
"property": "unknown_values"
|
||||
},
|
||||
"variants": [
|
||||
{
|
||||
"file": "mapping-ascii.ply",
|
||||
"id": "PLY_ASCII_MAPPING",
|
||||
"semantic": {
|
||||
"faceCount": 2,
|
||||
"faces": [
|
||||
{
|
||||
"customProperties": {},
|
||||
"indices": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"customProperties": {},
|
||||
"indices": [
|
||||
0,
|
||||
2,
|
||||
3
|
||||
]
|
||||
}
|
||||
],
|
||||
"format": "ascii",
|
||||
"vertexCount": 4,
|
||||
"vertices": [
|
||||
{
|
||||
"color": [
|
||||
254,
|
||||
0,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 1.0,
|
||||
"temperature": 10.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
-1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
0,
|
||||
254,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 2.0,
|
||||
"temperature": 20.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
0,
|
||||
0,
|
||||
254,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 3.0,
|
||||
"temperature": 30.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
254,
|
||||
254,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 4.0,
|
||||
"temperature": 40.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
-1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"file": "mapping-binary-le.ply",
|
||||
"id": "PLY_BINARY_LITTLE_ENDIAN_MAPPING",
|
||||
"semantic": {
|
||||
"faceCount": 2,
|
||||
"faces": [
|
||||
{
|
||||
"customProperties": {},
|
||||
"indices": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"customProperties": {},
|
||||
"indices": [
|
||||
0,
|
||||
2,
|
||||
3
|
||||
]
|
||||
}
|
||||
],
|
||||
"format": "binary_little_endian",
|
||||
"vertexCount": 4,
|
||||
"vertices": [
|
||||
{
|
||||
"color": [
|
||||
254,
|
||||
0,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 1.0,
|
||||
"temperature": 10.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
-1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
0,
|
||||
254,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 2.0,
|
||||
"temperature": 20.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
0,
|
||||
0,
|
||||
254,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 3.0,
|
||||
"temperature": 30.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"color": [
|
||||
254,
|
||||
254,
|
||||
0,
|
||||
255
|
||||
],
|
||||
"customProperties": {
|
||||
"label": 4.0,
|
||||
"temperature": 40.0
|
||||
},
|
||||
"normal": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"position": [
|
||||
-1.0,
|
||||
0.0,
|
||||
-1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
179
tests/golden/M12-07H/web-roundtrip-report.json
Normal file
179
tests/golden/M12-07H/web-roundtrip-report.json
Normal file
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07H",
|
||||
"operation": "PLY_VERTEX_FACE_COLOR_CUSTOM_MAPPING",
|
||||
"source": {
|
||||
"asciiSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"binarySha256": "d0fc195fd1a101c42ac984a2382bccdddb7d0bf60dd618e9f637c964f1b30b9e",
|
||||
"unknownSha256": "a994c7126f235d0067ce4af35f8b0c6699cc83073e2a37e982edd45ece459f33"
|
||||
},
|
||||
"browser": {
|
||||
"format": "ascii",
|
||||
"vertexCount": 4,
|
||||
"faceCount": 2,
|
||||
"colors": [
|
||||
[
|
||||
0.996078431372549,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
0,
|
||||
0.996078431372549,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0.996078431372549,
|
||||
1
|
||||
],
|
||||
[
|
||||
0.996078431372549,
|
||||
0.996078431372549,
|
||||
0,
|
||||
1
|
||||
]
|
||||
],
|
||||
"customProperties": [
|
||||
{
|
||||
"temperature": 10,
|
||||
"label": 1
|
||||
},
|
||||
{
|
||||
"temperature": 20,
|
||||
"label": 2
|
||||
},
|
||||
{
|
||||
"temperature": 30,
|
||||
"label": 3
|
||||
},
|
||||
{
|
||||
"temperature": 40,
|
||||
"label": 4
|
||||
}
|
||||
],
|
||||
"outputSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"outputBytes": 509,
|
||||
"lossReport": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "PLY_IMPORT_LOSS_REPORT",
|
||||
"canImport": true,
|
||||
"warningCount": 0,
|
||||
"warnings": []
|
||||
},
|
||||
"binarySemanticEqual": true,
|
||||
"unknownPropertyLoss": {
|
||||
"schemaVersion": 1,
|
||||
"operation": "PLY_IMPORT_LOSS_REPORT",
|
||||
"canImport": true,
|
||||
"warningCount": 1,
|
||||
"warnings": [
|
||||
{
|
||||
"code": "PLY_UNKNOWN_PROPERTY",
|
||||
"severity": "warning",
|
||||
"element": "vertex",
|
||||
"property": "unknown_values",
|
||||
"message": "vertex list property unknown_values is not mapped"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"desktop": {
|
||||
"attributes": [
|
||||
{
|
||||
"dataType": "FLOAT_COLOR",
|
||||
"domain": "POINT",
|
||||
"name": "Col",
|
||||
"values": [
|
||||
[
|
||||
0.9911020398139954,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
0,
|
||||
0.9911020398139954,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0.9911020398139954,
|
||||
1
|
||||
],
|
||||
[
|
||||
0.9911020398139954,
|
||||
0.9911020398139954,
|
||||
0,
|
||||
1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"dataType": "FLOAT",
|
||||
"domain": "POINT",
|
||||
"name": "label",
|
||||
"values": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
{
|
||||
"dataType": "FLOAT",
|
||||
"domain": "POINT",
|
||||
"name": "temperature",
|
||||
"values": [
|
||||
10,
|
||||
20,
|
||||
30,
|
||||
40
|
||||
]
|
||||
}
|
||||
],
|
||||
"objectCount": 1,
|
||||
"operation": "DESKTOP_IMPORT_WEB_PLY",
|
||||
"polygonCount": 2,
|
||||
"positions": [
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
-1,
|
||||
0,
|
||||
-1
|
||||
]
|
||||
],
|
||||
"schemaVersion": 1,
|
||||
"sourceBytes": 509,
|
||||
"sourceSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"triangleCount": 2,
|
||||
"vertexCount": 4
|
||||
},
|
||||
"comparisons": {
|
||||
"vertexCountExact": true,
|
||||
"faceCountExact": true,
|
||||
"positionExact": true,
|
||||
"customPropertiesPresent": true,
|
||||
"colorMapped": true
|
||||
},
|
||||
"nextTask": "M12-07I"
|
||||
}
|
||||
22
tests/golden/M12-07I/manifest.json
Normal file
22
tests/golden/M12-07I/manifest.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07I",
|
||||
"parentTask": "M12-07H",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "CHROMIUM_WORKER",
|
||||
"operation": "PLY_NEGATIVE_FORMAT_LIST_COUNT",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-07H/manifest.json", "sha256": "0665f7c8278cad182f9af0be6af80838fb204e8e1160e5a0cdeb58e052f3b878" },
|
||||
"protocol": { "path": "web/protocol/ply-import.ts", "sha256": "058a3263fde553637840a4e9ad4e8e9d923eb52c250f8000317c7f43a228881d" },
|
||||
"generator": { "path": "tools/web/generate-ply-negative-fixtures.mjs", "sha256": "9c09707bdfe73ba467bbfbf61ed3846fb59fd33ab5563a3a62c8032722ff6938" },
|
||||
"checker": { "path": "tools/web/check-ply-negative-fixtures.mjs", "sha256": "b1d047d4cb1fa15dff7821687e7028ad073fdc62d4c76f60a2656732c0ec5e2b" },
|
||||
"unitTest": { "path": "web/tests/unit/ply-negative.test.mjs", "sha256": "60439f9e6bc221df8866956bf926816a347e85828b5a93deb26ee23015cf449a" },
|
||||
"e2eTest": { "path": "web/tests/e2e/ply-negative.spec.ts", "sha256": "6509a29d6842f3423d4dfcc40dbd52a959a5efa7ee1121143dce06e5bbc4a460" },
|
||||
"negativeReport": { "path": "tests/golden/M12-07I/negative-report.json", "sha256": "fbe2830d1b19294ea98eea66c3e00125bc0809a4bb8a750612939cbe1f5acca9" },
|
||||
"bigEndianFixture": { "path": "tests/files/web/m12_ply_negative_v1/big-endian.ply", "sha256": "cda92943a3690529fbb3463d328b6796ac0d07e19139450556f7411fc1f031e3" },
|
||||
"malformedListFixture": { "path": "tests/files/web/m12_ply_negative_v1/malformed-list-ascii.ply", "sha256": "a6a576b7a04d919b540520a6f43a89c089f0d706a17fd8b390711fff6b8b03df" },
|
||||
"oversizedCountFixture": { "path": "tests/files/web/m12_ply_negative_v1/oversized-count-ascii.ply", "sha256": "fcd99e0838025429420a47466251cfef80e638d2b5816ad14d5aa696364525bb" }
|
||||
},
|
||||
"nextTask": "M12-07J"
|
||||
}
|
||||
40
tests/golden/M12-07I/negative-report.json
Normal file
40
tests/golden/M12-07I/negative-report.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07I",
|
||||
"operation": "PLY_NEGATIVE_FORMAT_LIST_COUNT",
|
||||
"cases": [
|
||||
{
|
||||
"id": "big-endian",
|
||||
"file": "big-endian.ply",
|
||||
"expectedCode": "PLY_FORMAT_UNSUPPORTED"
|
||||
},
|
||||
{
|
||||
"id": "malformed-list",
|
||||
"file": "malformed-list-ascii.ply",
|
||||
"expectedCode": "PLY_DATA_TRUNCATED"
|
||||
},
|
||||
{
|
||||
"id": "oversized-count",
|
||||
"file": "oversized-count-ascii.ply",
|
||||
"expectedCode": "PLY_IMPORT_BUDGET_EXCEEDED: vertex"
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"name": "big-endian.ply",
|
||||
"byteLength": 179,
|
||||
"sha256": "cda92943a3690529fbb3463d328b6796ac0d07e19139450556f7411fc1f031e3"
|
||||
},
|
||||
{
|
||||
"name": "malformed-list-ascii.ply",
|
||||
"byteLength": 179,
|
||||
"sha256": "a6a576b7a04d919b540520a6f43a89c089f0d706a17fd8b390711fff6b8b03df"
|
||||
},
|
||||
{
|
||||
"name": "oversized-count-ascii.ply",
|
||||
"byteLength": 159,
|
||||
"sha256": "fcd99e0838025429420a47466251cfef80e638d2b5816ad14d5aa696364525bb"
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-07J"
|
||||
}
|
||||
376
tests/golden/M12-07J/io-format-recovery-report.json
Normal file
376
tests/golden/M12-07J/io-format-recovery-report.json
Normal file
@@ -0,0 +1,376 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07J",
|
||||
"operation": "IO_FORMAT_THREE_WAY_RECOVERY",
|
||||
"formats": {
|
||||
"OBJ": {
|
||||
"sourceSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"cancel": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-cancel-1",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "CANCELLED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 670,
|
||||
"inputSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OPERATION_CANCELLED"
|
||||
},
|
||||
"oom": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-oom-1",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "BLOCKED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 524289,
|
||||
"inputSha256": "42b47b7a78c2a45c3ab9694e86574825450221fe25d23bf505b97af4ca20283b",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OOM"
|
||||
},
|
||||
"first": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-first-1",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 670,
|
||||
"inputSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"outputBytes": 530,
|
||||
"outputSha256": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"second": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-second-2",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 670,
|
||||
"inputSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"outputBytes": 530,
|
||||
"outputSha256": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"recovered": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-first-1",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "RECOVERED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 670,
|
||||
"inputSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"outputBytes": 530,
|
||||
"outputSha256": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true,
|
||||
"errorCode": "IO_FORMAT_WORKER_RESTARTED"
|
||||
},
|
||||
"small": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "obj-small-3",
|
||||
"format": "OBJ",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 3,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 670,
|
||||
"inputSha256": "4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a",
|
||||
"outputBytes": 530,
|
||||
"outputSha256": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"hashes": {
|
||||
"first": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"second": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d",
|
||||
"small": "caa36e17111d6dbc9369581b9a52ecb4ff81a951eb11ff3094f80ac273c4c53d"
|
||||
}
|
||||
},
|
||||
"STL": {
|
||||
"sourceSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"cancel": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-cancel-1",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "CANCELLED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 184,
|
||||
"inputSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OPERATION_CANCELLED"
|
||||
},
|
||||
"oom": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-oom-1",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "BLOCKED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 524289,
|
||||
"inputSha256": "42b47b7a78c2a45c3ab9694e86574825450221fe25d23bf505b97af4ca20283b",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OOM"
|
||||
},
|
||||
"first": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-first-1",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 184,
|
||||
"inputSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"outputBytes": 184,
|
||||
"outputSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"second": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-second-2",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 184,
|
||||
"inputSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"outputBytes": 184,
|
||||
"outputSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"recovered": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-first-1",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "RECOVERED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 184,
|
||||
"inputSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"outputBytes": 184,
|
||||
"outputSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true,
|
||||
"errorCode": "IO_FORMAT_WORKER_RESTARTED"
|
||||
},
|
||||
"small": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "stl-small-3",
|
||||
"format": "STL",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 3,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 184,
|
||||
"inputSha256": "50161172cd12e4240067064db6f80e74b2df69c475e3e34154e9d0523928c1ca",
|
||||
"outputBytes": 184,
|
||||
"outputSha256": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"hashes": {
|
||||
"first": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"second": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d",
|
||||
"small": "689d060c125c41a79d98f4ff241ebe10d9e0f1faebe6e66e507efa962dce1b2d"
|
||||
}
|
||||
},
|
||||
"PLY": {
|
||||
"sourceSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"cancel": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-cancel-1",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "CANCELLED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 521,
|
||||
"inputSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OPERATION_CANCELLED"
|
||||
},
|
||||
"oom": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-oom-1",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "BLOCKED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 524289,
|
||||
"inputSha256": "42b47b7a78c2a45c3ab9694e86574825450221fe25d23bf505b97af4ca20283b",
|
||||
"outputBytes": 0,
|
||||
"outputSha256": null,
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 0,
|
||||
"committed": false,
|
||||
"errorCode": "IO_FORMAT_OOM"
|
||||
},
|
||||
"first": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-first-1",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 1,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 521,
|
||||
"inputSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"outputBytes": 509,
|
||||
"outputSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"second": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-second-2",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 521,
|
||||
"inputSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"outputBytes": 509,
|
||||
"outputSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"recovered": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-first-1",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "RECOVERED",
|
||||
"workerGeneration": 2,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 521,
|
||||
"inputSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"outputBytes": 509,
|
||||
"outputSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true,
|
||||
"errorCode": "IO_FORMAT_WORKER_RESTARTED"
|
||||
},
|
||||
"small": {
|
||||
"schemaVersion": 1,
|
||||
"operationId": "ply-small-3",
|
||||
"format": "PLY",
|
||||
"operation": "IMPORT",
|
||||
"status": "COMMITTED",
|
||||
"workerGeneration": 3,
|
||||
"baseRevision": 4,
|
||||
"candidateRevision": 5,
|
||||
"inputBytes": 521,
|
||||
"inputSha256": "acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5",
|
||||
"outputBytes": 509,
|
||||
"outputSha256": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"temporaryBytes": 0,
|
||||
"liveRequests": 0,
|
||||
"publishedResults": 1,
|
||||
"committed": true
|
||||
},
|
||||
"hashes": {
|
||||
"first": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"second": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5",
|
||||
"small": "399a06c8f593dcdeda9ce9f4c6be74fa83b9fc905ae22a01f4af414284585cf5"
|
||||
}
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"formats": [
|
||||
"OBJ",
|
||||
"STL",
|
||||
"PLY"
|
||||
],
|
||||
"cancellationUnpublished": true,
|
||||
"oomUnpublished": true,
|
||||
"restartHashStable": true,
|
||||
"smallRecoveryStable": true
|
||||
},
|
||||
"nextTask": "M13-01A"
|
||||
}
|
||||
20
tests/golden/M12-07J/manifest.json
Normal file
20
tests/golden/M12-07J/manifest.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-07J",
|
||||
"parentTask": "M12-07I",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "CHROMIUM_WORKER",
|
||||
"operation": "IO_FORMAT_THREE_WAY_RECOVERY",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-07I/manifest.json", "sha256": "02be4b2e2cabecf4a239ba52be385b926a70e794c6f8c745d89dada568e6d674" },
|
||||
"protocol": { "path": "web/protocol/io-format-recovery.ts", "sha256": "7e352539e3300969c7409c34d6056eb6ad31055431ffce84b1b0a459c335480a" },
|
||||
"worker": { "path": "web/app/src/workers/io-format-recovery-test.worker.ts", "sha256": "63b78fbf25132cad28147ef68731f2cd212a26c96b464fdec349a13ebaa1174f" },
|
||||
"testingAdapter": { "path": "web/app/src/testing/io-format-recovery.ts", "sha256": "cfcebb6ec38936a66983957b0dede716871cfbfbea3cb53cddc16f3e24fb19b0" },
|
||||
"unitTest": { "path": "web/tests/unit/io-format-recovery.test.mjs", "sha256": "aaed1f2abe4789b084c8a6a60bcce8595d38220d7e6678a93924cd05c5716b4f" },
|
||||
"e2eTest": { "path": "web/tests/e2e/io-format-recovery.spec.ts", "sha256": "5c1750fa408e1297fc43f2e5749be3e9ac08a16b86265d22f0f06053f52b3bd7" },
|
||||
"checker": { "path": "tools/web/check-io-format-recovery.mjs", "sha256": "6ef6bc4a168f8675a4933a06c296f61076b9ea64cec25b295e961a9b610ab1a2" },
|
||||
"report": { "path": "tests/golden/M12-07J/io-format-recovery-report.json", "sha256": "35d4fe10d8a4fa84d6e05a85f20ca50975d93a86df41e73c7bbc5875edc4fc70" }
|
||||
},
|
||||
"nextTask": "M13-01A"
|
||||
}
|
||||
156
tests/golden/M13-01A/entry-inventory.json
Normal file
156
tests/golden/M13-01A/entry-inventory.json
Normal file
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"executionPolicy": {
|
||||
"addon": "DENY",
|
||||
"autorun": "DENY",
|
||||
"driverExpression": "DENY",
|
||||
"handler": "DENY",
|
||||
"pythonConsole": "DENY",
|
||||
"text": "READ_METADATA_ONLY"
|
||||
},
|
||||
"fixture": {
|
||||
"byteLength": 497845,
|
||||
"name": "script-entry-inventory.blend",
|
||||
"sha256": "bd6375d02908bfcc57ff7cdeec3f9827bfc4336d1e46e165c5fbbf4d04f19645"
|
||||
},
|
||||
"inventory": {
|
||||
"addons": {
|
||||
"defaultExecution": "DENY",
|
||||
"enabledAddons": [
|
||||
"bl_pkg",
|
||||
"cycles",
|
||||
"io_anim_bvh",
|
||||
"io_curve_svg",
|
||||
"io_mesh_uv_layout",
|
||||
"io_scene_fbx",
|
||||
"io_scene_gltf2",
|
||||
"pose_library"
|
||||
],
|
||||
"operatorIds": [
|
||||
"preferences.addon_install",
|
||||
"preferences.addon_enable",
|
||||
"preferences.addon_disable",
|
||||
"preferences.addon_remove"
|
||||
]
|
||||
},
|
||||
"autorun": {
|
||||
"defaultExecution": "DENY",
|
||||
"moduleTextNames": [
|
||||
"ModuleAutorun.py"
|
||||
]
|
||||
},
|
||||
"driverExpressions": {
|
||||
"count": 1,
|
||||
"defaultExecution": "DENY",
|
||||
"entries": [
|
||||
{
|
||||
"arrayIndex": 0,
|
||||
"dataPath": "location",
|
||||
"expression": "var * 2",
|
||||
"object": "M13 Script Inventory Object",
|
||||
"variableCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"handlers": {
|
||||
"defaultExecution": "DENY",
|
||||
"groups": [
|
||||
"animation_playback_post",
|
||||
"animation_playback_pre",
|
||||
"annotation_post",
|
||||
"annotation_pre",
|
||||
"blend_import_post",
|
||||
"blend_import_pre",
|
||||
"composite_cancel",
|
||||
"composite_post",
|
||||
"composite_pre",
|
||||
"depsgraph_update_post",
|
||||
"depsgraph_update_pre",
|
||||
"exit_pre",
|
||||
"frame_change_post",
|
||||
"frame_change_pre",
|
||||
"load_factory_preferences_post",
|
||||
"load_factory_startup_post",
|
||||
"load_post",
|
||||
"load_post_fail",
|
||||
"load_pre",
|
||||
"object_bake_cancel",
|
||||
"object_bake_complete",
|
||||
"object_bake_pre",
|
||||
"redo_post",
|
||||
"redo_pre",
|
||||
"render_cancel",
|
||||
"render_complete",
|
||||
"render_init",
|
||||
"render_post",
|
||||
"render_pre",
|
||||
"render_stats",
|
||||
"render_write",
|
||||
"save_post",
|
||||
"save_post_fail",
|
||||
"save_pre",
|
||||
"translation_update_post",
|
||||
"undo_post",
|
||||
"undo_pre",
|
||||
"version_update",
|
||||
"xr_session_start_pre"
|
||||
]
|
||||
},
|
||||
"pythonConsole": {
|
||||
"available": true,
|
||||
"operatorIds": [
|
||||
"console.execute",
|
||||
"console.history_append",
|
||||
"console.scrollback_append"
|
||||
]
|
||||
},
|
||||
"text": {
|
||||
"count": 3,
|
||||
"entries": [
|
||||
{
|
||||
"byteLength": 29,
|
||||
"filepath": "//scripts/external_project.py",
|
||||
"internal": false,
|
||||
"lineCount": 2,
|
||||
"name": "ExternalProject.py",
|
||||
"useModule": false
|
||||
},
|
||||
{
|
||||
"byteLength": 23,
|
||||
"filepath": "",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"name": "InternalSafe.py",
|
||||
"useModule": false
|
||||
},
|
||||
{
|
||||
"byteLength": 37,
|
||||
"filepath": "",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"name": "ModuleAutorun.py",
|
||||
"useModule": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-01B",
|
||||
"operation": "BLENDER_SCRIPT_ENTRY_INVENTORY",
|
||||
"runtime": {
|
||||
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"buildBranch": "unknown",
|
||||
"buildDate": "2026-07-24",
|
||||
"buildHash": "unknown",
|
||||
"buildPlatform": "Linux",
|
||||
"buildTime": "08:03:47",
|
||||
"buildType": "Release",
|
||||
"versionTuple": [
|
||||
5,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"sourceAnchor": "blender-5.2.0/source/blender/python",
|
||||
"task": "M13-01A"
|
||||
}
|
||||
18
tests/golden/M13-01A/manifest.json
Normal file
18
tests/golden/M13-01A/manifest.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01A",
|
||||
"parentTask": "M12-07J",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "BLENDER_SCRIPT_ENTRY_INVENTORY",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M12-07J/manifest.json", "sha256": "a1c4cf9c2cc300ace388e6c430bd1aa991511a7d1c5482c638fb298bb362cd02" },
|
||||
"generator": { "path": "tools/web/generate-script-entry-inventory.py", "sha256": "b72667493cfe9957161ef3fb9814180e0cfad5f8aaa1c60c9b6f132e915f3d6f" },
|
||||
"checker": { "path": "tools/web/check-script-entry-inventory.mjs", "sha256": "68478f15de4d63ed175e6b580761fd478b1fe9bccbfcaeee82218d13063dfa51" },
|
||||
"report": { "path": "tests/golden/M13-01A/entry-inventory.json", "sha256": "e024995c53f01beaf725f281f74a6e5ec6018a53435da61a66f5e58a9e50973c" },
|
||||
"fixture": { "path": "tests/files/web/m13_script_entry_v1/script-entry-inventory.blend", "sha256": "bd6375d02908bfcc57ff7cdeec3f9827bfc4336d1e46e165c5fbbf4d04f19645" },
|
||||
"runtimeInventory": { "path": "tests/golden/M12-05A/format-inventory.json", "sha256": "0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4" }
|
||||
},
|
||||
"nextTask": "M13-01B"
|
||||
}
|
||||
17
tests/golden/M13-01B/manifest.json
Normal file
17
tests/golden/M13-01B/manifest.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01B",
|
||||
"parentTask": "M13-01A",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_WASM_MAIN_AND_CHROMIUM",
|
||||
"operation": "BLEND_OPEN_SCRIPT_METADATA_ONLY",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M13-01A/manifest.json", "sha256": "d4a305033343ef5fb1ffc073617b59d9012f64b80ecb233e743fb0789a8b4893" },
|
||||
"checker": { "path": "tools/web/check-script-open-metadata.mjs", "sha256": "66396d5c9a5294021ae077bb162278c74d46de8b52ac8a444a5de4f6d84cfe05" },
|
||||
"e2eTest": { "path": "web/tests/e2e/script-open-metadata.spec.ts", "sha256": "df6412cda113c830996e08c3d66a035dc1ac309e392f5946a762d11121b1926c" },
|
||||
"report": { "path": "tests/golden/M13-01B/open-metadata-report.json", "sha256": "f92470e57c048452134664f7f6208e50b6f087dbcbc33369e6b882c51813990c" },
|
||||
"fixture": { "path": "tests/files/web/script_scene.blend", "sha256": "2b8fbdb05419e1e61d64777998d6a3b2562f726c17f548cd1852efc723e1a037" }
|
||||
},
|
||||
"nextTask": "M13-01C"
|
||||
}
|
||||
31
tests/golden/M13-01B/open-metadata-report.json
Normal file
31
tests/golden/M13-01B/open-metadata-report.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01B",
|
||||
"operation": "BLEND_OPEN_SCRIPT_METADATA_ONLY",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/script_scene.blend",
|
||||
"byteLength": 490191,
|
||||
"sha256": "2b8fbdb05419e1e61d64777998d6a3b2562f726c17f548cd1852efc723e1a037"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "ExternalProject.py",
|
||||
"executionStatus": "BLOCKED",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"name": "InternalSafe.py",
|
||||
"executionStatus": "BLOCKED",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"name": "ModuleAutorun.py",
|
||||
"executionStatus": "BLOCKED",
|
||||
"readOnly": true,
|
||||
"moduleAutorunRequested": true,
|
||||
"errorCode": "SCRIPT_POLICY_DENIED"
|
||||
}
|
||||
],
|
||||
"execution": "DENY",
|
||||
"nextTask": "M13-01C"
|
||||
}
|
||||
16
tests/golden/M13-01C/manifest.json
Normal file
16
tests/golden/M13-01C/manifest.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01C",
|
||||
"parentTask": "M13-01B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "WASM_PROTOCOL_NODE",
|
||||
"operation": "SCRIPT_DEFAULT_DENY_POLICY_CODES",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M13-01B/manifest.json", "sha256": "0bb0abdb9f4d250a15c3889a4fb5c2630b8c416f4eb5c6523aa30097c8e45fd3" },
|
||||
"checker": { "path": "tools/web/check-script-policy-codes.mjs", "sha256": "22588c2198bc8c425ab8e104e8559f0053654ae778aaea3783ec7d54822bc8f4" },
|
||||
"unitTest": { "path": "web/tests/unit/script-policy-codes.test.mjs", "sha256": "b5a52b8e707963545f1cd71f1a148fa9c9b9d1e4b4c5f51c87d33f8bf3777430" },
|
||||
"report": { "path": "tests/golden/M13-01C/policy-codes-report.json", "sha256": "956db548ee71688a4b89c9a993259d3e57129cd4abe9efd1b9397b3e30b1bf84" }
|
||||
},
|
||||
"nextTask": "M13-01D"
|
||||
}
|
||||
21
tests/golden/M13-01C/policy-codes-report.json
Normal file
21
tests/golden/M13-01C/policy-codes-report.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01C",
|
||||
"operation": "SCRIPT_DEFAULT_DENY_POLICY_CODES",
|
||||
"deniedEntries": [
|
||||
{
|
||||
"entry": "autorun",
|
||||
"code": "SCRIPT_POLICY_DENIED"
|
||||
},
|
||||
{
|
||||
"entry": "driverExpressions",
|
||||
"code": "DRIVER_EXECUTION_BLOCKED"
|
||||
},
|
||||
{
|
||||
"entry": "addonInstall",
|
||||
"code": "ADDON_INSTALL_BLOCKED"
|
||||
}
|
||||
],
|
||||
"approvedKeySandboxCode": "SCRIPT_SANDBOX_UNAVAILABLE",
|
||||
"nextTask": "M13-01D"
|
||||
}
|
||||
15
tests/golden/M13-01D/manifest.json
Normal file
15
tests/golden/M13-01D/manifest.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01D",
|
||||
"parentTask": "M13-01C",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "STATIC_PRODUCTION_SOURCE",
|
||||
"operation": "SCRIPT_UI_DIRECT_EVAL_BYPASS_SCAN",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M13-01C/manifest.json", "sha256": "b35728fcd8e6267a3e5ee925d45abde019597b20eeb4c4c8e0a373ca99907d9b" },
|
||||
"checker": { "path": "tools/web/check-script-ui-bypass.mjs", "sha256": "f34cb64891c2b22bc3da353f6b864ba3e558d3c286cf716bcb778d9a542cb3d9" },
|
||||
"report": { "path": "tests/golden/M13-01D/ui-bypass-report.json", "sha256": "6b050092088508ebd5d769d95a2e66f0cd4020c97f3407724a19b9707f51f6dd" }
|
||||
},
|
||||
"nextTask": "M13-01E"
|
||||
}
|
||||
19
tests/golden/M13-01D/ui-bypass-report.json
Normal file
19
tests/golden/M13-01D/ui-bypass-report.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01D",
|
||||
"operation": "SCRIPT_UI_DIRECT_EVAL_BYPASS_SCAN",
|
||||
"roots": [
|
||||
"web/app/src/app",
|
||||
"web/app/src/workers",
|
||||
"web/protocol"
|
||||
],
|
||||
"scannedFiles": 176,
|
||||
"violations": [],
|
||||
"policyEntrypoints": [
|
||||
"gateScriptExecution",
|
||||
"gateServerScriptJob",
|
||||
"parseScriptSourceInventory"
|
||||
],
|
||||
"execution": "DENY",
|
||||
"nextTask": "M13-01E"
|
||||
}
|
||||
17
tests/golden/M13-01E/manifest.json
Normal file
17
tests/golden/M13-01E/manifest.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01E",
|
||||
"parentTask": "M13-01D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "CHROMIUM_WEB_ENGINE",
|
||||
"operation": "SCRIPT_TEXT_SAVE_REOPEN",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M13-01D/manifest.json", "sha256": "6b28688b3ebcce5629bcfc437d4ca903d0b1e053b32a796690ee4e021726c75b" },
|
||||
"checker": { "path": "tools/web/check-script-save-reopen.mjs", "sha256": "7fc9a370cb472636e2699565cb21a1450e3cc8a2c90ffdcdff96533b344afa7c" },
|
||||
"e2eTest": { "path": "web/tests/e2e/script-save-reopen.spec.ts", "sha256": "481f78f3a0cce923b67ab14436cc23cbcd2ce66725de29dc874fea4fb5801227" },
|
||||
"report": { "path": "tests/golden/M13-01E/script-save-reopen-report.json", "sha256": "0f6869a8ec8342ed87649312d2872ab2c172cbf12d6be81bb0b770ebcbe8a398" },
|
||||
"fixture": { "path": "tests/files/web/script_scene.blend", "sha256": "2b8fbdb05419e1e61d64777998d6a3b2562f726c17f548cd1852efc723e1a037" }
|
||||
},
|
||||
"nextTask": "M13-01F"
|
||||
}
|
||||
102
tests/golden/M13-01E/script-save-reopen-report.json
Normal file
102
tests/golden/M13-01E/script-save-reopen-report.json
Normal file
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01E",
|
||||
"operation": "SCRIPT_TEXT_SAVE_REOPEN",
|
||||
"source": {
|
||||
"fixtureSha256": "2b8fbdb05419e1e61d64777998d6a3b2562f726c17f548cd1852efc723e1a037",
|
||||
"fixtureBytes": 490191
|
||||
},
|
||||
"before": {
|
||||
"schemaVersion": 1,
|
||||
"sources": [
|
||||
{
|
||||
"byteLength": 29,
|
||||
"errorCode": "SCRIPT_SANDBOX_UNAVAILABLE",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:ExternalProject.py",
|
||||
"internal": false,
|
||||
"lineCount": 2,
|
||||
"moduleAutorunRequested": false,
|
||||
"name": "ExternalProject.py",
|
||||
"readOnly": true,
|
||||
"source": "message = 'project relative'\n",
|
||||
"sourcePath": "//scripts/external_project.py",
|
||||
"sourceSha256": "1332a556fa4a8c0d55c6661931bcc7c3cd79a193bab5e34c8b060cf97fec6a96"
|
||||
},
|
||||
{
|
||||
"byteLength": 23,
|
||||
"errorCode": "SCRIPT_SANDBOX_UNAVAILABLE",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:InternalSafe.py",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"moduleAutorunRequested": false,
|
||||
"name": "InternalSafe.py",
|
||||
"readOnly": true,
|
||||
"source": "value = 7\nprint(value)\n",
|
||||
"sourceSha256": "1676bea86b7d12f595d531c32286e26ad0ac7a249d1bd40744b01634977ae582"
|
||||
},
|
||||
{
|
||||
"byteLength": 37,
|
||||
"errorCode": "SCRIPT_POLICY_DENIED",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:ModuleAutorun.py",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"moduleAutorunRequested": true,
|
||||
"name": "ModuleAutorun.py",
|
||||
"readOnly": true,
|
||||
"source": "def register():\n return 'blocked'\n",
|
||||
"sourceSha256": "4b1d1ffa97bf18cd834d1a2472cab16f24f1439143964d09d283b6cc043e17bd"
|
||||
}
|
||||
]
|
||||
},
|
||||
"after": {
|
||||
"schemaVersion": 1,
|
||||
"sources": [
|
||||
{
|
||||
"byteLength": 29,
|
||||
"errorCode": "SCRIPT_SANDBOX_UNAVAILABLE",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:ExternalProject.py",
|
||||
"internal": false,
|
||||
"lineCount": 2,
|
||||
"moduleAutorunRequested": false,
|
||||
"name": "ExternalProject.py",
|
||||
"readOnly": true,
|
||||
"source": "message = 'project relative'\n",
|
||||
"sourcePath": "//scripts/external_project.py",
|
||||
"sourceSha256": "1332a556fa4a8c0d55c6661931bcc7c3cd79a193bab5e34c8b060cf97fec6a96"
|
||||
},
|
||||
{
|
||||
"byteLength": 23,
|
||||
"errorCode": "SCRIPT_SANDBOX_UNAVAILABLE",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:InternalSafe.py",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"moduleAutorunRequested": false,
|
||||
"name": "InternalSafe.py",
|
||||
"readOnly": true,
|
||||
"source": "value = 7\nprint(value)\n",
|
||||
"sourceSha256": "1676bea86b7d12f595d531c32286e26ad0ac7a249d1bd40744b01634977ae582"
|
||||
},
|
||||
{
|
||||
"byteLength": 37,
|
||||
"errorCode": "SCRIPT_POLICY_DENIED",
|
||||
"executionStatus": "BLOCKED",
|
||||
"id": "text:ModuleAutorun.py",
|
||||
"internal": true,
|
||||
"lineCount": 3,
|
||||
"moduleAutorunRequested": true,
|
||||
"name": "ModuleAutorun.py",
|
||||
"readOnly": true,
|
||||
"source": "def register():\n return 'blocked'\n",
|
||||
"sourceSha256": "4b1d1ffa97bf18cd834d1a2472cab16f24f1439143964d09d283b6cc043e17bd"
|
||||
}
|
||||
]
|
||||
},
|
||||
"savedBytes": 490191,
|
||||
"exact": true,
|
||||
"nextTask": "M13-01F"
|
||||
}
|
||||
37
tests/golden/M13-01F/malicious-report.json
Normal file
37
tests/golden/M13-01F/malicious-report.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"fixture": {
|
||||
"byteLength": 491160,
|
||||
"name": "malicious-script.blend",
|
||||
"sha256": "7b1921931afc5bb74a2b73e90b175017c583ea878cdbb66f131718b2d8cd23b5"
|
||||
},
|
||||
"nextTask": "M13-02A",
|
||||
"operation": "MALICIOUS_SCRIPT_FIXTURE",
|
||||
"schemaVersion": 1,
|
||||
"sources": [
|
||||
{
|
||||
"expectedExecution": "BLOCKED",
|
||||
"name": "DriverExploit.py",
|
||||
"sourceSha256": "065c9f659ba12657ad0d5cc513aea1f589c6ed69feabb0f56dd786d2002b691d",
|
||||
"useModule": false
|
||||
},
|
||||
{
|
||||
"expectedExecution": "BLOCKED",
|
||||
"name": "EmbeddedModule.py",
|
||||
"sourceSha256": "7bc119a7cbfb129a2fa48e3636b9e05e03326f73711942594f6a8ee28f8bbd3f",
|
||||
"useModule": true
|
||||
},
|
||||
{
|
||||
"expectedExecution": "BLOCKED",
|
||||
"name": "HandlerExploit.py",
|
||||
"sourceSha256": "bc028c5143813ecc35384e0f366dcd4f42f7531f1e748713626f9710f5147373",
|
||||
"useModule": false
|
||||
},
|
||||
{
|
||||
"expectedExecution": "BLOCKED",
|
||||
"name": "MaliciousText.py",
|
||||
"sourceSha256": "c852d3e669074d4951900312aed2625fdb5d9e106328257607a1e4cad43172eb",
|
||||
"useModule": false
|
||||
}
|
||||
],
|
||||
"task": "M13-01F"
|
||||
}
|
||||
18
tests/golden/M13-01F/manifest.json
Normal file
18
tests/golden/M13-01F/manifest.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-01F",
|
||||
"parentTask": "M13-01E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP_AND_CHROMIUM",
|
||||
"operation": "MALICIOUS_SCRIPT_FIXTURE",
|
||||
"artifacts": {
|
||||
"parentManifest": { "path": "tests/golden/M13-01E/manifest.json", "sha256": "889a4e06f7e8c0ea55b3ca4baa9fe85dccbe97053e497a45e3d364ce2b70a7c6" },
|
||||
"generator": { "path": "tools/web/generate-malicious-script-fixture.py", "sha256": "013285befeb59de21a887cefd377adf8cf53ff1c785b28a9c87d29f76f092731" },
|
||||
"checker": { "path": "tools/web/check-malicious-script-fixture.mjs", "sha256": "36608da893ae59e2e03856a62866ea6e7c349ec4a63200f042b2329e5f61caa9" },
|
||||
"e2eTest": { "path": "web/tests/e2e/malicious-script.spec.ts", "sha256": "98fbde6728ddf55cce5262522197a5b4db1dfce618e52259bf0b0c9e0e9165f2" },
|
||||
"report": { "path": "tests/golden/M13-01F/malicious-report.json", "sha256": "a628b73411d6f9a761f659ae28867ea9b0c0df30d47668353278b70d4b44180c" },
|
||||
"fixture": { "path": "tests/files/web/m13_malicious_script_v1/malicious-script.blend", "sha256": "7b1921931afc5bb74a2b73e90b175017c583ea878cdbb66f131718b2d8cd23b5" }
|
||||
},
|
||||
"nextTask": "M13-02A"
|
||||
}
|
||||
45
tests/golden/M13-02A/manifest-budget-report.json
Normal file
45
tests/golden/M13-02A/manifest-budget-report.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02A",
|
||||
"operation": "SCRIPT_MANIFEST_BUDGETS",
|
||||
"accepted": {
|
||||
"scriptCount": 2,
|
||||
"canonicalEntryPath": "scripts/base.py",
|
||||
"canonicalDependencyPath": "deps/base.py",
|
||||
"totalSourceBytes": 256,
|
||||
"module": false
|
||||
},
|
||||
"denied": {
|
||||
"count": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_BUDGET_EXCEEDED"
|
||||
},
|
||||
"totalBytes": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_BUDGET_EXCEEDED"
|
||||
},
|
||||
"module": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_POLICY_DENIED"
|
||||
},
|
||||
"path": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_MANIFEST_INVALID"
|
||||
},
|
||||
"dependency": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_MANIFEST_INVALID"
|
||||
},
|
||||
"permission": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SCRIPT_POLICY_DENIED"
|
||||
}
|
||||
},
|
||||
"budgets": {
|
||||
"maxScripts": 1024,
|
||||
"maxSourceBytes": 1048576,
|
||||
"maxDependencies": 128,
|
||||
"maxPermissions": 64
|
||||
},
|
||||
"nextTask": "M13-02B"
|
||||
}
|
||||
40
tests/golden/M13-02A/manifest.json
Normal file
40
tests/golden/M13-02A/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02A",
|
||||
"parentTask": "M13-01F",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_MANIFEST_BUDGETS",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-01F/manifest.json",
|
||||
"sha256": "9a0b7c4097b3755365a9fb92b4848e6ac2ddd36ee2c7e9df3cb8808ce247cf3d"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/scripting-manifest-budget-test.worker.ts",
|
||||
"sha256": "8d8eae67fa6915f0337850e15247baf01f0abde0b3362fbb120f0b448f1a4cf5"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-manifest-budgets.mjs",
|
||||
"sha256": "b3457324d72ab233cd17a142ea19fac6a0d024dd95de7b8fb5d26810437fb0d2"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-manifest-budgets.test.mjs",
|
||||
"sha256": "6ce7847a0b745ba4081e4332d012e0b7f86e4906c71c95bdeda8c39977a630ee"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-manifest-budgets.spec.ts",
|
||||
"sha256": "1ef4fd4caaeb1fa3d832fc8881823d5284755372575eab186c751f408dc9314c"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02A/manifest-budget-report.json",
|
||||
"sha256": "860672fe844b7969ca376d4b2708771189d1767efa819f7b97667d8a26438d3a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-02B"
|
||||
}
|
||||
30
tests/golden/M13-02B/manifest-canonical-report.json
Normal file
30
tests/golden/M13-02B/manifest-canonical-report.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02B",
|
||||
"operation": "SCRIPT_MANIFEST_CANONICAL_SERIALIZATION",
|
||||
"equalOrderVariants": true,
|
||||
"canonical": {
|
||||
"scriptOrder": [
|
||||
"alpha",
|
||||
"beta",
|
||||
"zeta"
|
||||
],
|
||||
"alphaPermissions": [
|
||||
"READ_ASSET",
|
||||
"SUBMIT_SERVER_JOB"
|
||||
],
|
||||
"zetaDependencies": [
|
||||
"alpha",
|
||||
"beta"
|
||||
],
|
||||
"unknownFieldsDropped": true
|
||||
},
|
||||
"signatureInput": {
|
||||
"schemaVersion": 1,
|
||||
"byteLength": 1923,
|
||||
"sha256": "8dcb1c31e9ff0066f2a4e225af49f84daeb8b0d0e713e4525228ee015846480a",
|
||||
"sourceByteLengthMutationChangesInput": true,
|
||||
"schemaMutationRejected": true
|
||||
},
|
||||
"nextTask": "M13-02C"
|
||||
}
|
||||
40
tests/golden/M13-02B/manifest.json
Normal file
40
tests/golden/M13-02B/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02B",
|
||||
"parentTask": "M13-02A",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_MANIFEST_CANONICAL_SERIALIZATION",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02A/manifest.json",
|
||||
"sha256": "7148e0387dadffdb55e94e80dc30cfd5cdd40ebe990d06378e90c376d36ebd51"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/scripting-manifest-canonical-test.worker.ts",
|
||||
"sha256": "de27fdcd6d16e27a07806ac609f908edfdb7a93d653676174cdd5e06ffa394af"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-manifest-canonical.mjs",
|
||||
"sha256": "5ed344cab6428ae5538a450171ba40c73ff738666515492298e30aaed1394f56"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-manifest-canonical.test.mjs",
|
||||
"sha256": "33eae0f3ad2ae7243c9ce2835ab8e42186f65f574ab682099766f1d0f4c481f6"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-manifest-canonical.spec.ts",
|
||||
"sha256": "5342301165ae82a01b46f5fed0cc0ec34b9813a6ecbc8032900d90b89628e064"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02B/manifest-canonical-report.json",
|
||||
"sha256": "5f4bc0b098ea65de47f1255d30130376d74260e2b912bcd0e28354171fbd07df"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-02C"
|
||||
}
|
||||
40
tests/golden/M13-02C/manifest.json
Normal file
40
tests/golden/M13-02C/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02C",
|
||||
"parentTask": "M13-02B",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_TRUST_POLICY",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02B/manifest.json",
|
||||
"sha256": "605c656780a206a0d3b81d06b0294108b488a62d2b709e886884a2973c6cb091"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-trust-policy-test.worker.ts",
|
||||
"sha256": "c6e206b29e7cacc3e23e2ac12a3d523a9c0b16ff29759126dab13c8665547421"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-trust-policy.mjs",
|
||||
"sha256": "0e55ce20d142f2bcbc5ce9c6fb955ef2771d284dff636c79da3f59a33b8b0aeb"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-trust-policy.test.mjs",
|
||||
"sha256": "aac3ff0a1c7ae27e35112614bedabc02bb248882ec9b0b52d65f9794d06830d8"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-trust-policy.spec.ts",
|
||||
"sha256": "614091bda15367090bc78a6f465fb10d02d0aa08775b5088699b12e2490034d2"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02C/trust-policy-report.json",
|
||||
"sha256": "0f59f733920edbbe5cb799e5f50ff31d19e55ced98e7a890828f6337a237e4bd"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-02D"
|
||||
}
|
||||
26
tests/golden/M13-02C/trust-policy-report.json
Normal file
26
tests/golden/M13-02C/trust-policy-report.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02C",
|
||||
"operation": "SCRIPT_TRUST_POLICY",
|
||||
"identity": {
|
||||
"algorithm": "ED25519",
|
||||
"publisher": "Team",
|
||||
"activeKey": "key:new",
|
||||
"predecessor": "key:old",
|
||||
"predecessorStatus": "REVOKED"
|
||||
},
|
||||
"timestampPolicy": {
|
||||
"issuedAt": "2026-01-01T00:00:00.000Z",
|
||||
"expiresAt": "2027-01-01T00:00:00.000Z",
|
||||
"maxClockSkewMs": 300000
|
||||
},
|
||||
"decisions": {
|
||||
"eligible": "ELIGIBLE",
|
||||
"cryptographicVerification": "REQUIRED",
|
||||
"revoked": "REVOKED",
|
||||
"crossPublisher": "SCRIPT_POLICY_DENIED",
|
||||
"policyExpired": "POLICY_EXPIRED"
|
||||
},
|
||||
"policySha256": "6c272f0b6662656194fff46c71faf69a87e0eafa31091ec474bf96eb76948323",
|
||||
"nextTask": "M13-02D"
|
||||
}
|
||||
40
tests/golden/M13-02D/manifest.json
Normal file
40
tests/golden/M13-02D/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02D",
|
||||
"parentTask": "M13-02C",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_SIGNATURE_VERIFICATION",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02C/manifest.json",
|
||||
"sha256": "89745daca88371335f4bd56982791266461082066c6c1345056fbc697bb7e6a2"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-signature-test.worker.ts",
|
||||
"sha256": "f4e8ff45d06efcfa9e634ef28e654241d70554ed05dfe9c3fecd9f6eef166ce0"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-signature.mjs",
|
||||
"sha256": "2d6e7b403dd6d401eb1a41978016b40bd1fb86120464e09f185de4445c177fa4"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-trust-policy.test.mjs",
|
||||
"sha256": "aac3ff0a1c7ae27e35112614bedabc02bb248882ec9b0b52d65f9794d06830d8"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-signature.spec.ts",
|
||||
"sha256": "8a882fc8fa2c0c4e2eab3660810cec0f60d2f7475f62a1bb406fc3b2bdf60882"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02D/signature-report.json",
|
||||
"sha256": "957daf8e5899714cc5ce253b1f0fb2b258f1cc966238fff31e2626f8f56feb3a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-02E"
|
||||
}
|
||||
24
tests/golden/M13-02D/signature-report.json
Normal file
24
tests/golden/M13-02D/signature-report.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02D",
|
||||
"operation": "SCRIPT_SIGNATURE_VERIFICATION",
|
||||
"signer": {
|
||||
"algorithm": "ED25519",
|
||||
"keyId": "key:new",
|
||||
"publisher": "Team",
|
||||
"cryptographicVerification": "REQUIRED"
|
||||
},
|
||||
"decisions": {
|
||||
"verified": "SCRIPT_SIGNATURE_VERIFIED",
|
||||
"sourceHashChanged": "SCRIPT_SIGNATURE_INVALID",
|
||||
"signatureChanged": "SCRIPT_SIGNATURE_INVALID",
|
||||
"revoked": "SCRIPT_POLICY_DENIED"
|
||||
},
|
||||
"input": {
|
||||
"verifiedSha256": "978efe254fc421028bc1c62e7fee809f7b08b60ea2928501d0b2cfb71bf59cd2",
|
||||
"changedSha256": "5e7aed5aea6b3dcc635f8d1ba99099e7e27ddb3110f12afc7d40995986ba8cfb",
|
||||
"sourceHashMutationChangesInput": true,
|
||||
"signatureExcludedFromInput": true
|
||||
},
|
||||
"nextTask": "M13-02E"
|
||||
}
|
||||
40
tests/golden/M13-02E/manifest.json
Normal file
40
tests/golden/M13-02E/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02E",
|
||||
"parentTask": "M13-02D",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_PERMISSION_MINIMIZATION",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02D/manifest.json",
|
||||
"sha256": "c6b79a77e4b7ffe5f4a9ba785a30305f9cf6e86caf89b38a4b303a86ab662a31"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-permission-policy-test.worker.ts",
|
||||
"sha256": "5df074e676542475009a4980fecaf3fdde009d149de84b9ca146647fb6aa1c02"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-permission-policy.mjs",
|
||||
"sha256": "169ab096295e08c5a630ef09d814da6ce742efd7a7143ff9a17984b4ca20593a"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-permission-policy.test.mjs",
|
||||
"sha256": "43bb6796616f3f92d71b51ef2a119a4e263864121a03356764e4b9c9241c4043"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-permission-policy.spec.ts",
|
||||
"sha256": "dc13412a44f277bbe68315da0d38a2c4aa520d7489c81e7c908f9768c0547b7e"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02E/permission-policy-report.json",
|
||||
"sha256": "8dc41e75620ba5bcb08d0edc52c3994e4f4dbc37ad3633757634bf10fe97b252"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-02F"
|
||||
}
|
||||
21
tests/golden/M13-02E/permission-policy-report.json
Normal file
21
tests/golden/M13-02E/permission-policy-report.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02E",
|
||||
"operation": "SCRIPT_PERMISSION_MINIMIZATION",
|
||||
"decisions": {
|
||||
"defaultGrant": "ALLOWED",
|
||||
"declaredGrant": "ALLOWED",
|
||||
"escalation": "SCRIPT_POLICY_DENIED",
|
||||
"unknownRequest": "SCRIPT_POLICY_DENIED",
|
||||
"duplicateRequest": "SCRIPT_POLICY_DENIED",
|
||||
"unknownDeclaration": "SCRIPT_POLICY_DENIED"
|
||||
},
|
||||
"invariant": {
|
||||
"undeclaredNeverGranted": true,
|
||||
"defaultGrantedCount": 0,
|
||||
"declaredGranted": [
|
||||
"READ_MAIN"
|
||||
]
|
||||
},
|
||||
"nextTask": "M13-02F"
|
||||
}
|
||||
40
tests/golden/M13-02F/manifest.json
Normal file
40
tests/golden/M13-02F/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02F",
|
||||
"parentTask": "M13-02E",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_SIGNATURE_NEGATIVE_CASES",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02E/manifest.json",
|
||||
"sha256": "691376d3cd33d3cd339b7195034abaf89cc02fba7e740c40ff051c4496400eef"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-signature-negative-test.worker.ts",
|
||||
"sha256": "49b289110a6533fcd1a29ad78be00792fd3c0d251c6027bae0440f5daba929a1"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-signature-negative.mjs",
|
||||
"sha256": "35f2e6727aef5e6ea2e2623e2effa6ea0356faaf66d417976db7f5bbe671a38c"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-signature-negative.test.mjs",
|
||||
"sha256": "8b9c8d63c97fce07299622b9ad261791a97bb91a6ed340e72c24c55e685978bd"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-signature-negative.spec.ts",
|
||||
"sha256": "26c52ef67d6b1ea2994d92637826994e98e5234e042049f8d69a905f5cdb3309"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-02F/signature-negative-report.json",
|
||||
"sha256": "d23a2ae5613b2442ad79420aa344ebfe3767d10ac19b3ea30a62afcccd3a167c"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-03A"
|
||||
}
|
||||
21
tests/golden/M13-02F/signature-negative-report.json
Normal file
21
tests/golden/M13-02F/signature-negative-report.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-02F",
|
||||
"operation": "SCRIPT_SIGNATURE_NEGATIVE_CASES",
|
||||
"decisions": {
|
||||
"missing": "SCRIPT_POLICY_DENIED",
|
||||
"expired": "SCRIPT_POLICY_DENIED",
|
||||
"notYetValid": "SCRIPT_POLICY_DENIED",
|
||||
"publisherMismatch": "SCRIPT_POLICY_DENIED",
|
||||
"swapped": "SCRIPT_SIGNATURE_INVALID"
|
||||
},
|
||||
"invariants": {
|
||||
"missingKeyDenied": true,
|
||||
"expiredKeyDenied": true,
|
||||
"notYetValidKeyDenied": true,
|
||||
"publisherConfusionDenied": true,
|
||||
"swappedSignatureDenied": true,
|
||||
"noExecution": true
|
||||
},
|
||||
"nextTask": "M13-03A"
|
||||
}
|
||||
40
tests/golden/M13-03A/manifest.json
Normal file
40
tests/golden/M13-03A/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-03A",
|
||||
"parentTask": "M13-02F",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_SANDBOX_SCOPE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-02F/manifest.json",
|
||||
"sha256": "283673b21e6c9b89dc6ecb7007f3cecf28d53a84ec84f3f8b52373c055538a74"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-sandbox-scope-test.worker.ts",
|
||||
"sha256": "27058fbb602791cbe6691fa14b3bc9c3d6cdea79641ba9c72fe18b6226d2a651"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-sandbox-scope.mjs",
|
||||
"sha256": "ad26ea3b078e480ba8f99cbf8dbd0d9b135c7605f4a3958d24845b7f5f8b0f43"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-sandbox-scope.test.mjs",
|
||||
"sha256": "a15da2e645d2d681c7e9ac1380f6b224d196d1d2e78d20f1bacad01e138753d4"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-sandbox-scope.spec.ts",
|
||||
"sha256": "49930747e6663f79b61093706318b72e59388d79e3e1cc105bc1571693326667"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-03A/sandbox-scope-report.json",
|
||||
"sha256": "ba5784c751d5a347f38aa522ffcbed270d38fb474f0f10a2d06ea501d0234021"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-03B"
|
||||
}
|
||||
29
tests/golden/M13-03A/sandbox-scope-report.json
Normal file
29
tests/golden/M13-03A/sandbox-scope-report.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-03A",
|
||||
"operation": "SCRIPT_SANDBOX_SCOPE",
|
||||
"accepted": {
|
||||
"schemaVersion": 1,
|
||||
"dom": false,
|
||||
"hostWorker": false,
|
||||
"opfs": false,
|
||||
"indexedDB": false,
|
||||
"network": false
|
||||
},
|
||||
"blocked": {
|
||||
"dom": "SCRIPT_POLICY_DENIED",
|
||||
"hostWorker": "SCRIPT_POLICY_DENIED",
|
||||
"opfs": "SCRIPT_POLICY_DENIED",
|
||||
"indexedDB": "SCRIPT_POLICY_DENIED",
|
||||
"network": "SCRIPT_POLICY_DENIED"
|
||||
},
|
||||
"execution": "DISABLED",
|
||||
"invariants": {
|
||||
"noDom": true,
|
||||
"noHostWorker": true,
|
||||
"noOPFS": true,
|
||||
"noIndexedDB": true,
|
||||
"noNetwork": true
|
||||
},
|
||||
"nextTask": "M13-03B"
|
||||
}
|
||||
40
tests/golden/M13-03B/manifest.json
Normal file
40
tests/golden/M13-03B/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-03B",
|
||||
"parentTask": "M13-03A",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "PRODUCTION_PROTOCOL_AND_CHROMIUM_WORKER",
|
||||
"operation": "SCRIPT_SANDBOX_BUDGET",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M13-03A/manifest.json",
|
||||
"sha256": "76a7ce0fd3a38fb770c9cedccbd05ed566b931caa1782fdae898d3b66c3a20bf"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/scripting-platform.ts",
|
||||
"sha256": "6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/app/src/workers/script-sandbox-budget-test.worker.ts",
|
||||
"sha256": "ed836a032b33f54154fdd36f9f6e99ee43ca1755ea0dd8326474a13300ec965e"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-script-sandbox-budget.mjs",
|
||||
"sha256": "ab10d1d32c20022c848be4b33e1be846168a9ca4cf22ac932ea000001e9e2391"
|
||||
},
|
||||
"unit": {
|
||||
"path": "web/tests/unit/script-sandbox-budget.test.mjs",
|
||||
"sha256": "caa40fc58a73aa4d433285c94009e5436a29fbcb6b4e18b74b27c49fd0b07490"
|
||||
},
|
||||
"e2e": {
|
||||
"path": "web/tests/e2e/script-sandbox-budget.spec.ts",
|
||||
"sha256": "8be77fd55e76149bfe2e0e449d81a62707ebfa430514936808ec4805fc96e07c"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/M13-03B/sandbox-budget-report.json",
|
||||
"sha256": "4355710e07e95cbb0f96a82fdefca3607f363d3aea9ba89c332e8a4708b7bed2"
|
||||
}
|
||||
},
|
||||
"nextTask": "M13-03C"
|
||||
}
|
||||
29
tests/golden/M13-03B/sandbox-budget-report.json
Normal file
29
tests/golden/M13-03B/sandbox-budget-report.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-03B",
|
||||
"operation": "SCRIPT_SANDBOX_BUDGET",
|
||||
"accepted": {
|
||||
"schemaVersion": 1,
|
||||
"cpuMs": 1000,
|
||||
"wallMs": 5000,
|
||||
"memoryBytes": 1048576,
|
||||
"maxMessageBytes": 4096,
|
||||
"maxOutputBytes": 8192
|
||||
},
|
||||
"blocked": {
|
||||
"cpuMs": "SCRIPT_BUDGET_EXCEEDED",
|
||||
"wallMs": "SCRIPT_BUDGET_EXCEEDED",
|
||||
"memoryBytes": "SCRIPT_BUDGET_EXCEEDED",
|
||||
"maxMessageBytes": "SCRIPT_BUDGET_EXCEEDED",
|
||||
"maxOutputBytes": "SCRIPT_BUDGET_EXCEEDED"
|
||||
},
|
||||
"execution": "DISABLED",
|
||||
"invariants": {
|
||||
"cpuBounded": true,
|
||||
"wallBounded": true,
|
||||
"memoryBounded": true,
|
||||
"messageBounded": true,
|
||||
"outputBounded": true
|
||||
},
|
||||
"nextTask": "M13-03C"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user