Complete first release candidate audit (#107)
Some checks failed
API and SemVer surface / api-surface (push) Failing after 1m34s
Native code generation / deterministic (push) Has been cancelled
Concurrency and resource soak audit / soak (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
performance evidence / audit (push) Has been cancelled
First release candidate / non-fuzz-release-gate (push) Has been cancelled
Release platform and feature matrix / audit (push) Has been cancelled
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Dependency and supply-chain audit / audit (push) Has been cancelled
Native release artifact audit / audit (push) Has been cancelled
Imaging and meshing gate / native (push) Failing after 53s
JPEG 2000 feature / linux (push) Successful in 2m49s
Native Rust workspace compile / compile (push) Failing after 59s
Skia feature / linux (push) Has been cancelled
Some checks failed
API and SemVer surface / api-surface (push) Failing after 1m34s
Native code generation / deterministic (push) Has been cancelled
Concurrency and resource soak audit / soak (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
performance evidence / audit (push) Has been cancelled
First release candidate / non-fuzz-release-gate (push) Has been cancelled
Release platform and feature matrix / audit (push) Has been cancelled
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Dependency and supply-chain audit / audit (push) Has been cancelled
Native release artifact audit / audit (push) Has been cancelled
Imaging and meshing gate / native (push) Failing after 53s
JPEG 2000 feature / linux (push) Successful in 2m49s
Native Rust workspace compile / compile (push) Failing after 59s
Skia feature / linux (push) Has been cancelled
This commit is contained in:
146
tests/PARITY.md
146
tests/PARITY.md
@@ -51,48 +51,48 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/AnimeshSkinningTests.cs::AnimeshSkinningTests.DeformVertices_NullWeights_PassesPositionsThrough::test` | `AnimeshSkinningTests.DeformVertices_NullWeights_PassesPositionsThrough` | `` | `LibreMetaverse.Tests/AnimeshSkinningTests.cs:115` | `Animesh` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:516 (`animesh_skinning_deform_vertices_null_weights_passes_positions_through`)` | `translated` | `bbeb45d84770e6b766272bf9a5d48bd415ba98681d9da70d256598429566144d` |
|
||||
| `LibreMetaverse.Tests/AnimeshSkinningTests.cs::AnimeshSkinningTests.DeformVertices_ShortOutputSpan_ThrowsArgumentException::test` | `AnimeshSkinningTests.DeformVertices_ShortOutputSpan_ThrowsArgumentException` | `` | `LibreMetaverse.Tests/AnimeshSkinningTests.cs:136` | `Animesh` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:539 (`animesh_skinning_deform_vertices_short_output_span_throws_argument`)` | `translated` | `dfb10b33cedddadbaa5431f1fdf8a1c59369441e94618f97ef13f53ab931907b` |
|
||||
| `LibreMetaverse.Tests/AnimeshSkinningTests.cs::AnimeshSkinningTests.DeformVertices_IdentitySkinning_FullWeight_PreservesPositions::test` | `AnimeshSkinningTests.DeformVertices_IdentitySkinning_FullWeight_PreservesPositions` | `` | `LibreMetaverse.Tests/AnimeshSkinningTests.cs:155` | `Animesh` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:556 (`animesh_skinning_deform_vertices_identity_skinning_full_weight_preserves_positions`)` | `translated` | `fcf305a633047e7a4181954fee4990db3537e549f2cb940b08e6d3f0f544c8e1` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_IsInitializedAfterLogin::test` | `AppearanceLiveTests.COF_IsInitializedAfterLogin` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:122` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:58 (`cof_is_initialized_after_login`)` | `ignored-live` | `7029854dc6f4e03016e2ea274140cd9adbbad6b8c11b58cf9e728d9a4cf37f81` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_HasExpectedFolderName::test` | `AppearanceLiveTests.COF_HasExpectedFolderName` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:138` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:71 (`cof_has_expected_folder_name`)` | `ignored-live` | `9a8cee3c3958b8631921aaa6b43f69dc430eee9bd3544c8f667aa8f5e858b8ac` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetCurrentOutfitLinksAsync_ReturnsLinks::test` | `AppearanceLiveTests.GetCurrentOutfitLinksAsync_ReturnsLinks` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:155` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:84 (`get_current_outfit_links_returns_links`)` | `ignored-live` | `a1a1c9f926a8b9f4cc4287ab751c4eb70d25a83c1024ef76e53f95c351db8a35` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetCurrentOutfitLinksAsync_ContainsAtLeastOneLink::test` | `AppearanceLiveTests.GetCurrentOutfitLinksAsync_ContainsAtLeastOneLink` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:177` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:98 (`get_current_outfit_links_contains_at_least_one_link`)` | `ignored-live` | `ef91dfaf7b75f61c97c3957b4dac006a153c7f2d167d6732a9a6dceee08883f2` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetWornAt_Shape_ReturnsAtLeastOne::test` | `AppearanceLiveTests.GetWornAt_Shape_ReturnsAtLeastOne` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:199` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:114 (`get_worn_at_shape_returns_at_least_one`)` | `ignored-live` | `abc01e346371910610312ff9352ee05c0d317a7c677c0fa8cb398d3b0522c3bf` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_IsInitializedAfterLogin::test` | `AppearanceLiveTests.COF_IsInitializedAfterLogin` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:122` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:47 (`cof_is_initialized_after_login`)` | `ignored-live` | `7029854dc6f4e03016e2ea274140cd9adbbad6b8c11b58cf9e728d9a4cf37f81` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_HasExpectedFolderName::test` | `AppearanceLiveTests.COF_HasExpectedFolderName` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:138` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:62 (`cof_has_expected_folder_name`)` | `ignored-live` | `9a8cee3c3958b8631921aaa6b43f69dc430eee9bd3544c8f667aa8f5e858b8ac` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetCurrentOutfitLinksAsync_ReturnsLinks::test` | `AppearanceLiveTests.GetCurrentOutfitLinksAsync_ReturnsLinks` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:155` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:77 (`get_current_outfit_links_returns_links`)` | `ignored-live` | `a1a1c9f926a8b9f4cc4287ab751c4eb70d25a83c1024ef76e53f95c351db8a35` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetCurrentOutfitLinksAsync_ContainsAtLeastOneLink::test` | `AppearanceLiveTests.GetCurrentOutfitLinksAsync_ContainsAtLeastOneLink` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:177` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:94 (`get_current_outfit_links_contains_at_least_one_link`)` | `ignored-live` | `ef91dfaf7b75f61c97c3957b4dac006a153c7f2d167d6732a9a6dceee08883f2` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetWornAt_Shape_ReturnsAtLeastOne::test` | `AppearanceLiveTests.GetWornAt_Shape_ReturnsAtLeastOne` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:199` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:112 (`get_worn_at_shape_returns_at_least_one`)` | `ignored-live` | `abc01e346371910610312ff9352ee05c0d317a7c677c0fa8cb398d3b0522c3bf` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.LastUpdateReceivedCOFVersion_AdvancesAfterLogin::test` | `AppearanceLiveTests.LastUpdateReceivedCOFVersion_AdvancesAfterLogin` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:222` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:130 (`last_update_received_cof_version_advances_after_login`)` | `ignored-live` | `5371df8b02df9da20b413f4155f63967184dad23f57708beb56a2c6559e78520` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.RequestOwnAvatarTextures_DoesNotThrow_AndMaintainsVersionGuard::test` | `AppearanceLiveTests.RequestOwnAvatarTextures_DoesNotThrow_AndMaintainsVersionGuard` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:254` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:154 (`request_own_avatar_textures_does_not_throw_and_maintains_version_guard`)` | `ignored-live` | `ee8420690fc9714411450beb5be5755b82ddf7ed0d69e9da88b3184339bea744` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_MaxClothingLayers_Is60::test` | `AppearanceLiveTests.COF_MaxClothingLayers_Is60` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:289` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:179 (`cof_max_clothing_layers_is_60`)` | `ignored-live` | `aac1292781cb0a4cbf710535036fa6464065f72d1b2c5214a9b7dc918513e8cd` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableTypeToAssetType_BodypartsAndClothing_ReturnsExpected::test` | `AppearanceManagerTests.WearableTypeToAssetType_BodypartsAndClothing_ReturnsExpected` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:8` | `` | `` | `tests/compat/tests/appearance_semantics.rs:23 (`appearance_manager_wearable_type_to_asset_type_returns_expected`)` | `translated` | `6d0f0d09a6da8121ba828159a75ca1c1ce54329ec48060a6786aa8f807c13ec0` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndexToTextureIndex_Matches_BakeTypeToAgentTextureIndex::test` | `AppearanceManagerTests.BakeIndexToTextureIndex_Matches_BakeTypeToAgentTextureIndex` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:22` | `` | `` | `tests/compat/tests/appearance_semantics.rs:52 (`appearance_manager_bake_index_matches_agent_texture_index`)` | `translated` | `c559ea49314b157605346243713fd10480a10f9a97daffd9cac8acccbd39612b` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndex_ArrayLength_Equals_BAKED_TEXTURE_COUNT::test` | `AppearanceManagerTests.BakeIndex_ArrayLength_Equals_BAKED_TEXTURE_COUNT` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:33` | `` | `` | `tests/compat/tests/appearance_semantics.rs:66 (`appearance_manager_bake_index_array_length_matches_count`)` | `translated` | `b661ca888df5b7fd41e51dfd298fb6d5e30a3a848102006c109b9dc4fc0e165c` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Head_IncludesExpectedSlots::test` | `AppearanceManagerTests.BakeTypeToTextures_Head_IncludesExpectedSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:39` | `` | `` | `tests/compat/tests/appearance_semantics.rs:75 (`appearance_manager_head_bake_includes_expected_slots`)` | `translated` | `44e03523f0e3f6691e527e014bfc38d9ca57c1d310e7cf2c6d7ae8a429a31e1d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesExpectedSlots::test` | `AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesExpectedSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:49` | `` | `` | `tests/compat/tests/appearance_semantics.rs:86 (`appearance_manager_upper_body_bake_includes_expected_slots`)` | `translated` | `fb7650becf6c01c1e7ffd731ac7b6c013957467110c7ed8d5bef9788ee9a5a16` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_LowerBody_Eyes_Skirt_Hair_IncludeExpected::test` | `AppearanceManagerTests.BakeTypeToTextures_LowerBody_Eyes_Skirt_Hair_IncludeExpected` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:59` | `` | `` | `tests/compat/tests/appearance_semantics.rs:97 (`appearance_manager_lower_eyes_skirt_hair_bakes_include_expected_slots`)` | `translated` | `fad2baeca74cab39305c8f599c5de5777b55c329738db5c55f58a09366870374` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.MorphLayerForBakeType_ReturnsExpectedIndices::test` | `AppearanceManagerTests.MorphLayerForBakeType_ReturnsExpectedIndices` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:78` | `` | `` | `tests/compat/tests/appearance_semantics.rs:117 (`appearance_manager_morph_layer_returns_expected_indices`)` | `translated` | `3051ccea9adec4f9ef824ce967c74e7708b62a2264b98ae22340eb8d1927c44f` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_HasExpectedDimensions_And_FirstLayerContainsShapeAndSkin::test` | `AppearanceManagerTests.WearableBakeMap_HasExpectedDimensions_And_FirstLayerContainsShapeAndSkin` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:87` | `` | `` | `tests/compat/tests/appearance_semantics.rs:142 (`appearance_manager_wearable_bake_map_has_expected_dimensions_and_first_layer`)` | `translated` | `42c072449d1819c956035d1f0290b90acc1e62b4e1e6309590d0cb6cb41bb375` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToAgentTextureIndex_ReturnsUnknown_ForInvalid::test` | `AppearanceManagerTests.BakeTypeToAgentTextureIndex_ReturnsUnknown_ForInvalid` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:95` | `` | `` | `tests/compat/tests/appearance_semantics.rs:151 (`appearance_manager_invalid_bake_type_returns_unknown_texture_index`)` | `translated` | `bc79d717462f06d498050182b6d116cea73f3bc173853f6d7894e3de88b70432` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BAKED_TEXTURE_COUNT_Is11::test` | `AppearanceManagerTests.BAKED_TEXTURE_COUNT_Is11` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:104` | `` | `` | `tests/compat/tests/appearance_semantics.rs:161 (`appearance_manager_baked_texture_count_is_eleven`)` | `translated` | `9d34c333f7e143d25964553dedaa1bae79c20e1aead331626f449a3894e31e5b` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakedTextureHash_Has11Entries::test` | `AppearanceManagerTests.BakedTextureHash_Has11Entries` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:110` | `` | `` | `tests/compat/tests/appearance_semantics.rs:167 (`appearance_manager_baked_texture_hash_has_eleven_entries`)` | `translated` | `7b26852cc8c1d7257e3e5f6f936f3870e0a06845f5809cc3000d67eb7590a49e` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakedTextureHash_AllEntriesNonZero::test` | `AppearanceManagerTests.BakedTextureHash_AllEntriesNonZero` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:116` | `` | `` | `tests/compat/tests/appearance_semantics.rs:173 (`appearance_manager_baked_texture_hash_entries_are_nonzero`)` | `translated` | `dc7a4010cfc2f975c0624bc5fbceed414297b1139f734d79786b2bb20d943553` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_Has11Rows::test` | `AppearanceManagerTests.WearableBakeMap_Has11Rows` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:123` | `` | `` | `tests/compat/tests/appearance_semantics.rs:182 (`appearance_manager_wearable_bake_map_has_eleven_rows`)` | `translated` | `db6016bcdc90f21095f0723556489ec174603783dc40805b56123e25d7a83312` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_ExtendedRows_AreAllInvalid::test` | `AppearanceManagerTests.WearableBakeMap_ExtendedRows_AreAllInvalid` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:129` | `` | `` | `tests/compat/tests/appearance_semantics.rs:188 (`appearance_manager_extended_wearable_bake_rows_are_invalid`)` | `translated` | `9b36d72c16980dc3780137dda47afa9cd79ef3a2be0d8ccb20723e1e1ac67f41` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndexToTextureIndex_ExtendedBakes_MatchAgentTextureIndex::test` | `AppearanceManagerTests.BakeIndexToTextureIndex_ExtendedBakes_MatchAgentTextureIndex` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:140` | `` | `` | `tests/compat/tests/appearance_semantics.rs:199 (`appearance_manager_extended_bake_indices_match_agent_texture_indices`)` | `translated` | `c331e94827930443aa3ca327374ec562fc9a294fce3304d7cba9f7e7859e43d3` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Head_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Head_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:154` | `` | `` | `tests/compat/tests/appearance_semantics.rs:213 (`appearance_manager_head_bake_includes_universal_tattoo`)` | `translated` | `578423fedcd5e4ed4e53b3d7d80c24a9c8ce30b35db13a09bdf8f47312b7da87` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:161` | `` | `` | `tests/compat/tests/appearance_semantics.rs:221 (`appearance_manager_upper_body_bake_includes_universal_tattoo`)` | `translated` | `6d95989bf8380348714a0ba9ae4c04a85ea64ae47ffc94aaa841ce64810abebd` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_LowerBody_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_LowerBody_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:168` | `` | `` | `tests/compat/tests/appearance_semantics.rs:229 (`appearance_manager_lower_body_bake_includes_universal_tattoo`)` | `translated` | `a21524c69c8bd32610e8cfa405a3cb3eae0a48add62d40a281f9311ebe739ffb` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Eyes_IncludesTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Eyes_IncludesTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:175` | `` | `` | `tests/compat/tests/appearance_semantics.rs:237 (`appearance_manager_eyes_bake_includes_tattoo`)` | `translated` | `606c6bad5f911d070c5d8126004d5a1e1dfd4887a115e8dd1f69f2d36bf53ac6` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Skirt_IncludesTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Skirt_IncludesTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:182` | `` | `` | `tests/compat/tests/appearance_semantics.rs:245 (`appearance_manager_skirt_bake_includes_tattoo`)` | `translated` | `7a38a59414bc74221bfbdc8889ef60714a4c6b4f26c9bd47e8f41bfa5a5da811` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Hair_IncludesHairTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Hair_IncludesHairTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:189` | `` | `` | `tests/compat/tests/appearance_semantics.rs:253 (`appearance_manager_hair_bake_includes_hair_tattoo`)` | `translated` | `c9a8c6a0dce259103fb466eb571785eb3c9395c8fa144f1a02d42ae73c0d8253` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedLeftArm_ContainsLeftArmTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedLeftArm_ContainsLeftArmTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:198` | `` | `` | `tests/compat/tests/appearance_semantics.rs:261 (`appearance_manager_left_arm_bake_contains_only_left_arm_tattoo`)` | `translated` | `bbbb01e8e009489967b36f22d83c6f326e295b9aabcbb58c00d82bab4e803f66` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedLeftLeg_ContainsLeftLegTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedLeftLeg_ContainsLeftLegTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:206` | `` | `` | `tests/compat/tests/appearance_semantics.rs:270 (`appearance_manager_left_leg_bake_contains_left_leg_tattoo`)` | `translated` | `9d2a25a6ed9cd5a99c206a0fc6d66389959fc5e30dd036302a73fb0b500880b5` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux1_ContainsAux1Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux1_ContainsAux1Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:213` | `` | `` | `tests/compat/tests/appearance_semantics.rs:278 (`appearance_manager_aux1_bake_contains_aux1_tattoo`)` | `translated` | `b9b0b56e1d4d552f2b43e5e570f3fc1a1f8651d8e77055fabcc35b37b5a9f21d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux2_ContainsAux2Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux2_ContainsAux2Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:220` | `` | `` | `tests/compat/tests/appearance_semantics.rs:286 (`appearance_manager_aux2_bake_contains_aux2_tattoo`)` | `translated` | `6be4bdbf667cadd673afbb1dafa8f4c1844ac9c34464fe5bbbc62f8ebe705b4d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux3_ContainsAux3Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux3_ContainsAux3Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:227` | `` | `` | `tests/compat/tests/appearance_semantics.rs:294 (`appearance_manager_aux3_bake_contains_aux3_tattoo`)` | `translated` | `5d7530c72824f8baf6044fb122d224da61fff1b6cfbf3114ac2f24b1418675d2` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.MorphLayerForBakeType_ExtendedBakes_ReturnTattooSlots::test` | `AppearanceManagerTests.MorphLayerForBakeType_ExtendedBakes_ReturnTattooSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:234` | `` | `` | `tests/compat/tests/appearance_semantics.rs:302 (`appearance_manager_extended_morph_layers_return_tattoo_slots`)` | `translated` | `7f05dc0b59adce3b46c82f7415e91e4c945963d918ad6ad1f0e5c9569ee2220e` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.TextureProvider_Default_IsGridClientBakingTextureProvider::test` | `AppearanceManagerTests.TextureProvider_Default_IsGridClientBakingTextureProvider` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:251` | `` | `` | `tests/compat/tests/appearance_semantics.rs:319 (`appearance_manager_default_texture_provider_is_grid_client_provider`)` | `translated` | `afdfbf516988c4ba35dfdb42158218a4815e1b8d146ef958225cf0fe73dfc3a9` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.TextureProvider_CanBeReplaced::test` | `AppearanceManagerTests.TextureProvider_CanBeReplaced` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:259` | `` | `` | `tests/compat/tests/appearance_semantics.rs:330 (`appearance_manager_texture_provider_can_be_replaced`)` | `translated` | `e9c27d5b8717fdac1a9f3d22930709c0dee326909cb3c777b769b0ed2dc35b0c` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.LastUpdateReceivedCOFVersion_InitialValue_IsMinusOne::test` | `AppearanceManagerTests.LastUpdateReceivedCOFVersion_InitialValue_IsMinusOne` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:270` | `` | `` | `tests/compat/tests/appearance_semantics.rs:342 (`appearance_manager_initial_cof_version_is_minus_one`)` | `translated` | `f43c2d8c99cb597ba7a5d4c87d4585560e888931d84741de2882d05ab17b310a` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_HigherVersion_Updates::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_HigherVersion_Updates` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:277` | `` | `` | `tests/compat/tests/appearance_semantics.rs:349 (`appearance_manager_higher_cof_version_updates`)` | `translated` | `62d82f9ec6d12ec9354f02e7b7e86adb29ccecb8b104ed39a66937495bab1438` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_LowerVersion_DoesNotUpdate::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_LowerVersion_DoesNotUpdate` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:285` | `` | `` | `tests/compat/tests/appearance_semantics.rs:360 (`appearance_manager_lower_cof_version_does_not_update`)` | `translated` | `ec5831c7d2c03132d3c7e50f6c0d088ca57f2726b7caf77ac240a9d5e92a77b6` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_SameVersion_DoesNotChange::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_SameVersion_DoesNotChange` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:294` | `` | `` | `tests/compat/tests/appearance_semantics.rs:375 (`appearance_manager_same_cof_version_does_not_change`)` | `translated` | `2e607b33bb8be04e6710e26fe62510f0634900579260accd9ffd720023636deb` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_MonotonicallyIncreasing_TracksPeak::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_MonotonicallyIncreasing_TracksPeak` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:303` | `` | `` | `tests/compat/tests/appearance_semantics.rs:390 (`appearance_manager_cof_version_tracks_peak`)` | `translated` | `5789831f288823729299944a8796c67348b932570392f59bf8b6d562cfa1c90c` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.RequestOwnAvatarTextures_DoesNotThrow_AndMaintainsVersionGuard::test` | `AppearanceLiveTests.RequestOwnAvatarTextures_DoesNotThrow_AndMaintainsVersionGuard` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:254` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:153 (`request_own_avatar_textures_does_not_throw_and_maintains_version_guard`)` | `ignored-live` | `ee8420690fc9714411450beb5be5755b82ddf7ed0d69e9da88b3184339bea744` |
|
||||
| `LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.COF_MaxClothingLayers_Is60::test` | `AppearanceLiveTests.COF_MaxClothingLayers_Is60` | `` | `LibreMetaverse.Tests/AppearanceLiveTests.cs:289` | `Appearance, RequiresLiveServer` | `` | `tests/compat/tests/appearance_live_semantics.rs:178 (`cof_max_clothing_layers_is_60`)` | `ignored-live` | `aac1292781cb0a4cbf710535036fa6464065f72d1b2c5214a9b7dc918513e8cd` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableTypeToAssetType_BodypartsAndClothing_ReturnsExpected::test` | `AppearanceManagerTests.WearableTypeToAssetType_BodypartsAndClothing_ReturnsExpected` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:8` | `` | `` | `tests/compat/tests/appearance_semantics.rs:41 (`appearance_manager_wearable_type_to_asset_type_returns_expected`)` | `translated` | `6d0f0d09a6da8121ba828159a75ca1c1ce54329ec48060a6786aa8f807c13ec0` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndexToTextureIndex_Matches_BakeTypeToAgentTextureIndex::test` | `AppearanceManagerTests.BakeIndexToTextureIndex_Matches_BakeTypeToAgentTextureIndex` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:22` | `` | `` | `tests/compat/tests/appearance_semantics.rs:70 (`appearance_manager_bake_index_matches_agent_texture_index`)` | `translated` | `c559ea49314b157605346243713fd10480a10f9a97daffd9cac8acccbd39612b` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndex_ArrayLength_Equals_BAKED_TEXTURE_COUNT::test` | `AppearanceManagerTests.BakeIndex_ArrayLength_Equals_BAKED_TEXTURE_COUNT` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:33` | `` | `` | `tests/compat/tests/appearance_semantics.rs:84 (`appearance_manager_bake_index_array_length_matches_count`)` | `translated` | `b661ca888df5b7fd41e51dfd298fb6d5e30a3a848102006c109b9dc4fc0e165c` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Head_IncludesExpectedSlots::test` | `AppearanceManagerTests.BakeTypeToTextures_Head_IncludesExpectedSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:39` | `` | `` | `tests/compat/tests/appearance_semantics.rs:93 (`appearance_manager_head_bake_includes_expected_slots`)` | `translated` | `44e03523f0e3f6691e527e014bfc38d9ca57c1d310e7cf2c6d7ae8a429a31e1d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesExpectedSlots::test` | `AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesExpectedSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:49` | `` | `` | `tests/compat/tests/appearance_semantics.rs:104 (`appearance_manager_upper_body_bake_includes_expected_slots`)` | `translated` | `fb7650becf6c01c1e7ffd731ac7b6c013957467110c7ed8d5bef9788ee9a5a16` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_LowerBody_Eyes_Skirt_Hair_IncludeExpected::test` | `AppearanceManagerTests.BakeTypeToTextures_LowerBody_Eyes_Skirt_Hair_IncludeExpected` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:59` | `` | `` | `tests/compat/tests/appearance_semantics.rs:115 (`appearance_manager_lower_eyes_skirt_hair_bakes_include_expected_slots`)` | `translated` | `fad2baeca74cab39305c8f599c5de5777b55c329738db5c55f58a09366870374` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.MorphLayerForBakeType_ReturnsExpectedIndices::test` | `AppearanceManagerTests.MorphLayerForBakeType_ReturnsExpectedIndices` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:78` | `` | `` | `tests/compat/tests/appearance_semantics.rs:135 (`appearance_manager_morph_layer_returns_expected_indices`)` | `translated` | `3051ccea9adec4f9ef824ce967c74e7708b62a2264b98ae22340eb8d1927c44f` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_HasExpectedDimensions_And_FirstLayerContainsShapeAndSkin::test` | `AppearanceManagerTests.WearableBakeMap_HasExpectedDimensions_And_FirstLayerContainsShapeAndSkin` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:87` | `` | `` | `tests/compat/tests/appearance_semantics.rs:160 (`appearance_manager_wearable_bake_map_has_expected_dimensions_and_first_layer`)` | `translated` | `42c072449d1819c956035d1f0290b90acc1e62b4e1e6309590d0cb6cb41bb375` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToAgentTextureIndex_ReturnsUnknown_ForInvalid::test` | `AppearanceManagerTests.BakeTypeToAgentTextureIndex_ReturnsUnknown_ForInvalid` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:95` | `` | `` | `tests/compat/tests/appearance_semantics.rs:169 (`appearance_manager_invalid_bake_type_returns_unknown_texture_index`)` | `translated` | `bc79d717462f06d498050182b6d116cea73f3bc173853f6d7894e3de88b70432` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BAKED_TEXTURE_COUNT_Is11::test` | `AppearanceManagerTests.BAKED_TEXTURE_COUNT_Is11` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:104` | `` | `` | `tests/compat/tests/appearance_semantics.rs:179 (`appearance_manager_baked_texture_count_is_eleven`)` | `translated` | `9d34c333f7e143d25964553dedaa1bae79c20e1aead331626f449a3894e31e5b` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakedTextureHash_Has11Entries::test` | `AppearanceManagerTests.BakedTextureHash_Has11Entries` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:110` | `` | `` | `tests/compat/tests/appearance_semantics.rs:185 (`appearance_manager_baked_texture_hash_has_eleven_entries`)` | `translated` | `7b26852cc8c1d7257e3e5f6f936f3870e0a06845f5809cc3000d67eb7590a49e` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakedTextureHash_AllEntriesNonZero::test` | `AppearanceManagerTests.BakedTextureHash_AllEntriesNonZero` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:116` | `` | `` | `tests/compat/tests/appearance_semantics.rs:191 (`appearance_manager_baked_texture_hash_entries_are_nonzero`)` | `translated` | `dc7a4010cfc2f975c0624bc5fbceed414297b1139f734d79786b2bb20d943553` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_Has11Rows::test` | `AppearanceManagerTests.WearableBakeMap_Has11Rows` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:123` | `` | `` | `tests/compat/tests/appearance_semantics.rs:200 (`appearance_manager_wearable_bake_map_has_eleven_rows`)` | `translated` | `db6016bcdc90f21095f0723556489ec174603783dc40805b56123e25d7a83312` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableBakeMap_ExtendedRows_AreAllInvalid::test` | `AppearanceManagerTests.WearableBakeMap_ExtendedRows_AreAllInvalid` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:129` | `` | `` | `tests/compat/tests/appearance_semantics.rs:206 (`appearance_manager_extended_wearable_bake_rows_are_invalid`)` | `translated` | `9b36d72c16980dc3780137dda47afa9cd79ef3a2be0d8ccb20723e1e1ac67f41` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeIndexToTextureIndex_ExtendedBakes_MatchAgentTextureIndex::test` | `AppearanceManagerTests.BakeIndexToTextureIndex_ExtendedBakes_MatchAgentTextureIndex` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:140` | `` | `` | `tests/compat/tests/appearance_semantics.rs:217 (`appearance_manager_extended_bake_indices_match_agent_texture_indices`)` | `translated` | `c331e94827930443aa3ca327374ec562fc9a294fce3304d7cba9f7e7859e43d3` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Head_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Head_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:154` | `` | `` | `tests/compat/tests/appearance_semantics.rs:231 (`appearance_manager_head_bake_includes_universal_tattoo`)` | `translated` | `578423fedcd5e4ed4e53b3d7d80c24a9c8ce30b35db13a09bdf8f47312b7da87` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_UpperBody_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:161` | `` | `` | `tests/compat/tests/appearance_semantics.rs:239 (`appearance_manager_upper_body_bake_includes_universal_tattoo`)` | `translated` | `6d95989bf8380348714a0ba9ae4c04a85ea64ae47ffc94aaa841ce64810abebd` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_LowerBody_IncludesUniversalTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_LowerBody_IncludesUniversalTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:168` | `` | `` | `tests/compat/tests/appearance_semantics.rs:247 (`appearance_manager_lower_body_bake_includes_universal_tattoo`)` | `translated` | `a21524c69c8bd32610e8cfa405a3cb3eae0a48add62d40a281f9311ebe739ffb` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Eyes_IncludesTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Eyes_IncludesTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:175` | `` | `` | `tests/compat/tests/appearance_semantics.rs:255 (`appearance_manager_eyes_bake_includes_tattoo`)` | `translated` | `606c6bad5f911d070c5d8126004d5a1e1dfd4887a115e8dd1f69f2d36bf53ac6` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Skirt_IncludesTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Skirt_IncludesTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:182` | `` | `` | `tests/compat/tests/appearance_semantics.rs:263 (`appearance_manager_skirt_bake_includes_tattoo`)` | `translated` | `7a38a59414bc74221bfbdc8889ef60714a4c6b4f26c9bd47e8f41bfa5a5da811` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_Hair_IncludesHairTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_Hair_IncludesHairTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:189` | `` | `` | `tests/compat/tests/appearance_semantics.rs:271 (`appearance_manager_hair_bake_includes_hair_tattoo`)` | `translated` | `c9a8c6a0dce259103fb466eb571785eb3c9395c8fa144f1a02d42ae73c0d8253` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedLeftArm_ContainsLeftArmTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedLeftArm_ContainsLeftArmTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:198` | `` | `` | `tests/compat/tests/appearance_semantics.rs:279 (`appearance_manager_left_arm_bake_contains_only_left_arm_tattoo`)` | `translated` | `bbbb01e8e009489967b36f22d83c6f326e295b9aabcbb58c00d82bab4e803f66` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedLeftLeg_ContainsLeftLegTattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedLeftLeg_ContainsLeftLegTattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:206` | `` | `` | `tests/compat/tests/appearance_semantics.rs:288 (`appearance_manager_left_leg_bake_contains_left_leg_tattoo`)` | `translated` | `9d2a25a6ed9cd5a99c206a0fc6d66389959fc5e30dd036302a73fb0b500880b5` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux1_ContainsAux1Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux1_ContainsAux1Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:213` | `` | `` | `tests/compat/tests/appearance_semantics.rs:296 (`appearance_manager_aux1_bake_contains_aux1_tattoo`)` | `translated` | `b9b0b56e1d4d552f2b43e5e570f3fc1a1f8651d8e77055fabcc35b37b5a9f21d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux2_ContainsAux2Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux2_ContainsAux2Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:220` | `` | `` | `tests/compat/tests/appearance_semantics.rs:304 (`appearance_manager_aux2_bake_contains_aux2_tattoo`)` | `translated` | `6be4bdbf667cadd673afbb1dafa8f4c1844ac9c34464fe5bbbc62f8ebe705b4d` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.BakeTypeToTextures_BakedAux3_ContainsAux3Tattoo::test` | `AppearanceManagerTests.BakeTypeToTextures_BakedAux3_ContainsAux3Tattoo` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:227` | `` | `` | `tests/compat/tests/appearance_semantics.rs:312 (`appearance_manager_aux3_bake_contains_aux3_tattoo`)` | `translated` | `5d7530c72824f8baf6044fb122d224da61fff1b6cfbf3114ac2f24b1418675d2` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.MorphLayerForBakeType_ExtendedBakes_ReturnTattooSlots::test` | `AppearanceManagerTests.MorphLayerForBakeType_ExtendedBakes_ReturnTattooSlots` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:234` | `` | `` | `tests/compat/tests/appearance_semantics.rs:320 (`appearance_manager_extended_morph_layers_return_tattoo_slots`)` | `translated` | `7f05dc0b59adce3b46c82f7415e91e4c945963d918ad6ad1f0e5c9569ee2220e` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.TextureProvider_Default_IsGridClientBakingTextureProvider::test` | `AppearanceManagerTests.TextureProvider_Default_IsGridClientBakingTextureProvider` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:251` | `` | `` | `tests/compat/tests/appearance_semantics.rs:337 (`appearance_manager_default_texture_provider_is_grid_client_provider`)` | `translated` | `afdfbf516988c4ba35dfdb42158218a4815e1b8d146ef958225cf0fe73dfc3a9` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.TextureProvider_CanBeReplaced::test` | `AppearanceManagerTests.TextureProvider_CanBeReplaced` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:259` | `` | `` | `tests/compat/tests/appearance_semantics.rs:348 (`appearance_manager_texture_provider_can_be_replaced`)` | `translated` | `e9c27d5b8717fdac1a9f3d22930709c0dee326909cb3c777b769b0ed2dc35b0c` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.LastUpdateReceivedCOFVersion_InitialValue_IsMinusOne::test` | `AppearanceManagerTests.LastUpdateReceivedCOFVersion_InitialValue_IsMinusOne` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:270` | `` | `` | `tests/compat/tests/appearance_semantics.rs:360 (`appearance_manager_initial_cof_version_is_minus_one`)` | `translated` | `f43c2d8c99cb597ba7a5d4c87d4585560e888931d84741de2882d05ab17b310a` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_HigherVersion_Updates::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_HigherVersion_Updates` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:277` | `` | `` | `tests/compat/tests/appearance_semantics.rs:367 (`appearance_manager_higher_cof_version_updates`)` | `translated` | `62d82f9ec6d12ec9354f02e7b7e86adb29ccecb8b104ed39a66937495bab1438` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_LowerVersion_DoesNotUpdate::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_LowerVersion_DoesNotUpdate` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:285` | `` | `` | `tests/compat/tests/appearance_semantics.rs:378 (`appearance_manager_lower_cof_version_does_not_update`)` | `translated` | `ec5831c7d2c03132d3c7e50f6c0d088ca57f2726b7caf77ac240a9d5e92a77b6` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_SameVersion_DoesNotChange::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_SameVersion_DoesNotChange` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:294` | `` | `` | `tests/compat/tests/appearance_semantics.rs:393 (`appearance_manager_same_cof_version_does_not_change`)` | `translated` | `2e607b33bb8be04e6710e26fe62510f0634900579260accd9ffd720023636deb` |
|
||||
| `LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.UpdateLastReceivedCOFVersion_MonotonicallyIncreasing_TracksPeak::test` | `AppearanceManagerTests.UpdateLastReceivedCOFVersion_MonotonicallyIncreasing_TracksPeak` | `` | `LibreMetaverse.Tests/AppearanceManagerTests.cs:303` | `` | `` | `tests/compat/tests/appearance_semantics.rs:408 (`appearance_manager_cof_version_tracks_peak`)` | `translated` | `5789831f288823729299944a8796c67348b932570392f59bf8b6d562cfa1c90c` |
|
||||
| `LibreMetaverse.Tests/AppearanceTests.cs::AppearanceTests.DecodeVisualParams_EmptyArray_ReturnsEmptyDictionary::test` | `AppearanceTests.DecodeVisualParams_EmptyArray_ReturnsEmptyDictionary` | `` | `LibreMetaverse.Tests/AppearanceTests.cs:47` | `Appearance` | `` | `tests/compat/tests/appearance_visual_semantics.rs:35 (`decode_visual_params_empty_array_returns_empty_dictionary`)` | `translated` | `644f412b90d429032a9273d24e89333a1694dc88eec3429a98acf00588315ec5` |
|
||||
| `LibreMetaverse.Tests/AppearanceTests.cs::AppearanceTests.DecodeVisualParams_CountMatchesGroup0ParamCount::test` | `AppearanceTests.DecodeVisualParams_CountMatchesGroup0ParamCount` | `` | `LibreMetaverse.Tests/AppearanceTests.cs:55` | `Appearance` | `` | `tests/compat/tests/appearance_visual_semantics.rs:44 (`decode_visual_params_count_matches_group0_param_count`)` | `translated` | `6a9acc7130e3394476392b86334a0ce1cb82253bea2b37ac33cf90a426c7af40` |
|
||||
| `LibreMetaverse.Tests/AppearanceTests.cs::AppearanceTests.DecodeVisualParams_RoundTrip_DefaultValues::test` | `AppearanceTests.DecodeVisualParams_RoundTrip_DefaultValues` | `` | `LibreMetaverse.Tests/AppearanceTests.cs:70` | `Appearance` | `` | `tests/compat/tests/appearance_visual_semantics.rs:54 (`decode_visual_params_round_trip_default_values`)` | `translated` | `a0c0727a50b414522f875709240f4056547cb699c6ec1981fbef15488784daf5` |
|
||||
@@ -120,11 +120,11 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/AvatarManagerTests.cs::AvatarManagerTests.UpdateLastReceivedCOFVersion_AcceptsHigherVersion::test` | `AvatarManagerTests.UpdateLastReceivedCOFVersion_AcceptsHigherVersion` | `` | `LibreMetaverse.Tests/AvatarManagerTests.cs:55` | `Appearance` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:597 (`appearance_manager_update_last_received_cof_version_accepts_higher_version`)` | `translated` | `3656364491dcd7a05c868b11ea0d8be48609d10c6054b9696f54cbac10cfe6df` |
|
||||
| `LibreMetaverse.Tests/AvatarManagerTests.cs::AvatarManagerTests.UpdateLastReceivedCOFVersion_RejectsLowerVersion::test` | `AvatarManagerTests.UpdateLastReceivedCOFVersion_RejectsLowerVersion` | `` | `LibreMetaverse.Tests/AvatarManagerTests.cs:68` | `Appearance` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:612 (`appearance_manager_update_last_received_cof_version_rejects_lower_version`)` | `translated` | `f4a827fcace9d50306a8c375183e056140996d2a39b02e4dd12fc6cc79e5d0f0` |
|
||||
| `LibreMetaverse.Tests/AvatarManagerTests.cs::AvatarManagerTests.UpdateLastReceivedCOFVersion_EqualVersion_IsNotAdvanced::test` | `AvatarManagerTests.UpdateLastReceivedCOFVersion_EqualVersion_IsNotAdvanced` | `` | `LibreMetaverse.Tests/AvatarManagerTests.cs:81` | `Appearance` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:627 (`appearance_manager_update_last_received_cof_version_equal_version_is_not_advanced`)` | `translated` | `e3db5962cdad5e18ad27a36d0d7cca2d471e96df7513315d0f34bb0db99d723c` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.Bake_GrayscaleLayerTexture_DoesNotThrow::test` | `BakerTests.Bake_GrayscaleLayerTexture_DoesNotThrow` | `` | `LibreMetaverse.Tests/BakerTests.cs:15` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:30 (`bake_grayscale_layer_texture_does_not_throw`)` | `translated` | `c3fc1d2c16b5f8d69678a6cf05a3a275e0b657f3a6e7f6788f350f2a107200b3` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.Bake_GrayscaleHairTextureNoSkin_DoesNotThrow::test` | `BakerTests.Bake_GrayscaleHairTextureNoSkin_DoesNotThrow` | `` | `LibreMetaverse.Tests/BakerTests.cs:37` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:46 (`bake_grayscale_hair_texture_no_skin_does_not_throw`)` | `translated` | `e48b737d9138e63cda98b5e80bf561a80d1dab5de78901ac9e1bb320ca281eb6` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.LoadResourceLayer_HeadColorTga_LoadsFromCharacterDirectory::test` | `BakerTests.LoadResourceLayer_HeadColorTga_LoadsFromCharacterDirectory` | `` | `LibreMetaverse.Tests/BakerTests.cs:62` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:60 (`load_resource_layer_head_color_tga_loads_from_character_directory`)` | `translated` | `5a9b80005a51f04a227ca392218725d50704d038783e04fc49bb955997c22e76` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.LoadResourceLayer_CachedResourceNotCorruptedByCallerMutation::test` | `BakerTests.LoadResourceLayer_CachedResourceNotCorruptedByCallerMutation` | `` | `LibreMetaverse.Tests/BakerTests.cs:69` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:70 (`load_resource_layer_cached_resource_not_corrupted_by_caller_mutation`)` | `translated` | `18b458bbd7bb13d2b68711f7d3495193f1b4edac9c1f776930ad2c172f97cd49` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.ResizeToBakeDimensions_SourceSmallerInOneAxisOnly_ScalesRatherThanTiles::test` | `BakerTests.ResizeToBakeDimensions_SourceSmallerInOneAxisOnly_ScalesRatherThanTiles` | `` | `LibreMetaverse.Tests/BakerTests.cs:93` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:89 (`resize_to_bake_dimensions_source_smaller_in_one_axis_only_scales_rather_than_tiles`)` | `translated` | `ce5bd346b48cb19dbc0248403eafefb07309d4e05e675e9a02db5a46d7cd65ff` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.Bake_GrayscaleLayerTexture_DoesNotThrow::test` | `BakerTests.Bake_GrayscaleLayerTexture_DoesNotThrow` | `` | `LibreMetaverse.Tests/BakerTests.cs:15` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:32 (`bake_grayscale_layer_texture_does_not_throw`)` | `translated` | `c3fc1d2c16b5f8d69678a6cf05a3a275e0b657f3a6e7f6788f350f2a107200b3` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.Bake_GrayscaleHairTextureNoSkin_DoesNotThrow::test` | `BakerTests.Bake_GrayscaleHairTextureNoSkin_DoesNotThrow` | `` | `LibreMetaverse.Tests/BakerTests.cs:37` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:48 (`bake_grayscale_hair_texture_no_skin_does_not_throw`)` | `translated` | `e48b737d9138e63cda98b5e80bf561a80d1dab5de78901ac9e1bb320ca281eb6` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.LoadResourceLayer_HeadColorTga_LoadsFromCharacterDirectory::test` | `BakerTests.LoadResourceLayer_HeadColorTga_LoadsFromCharacterDirectory` | `` | `LibreMetaverse.Tests/BakerTests.cs:62` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:62 (`load_resource_layer_head_color_tga_loads_from_character_directory`)` | `translated` | `5a9b80005a51f04a227ca392218725d50704d038783e04fc49bb955997c22e76` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.LoadResourceLayer_CachedResourceNotCorruptedByCallerMutation::test` | `BakerTests.LoadResourceLayer_CachedResourceNotCorruptedByCallerMutation` | `` | `LibreMetaverse.Tests/BakerTests.cs:69` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:72 (`load_resource_layer_cached_resource_not_corrupted_by_caller_mutation`)` | `translated` | `18b458bbd7bb13d2b68711f7d3495193f1b4edac9c1f776930ad2c172f97cd49` |
|
||||
| `LibreMetaverse.Tests/BakerTests.cs::BakerTests.ResizeToBakeDimensions_SourceSmallerInOneAxisOnly_ScalesRatherThanTiles::test` | `BakerTests.ResizeToBakeDimensions_SourceSmallerInOneAxisOnly_ScalesRatherThanTiles` | `` | `LibreMetaverse.Tests/BakerTests.cs:93` | `Imaging` | `` | `crates/libremetaverse/src/appearance_baker_semantics.rs:91 (`resize_to_bake_dimensions_source_smaller_in_one_axis_only_scales_rather_than_tiles`)` | `translated` | `ce5bd346b48cb19dbc0248403eafefb07309d4e05e675e9a02db5a46d7cd65ff` |
|
||||
| `LibreMetaverse.Tests/BatchLinkTests.cs::BatchLinkTests.GetCofLinkDescription_ClothingWearable_ReturnsWearableTypeAndZeroLayer::test` | `BatchLinkTests.GetCofLinkDescription_ClothingWearable_ReturnsWearableTypeAndZeroLayer` | `` | `LibreMetaverse.Tests/BatchLinkTests.cs:84` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `crates/libremetaverse/src/batch_link_internal_semantics.rs:151 (`get_cof_link_description_clothing_wearable_returns_wearable_type_and_zero_layer`)` | `translated` | `898a14ff28d953a58a01c3a0e5d9d9fcbbe61376a33fdc5caf20268aaac76242` |
|
||||
| `LibreMetaverse.Tests/BatchLinkTests.cs::BatchLinkTests.GetCofLinkDescription_BodyPartShape_ReturnsEmpty::test` | `BatchLinkTests.GetCofLinkDescription_BodyPartShape_ReturnsEmpty` | `` | `LibreMetaverse.Tests/BatchLinkTests.cs:98` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `crates/libremetaverse/src/batch_link_internal_semantics.rs:160 (`get_cof_link_description_body_part_shape_returns_empty`)` | `translated` | `4f009136d265da91afb9eafd060faf459f6c510ca0502a33ce9e128d241f9bd1` |
|
||||
| `LibreMetaverse.Tests/BatchLinkTests.cs::BatchLinkTests.GetCofLinkDescription_AttachmentObject_ReturnsEmpty::test` | `BatchLinkTests.GetCofLinkDescription_AttachmentObject_ReturnsEmpty` | `` | `LibreMetaverse.Tests/BatchLinkTests.cs:112` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `crates/libremetaverse/src/batch_link_internal_semantics.rs:169 (`get_cof_link_description_attachment_object_returns_empty`)` | `translated` | `a838329a7a23081a4022671bc794e7e706c9ab7da51598280a8befbb824d336d` |
|
||||
@@ -214,16 +214,16 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs::CompositeCurrentOutfitPolicyTests.ReportItemChangeAsync_WithNullLists_DoesNotThrowFromComposite::test` | `CompositeCurrentOutfitPolicyTests.ReportItemChangeAsync_WithNullLists_DoesNotThrowFromComposite` | `` | `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs:588` | `` | `` | `tests/compat/tests/current_outfit_policy_semantics.rs:352 (`report_item_change_with_null_lists_does_not_throw_from_composite`)` | `translated` | `c512c54f78c46fb4774d9b5c9c1057627592e1c25267811cddf3d687d3d1ec4d` |
|
||||
| `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs::CompositeCurrentOutfitPolicyTests.AddRemovePolicy_ConcurrentAccess_DoesNotThrow::test` | `CompositeCurrentOutfitPolicyTests.AddRemovePolicy_ConcurrentAccess_DoesNotThrow` | `` | `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs:601` | `` | `` | `tests/compat/tests/current_outfit_policy_semantics.rs:363 (`add_remove_policy_concurrent_access_does_not_throw`)` | `translated` | `a73a01065867d90305f491e41d9ea61bc27b80c026672ed920368877bfb0fe14` |
|
||||
| `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs::CompositeCurrentOutfitPolicyTests.CanAttach_WhileModifyingPolicies_DoesNotThrow::test` | `CompositeCurrentOutfitPolicyTests.CanAttach_WhileModifyingPolicies_DoesNotThrow` | `` | `LibreMetaverse.Tests/CurrentOutfitFolderTests.cs:627` | `` | `` | `tests/compat/tests/current_outfit_policy_semantics.rs:389 (`can_attach_while_modifying_policies_does_not_throw`)` | `translated` | `697999feeb776fae9a47cb9678c0ae0234d3b3831ce40c0e6f50fe622a5cc2b7` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_SingleDownload_CompletesSuccessfully::test` | `DownloadManagerTests.QueueDownloadAsync_SingleDownload_CompletesSuccessfully` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:46` | `` | `` | `tests/compat/tests/network_semantics.rs:165 (`queue_download_single_completes_successfully`)` | `translated` | `f8feb54d38f79624ddf1d368e0599259ff9d474c08ea0249a8f244460a1f533f` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_DeduplicatesRequests_SameUri_OneHttpCall::test` | `DownloadManagerTests.QueueDownloadAsync_DeduplicatesRequests_SameUri_OneHttpCall` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:70` | `` | `` | `tests/compat/tests/network_semantics.rs:202 (`queue_download_deduplicates_same_uri`)` | `translated` | `dc3ffee1f6171833a8364750cfac2c6d3bfa812b404129e0425066ea212f2337` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_Cancellation_PropagatesToTask::test` | `DownloadManagerTests.QueueDownloadAsync_Cancellation_PropagatesToTask` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:101` | `` | `` | `tests/compat/tests/network_semantics.rs:248 (`queue_download_cancellation_propagates`)` | `translated` | `9eb3791b1def609d6f45be0fff8ae67ea04332045c0c419c6c2e7d118aeb6271` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_SingleDownload_CompletesSuccessfully::test` | `DownloadManagerTests.QueueDownloadAsync_SingleDownload_CompletesSuccessfully` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:46` | `` | `` | `tests/compat/tests/network_semantics.rs:161 (`queue_download_single_completes_successfully`)` | `translated` | `f8feb54d38f79624ddf1d368e0599259ff9d474c08ea0249a8f244460a1f533f` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_DeduplicatesRequests_SameUri_OneHttpCall::test` | `DownloadManagerTests.QueueDownloadAsync_DeduplicatesRequests_SameUri_OneHttpCall` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:70` | `` | `` | `tests/compat/tests/network_semantics.rs:198 (`queue_download_deduplicates_same_uri`)` | `translated` | `dc3ffee1f6171833a8364750cfac2c6d3bfa812b404129e0425066ea212f2337` |
|
||||
| `LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_Cancellation_PropagatesToTask::test` | `DownloadManagerTests.QueueDownloadAsync_Cancellation_PropagatesToTask` | `` | `LibreMetaverse.Tests/DownloadManagerTests.cs:101` | `` | `` | `tests/compat/tests/network_semantics.rs:244 (`queue_download_cancellation_propagates`)` | `translated` | `9eb3791b1def609d6f45be0fff8ae67ea04332045c0c419c6c2e7d118aeb6271` |
|
||||
| `LibreMetaverse.Tests/EnvironmentManagerTests.cs::EnvironmentManagerTests.GetParcelEnvironment_UsesParcelidQueryParameter::test` | `EnvironmentManagerTests.GetParcelEnvironment_UsesParcelidQueryParameter` | `` | `LibreMetaverse.Tests/EnvironmentManagerTests.cs:105` | `Environment` | `` | `tests/compat/tests/world_capability_semantics.rs:97 (`get_parcel_environment_uses_parcelid_query_parameter`)` | `translated` | `5c2f2b0fa2a86955975c621b2415a92ff3da283215e669956e14bf5ee2a4c1f4` |
|
||||
| `LibreMetaverse.Tests/EnvironmentManagerTests.cs::EnvironmentManagerTests.SetParcelEnvironment_SendsParcelidInQueryStringNotBody::test` | `EnvironmentManagerTests.SetParcelEnvironment_SendsParcelidInQueryStringNotBody` | `` | `LibreMetaverse.Tests/EnvironmentManagerTests.cs:128` | `Environment` | `` | `tests/compat/tests/world_capability_semantics.rs:116 (`set_parcel_environment_sends_parcelid_in_query_not_body`)` | `translated` | `f633e2d78e4c6a0fff42917ccfe8de68e4f6133a11e7eef7f9b757c3d1622f0f` |
|
||||
| `LibreMetaverse.Tests/EnvironmentManagerTests.cs::EnvironmentManagerTests.SetRegionEnvironment_OmitsQueryStringEntirely::test` | `EnvironmentManagerTests.SetRegionEnvironment_OmitsQueryStringEntirely` | `` | `LibreMetaverse.Tests/EnvironmentManagerTests.cs:158` | `Environment` | `` | `tests/compat/tests/world_capability_semantics.rs:153 (`set_region_environment_omits_query_string_entirely`)` | `translated` | `bade6e06765506ad7e500ac3e5c9f168605ce25fef86647819d285a68b39f109` |
|
||||
| `LibreMetaverse.Tests/EnvironmentManagerTests.cs::EnvironmentManagerTests.ResetParcelEnvironment_SendsHttpDeleteNotPost::test` | `EnvironmentManagerTests.ResetParcelEnvironment_SendsHttpDeleteNotPost` | `` | `LibreMetaverse.Tests/EnvironmentManagerTests.cs:180` | `Environment` | `` | `tests/compat/tests/world_capability_semantics.rs:177 (`reset_parcel_environment_sends_delete_not_post`)` | `translated` | `4360439192c137f5d7a2ceb83b8664f3917b4b261798050cb855d596f483f082` |
|
||||
| `LibreMetaverse.Tests/EstateExperienceReplyTests.cs::EstateExperienceReplyTests.SetExperience_ParsesBlockedTrustedAndAllowedLists::test` | `EstateExperienceReplyTests.SetExperience_ParsesBlockedTrustedAndAllowedLists` | `` | `LibreMetaverse.Tests/EstateExperienceReplyTests.cs:47` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:103 (`set_experience_parses_blocked_trusted_and_allowed_lists`)` | `translated` | `49a77aa9d7c5bf1232082a08594e7ebcfafad11ab110c9e15d2ad4ea1831c649` |
|
||||
| `LibreMetaverse.Tests/EstateExperienceReplyTests.cs::EstateExperienceReplyTests.SetExperience_AllEmptyLists_ProducesEmptyResult::test` | `EstateExperienceReplyTests.SetExperience_AllEmptyLists_ProducesEmptyResult` | `` | `LibreMetaverse.Tests/EstateExperienceReplyTests.cs:97` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:127 (`set_experience_all_empty_lists_produces_empty_result`)` | `translated` | `711eaebb11f5d7ece92946d3de240a341a4b1fd8f30617fd97cb059d0dc6a0b9` |
|
||||
| `LibreMetaverse.Tests/EstateToolsTests.cs::EstateToolsTests.RequestConvenant::test` | `EstateToolsTests.RequestConvenant` | `` | `LibreMetaverse.Tests/EstateToolsTests.cs:116` | `EstateTools, RequiresLiveServer` | `` | `tests/compat/tests/world_live_semantics.rs:59 (`request_covenant`)` | `ignored-live` | `d8d752dd6e53477e4c66bcb5d0e3ec1021a9b3ceda1f689f59b5e606e1713729` |
|
||||
| `LibreMetaverse.Tests/EstateExperienceReplyTests.cs::EstateExperienceReplyTests.SetExperience_ParsesBlockedTrustedAndAllowedLists::test` | `EstateExperienceReplyTests.SetExperience_ParsesBlockedTrustedAndAllowedLists` | `` | `LibreMetaverse.Tests/EstateExperienceReplyTests.cs:47` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:105 (`set_experience_parses_blocked_trusted_and_allowed_lists`)` | `translated` | `49a77aa9d7c5bf1232082a08594e7ebcfafad11ab110c9e15d2ad4ea1831c649` |
|
||||
| `LibreMetaverse.Tests/EstateExperienceReplyTests.cs::EstateExperienceReplyTests.SetExperience_AllEmptyLists_ProducesEmptyResult::test` | `EstateExperienceReplyTests.SetExperience_AllEmptyLists_ProducesEmptyResult` | `` | `LibreMetaverse.Tests/EstateExperienceReplyTests.cs:97` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:129 (`set_experience_all_empty_lists_produces_empty_result`)` | `translated` | `711eaebb11f5d7ece92946d3de240a341a4b1fd8f30617fd97cb059d0dc6a0b9` |
|
||||
| `LibreMetaverse.Tests/EstateToolsTests.cs::EstateToolsTests.RequestConvenant::test` | `EstateToolsTests.RequestConvenant` | `` | `LibreMetaverse.Tests/EstateToolsTests.cs:116` | `EstateTools, RequiresLiveServer` | `` | `tests/compat/tests/world_live_semantics.rs:40 (`request_covenant`)` | `ignored-live` | `d8d752dd6e53477e4c66bcb5d0e3ec1021a9b3ceda1f689f59b5e606e1713729` |
|
||||
| `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs::ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_ReadsExperienceIdsKey::test` | `ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_ReadsExperienceIdsKey` | `` | `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs:47` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:30 (`experience_list_deserialize_reads_experience_ids_key`)` | `translated` | `aa1f7d09f6c79118ea2e60621d57bd63632085ce81bc979e42294aca53d4f0d9` |
|
||||
| `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs::ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_IgnoresLegacyExperienceKeysKey::test` | `ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_IgnoresLegacyExperienceKeysKey` | `` | `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs:59` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:41 (`experience_list_deserialize_ignores_legacy_experience_keys_key`)` | `translated` | `cd1d372b9a976c04dee11da1ade182e4f9239e1f7633e788347c6d5f255835ec` |
|
||||
| `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs::ExperienceListAndRegionMessageTests.ExperienceListMessage_Serialize_WritesExperienceIdsKey::test` | `ExperienceListAndRegionMessageTests.ExperienceListMessage_Serialize_WritesExperienceIdsKey` | `` | `LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs:70` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:51 (`experience_list_serialize_writes_experience_ids_key`)` | `translated` | `3fa4cb5d598940f693285bcc64179a4dea927a3643a76a061a933a265488d4be` |
|
||||
@@ -233,9 +233,9 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.Deserialize_ReadsAllowedListFromExperiencesKey::test` | `ExperiencePreferencesMessageTests.Deserialize_ReadsAllowedListFromExperiencesKey` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:44` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:110 (`experience_preferences_deserialize_reads_experiences_and_blocked`)` | `translated` | `9bab78dbe142a3da6ad21a278f25d7da90776fce3861c7d602203c1e1842c9af` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.Deserialize_IgnoresLegacyAllowedKey::test` | `ExperiencePreferencesMessageTests.Deserialize_IgnoresLegacyAllowedKey` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:63` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:127 (`experience_preferences_deserialize_ignores_legacy_allowed_key`)` | `translated` | `ec6d5e7c81214ea4e3d99740fdd33961578f895a90a42082067ca9819d93d2b0` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.Serialize_WritesAllowedListUnderExperiencesKey::test` | `ExperiencePreferencesMessageTests.Serialize_WritesAllowedListUnderExperiencesKey` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:80` | `Experience` | `` | `tests/compat/tests/world_message_semantics.rs:141 (`experience_preferences_serialize_writes_experiences_not_allowed`)` | `translated` | `45a0bffe39ab7bf0734ec5fce4435dbdda7ae94cf4e933210669e91dc45b1baf` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_Allowed_ReturnsAllow::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_Allowed_ReturnsAllow` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:92` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:197 (`extract_experience_permission_allowed_returns_allow`)` | `translated` | `cf095ab428713004ebac6e1915a47ae0c03bd2958addbba2a39fd2f0edf51a74` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_Blocked_ReturnsBlock::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_Blocked_ReturnsBlock` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:101` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:207 (`extract_experience_permission_blocked_returns_block`)` | `translated` | `af084d1ab7a11079e6251865e8fd5aecfde38d2df359ebc1e208bc74925935c0` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_NeitherList_ReturnsForget::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_NeitherList_ReturnsForget` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:110` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:217 (`extract_experience_permission_neither_list_returns_forget`)` | `translated` | `93204469ecfec2f3f4eb6838c99f6e2baf09bf76a075958d1ed369ba03767158` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_Allowed_ReturnsAllow::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_Allowed_ReturnsAllow` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:92` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:199 (`extract_experience_permission_allowed_returns_allow`)` | `translated` | `cf095ab428713004ebac6e1915a47ae0c03bd2958addbba2a39fd2f0edf51a74` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_Blocked_ReturnsBlock::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_Blocked_ReturnsBlock` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:101` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:209 (`extract_experience_permission_blocked_returns_block`)` | `translated` | `af084d1ab7a11079e6251865e8fd5aecfde38d2df359ebc1e208bc74925935c0` |
|
||||
| `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs::ExperiencePreferencesMessageTests.ExtractExperiencePermission_NeitherList_ReturnsForget::test` | `ExperiencePreferencesMessageTests.ExtractExperiencePermission_NeitherList_ReturnsForget` | `` | `LibreMetaverse.Tests/ExperiencePreferencesMessageTests.cs:110` | `Experience` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:219 (`extract_experience_permission_neither_list_returns_forget`)` | `translated` | `93204469ecfec2f3f4eb6838c99f6e2baf09bf76a075958d1ed369ba03767158` |
|
||||
| `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs::GLTFMaterialOverrideCapTests.SetMaterialOverrideAsync_HappyPath_PostsBareArrayWithGltfJson::test` | `GLTFMaterialOverrideCapTests.SetMaterialOverrideAsync_HappyPath_PostsBareArrayWithGltfJson` | `` | `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs:64` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:179 (`set_material_override_posts_bare_array_with_gltf_json`)` | `translated` | `0c51b7b793111f5433e52057f26fa5a98d983e7230fefeb61a7b3408e97f28ee` |
|
||||
| `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs::GLTFMaterialOverrideCapTests.ClearMaterialOverrideAsync_SendsEmptyGltfJson::test` | `GLTFMaterialOverrideCapTests.ClearMaterialOverrideAsync_SendsEmptyGltfJson` | `` | `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs:86` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:215 (`clear_material_override_sends_empty_gltf_json`)` | `translated` | `8394d063ea71447d9ce2b76fd00be1d10967f9193e1eb909c5b9f2da56eec812` |
|
||||
| `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs::GLTFMaterialOverrideCapTests.ApplyMaterialAsync_WithoutOverride_SendsAssetIdOnly::test` | `GLTFMaterialOverrideCapTests.ApplyMaterialAsync_WithoutOverride_SendsAssetIdOnly` | `` | `LibreMetaverse.Tests/GLTFMaterialOverrideCapTests.cs:100` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:237 (`apply_material_without_override_sends_asset_id_only`)` | `translated` | `1db03ab6710ecf532644398d1fef5e82520e1206058d66fb15c8885fdc8f8363` |
|
||||
@@ -258,7 +258,7 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/GltfDocumentTests.cs::GltfDocumentTests.Load_AutoDetectsGlbVsJson::test` | `GltfDocumentTests.Load_AutoDetectsGlbVsJson` | `` | `LibreMetaverse.Tests/GltfDocumentTests.cs:252` | `` | `` | `tests/compat/tests/asset_document_semantics.rs:464 (`gltf_load_auto_detects_glb_and_json`)` | `translated` | `6d07930be2302e504ef9ece3fef10f47b855d33ae6c8bff152e82df0beb2a474` |
|
||||
| `LibreMetaverse.Tests/GltfDocumentTests.cs::GltfDocumentTests.ParseNode_TrsDefaults::test` | `GltfDocumentTests.ParseNode_TrsDefaults` | `` | `LibreMetaverse.Tests/GltfDocumentTests.cs:268` | `` | `` | `tests/compat/tests/asset_document_semantics.rs:476 (`gltf_node_trs_defaults`)` | `translated` | `0f0fbe116d20276c2aee917b940bded9de277ed0b3e3b659844c5b3532755259` |
|
||||
| `LibreMetaverse.Tests/GltfDocumentTests.cs::GltfDocumentTests.ParseNode_ExplicitMatrix::test` | `GltfDocumentTests.ParseNode_ExplicitMatrix` | `` | `LibreMetaverse.Tests/GltfDocumentTests.cs:280` | `` | `` | `tests/compat/tests/asset_document_semantics.rs:496 (`gltf_node_explicit_matrix`)` | `translated` | `197ba2ee3a66cbb7d927acea13ce9dc84e62af8a500d939957749039118755c8` |
|
||||
| `LibreMetaverse.Tests/GridClientTests.cs::GridClientTests.GetGridRegion::test` | `GridClientTests.GetGridRegion` | `` | `LibreMetaverse.Tests/GridClientTests.cs:90` | `GridClient, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:345 (`get_grid_region_live`)` | `ignored-live` | `b0b72fc63fe829984167a479b763784c7daae8691399f3f3d2feb824090ad59f` |
|
||||
| `LibreMetaverse.Tests/GridClientTests.cs::GridClientTests.GetGridRegion::test` | `GridClientTests.GetGridRegion` | `` | `LibreMetaverse.Tests/GridClientTests.cs:90` | `GridClient, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:341 (`get_grid_region_live`)` | `ignored-live` | `b0b72fc63fe829984167a479b763784c7daae8691399f3f3d2feb824090ad59f` |
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroDecode_ValidInput_DecodesCorrectly::test` | `HelpersZeroCodingTests.ZeroDecode_ValidInput_DecodesCorrectly` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:36` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:79 (`zero_decode_valid_input_decodes_correctly`)` | `translated` | `62353da2b1afb7bfdf5142706d15d22086a5e1e8c55f39af3e64686dda4ea071` |
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroDecode_NullSource_ThrowsArgumentNullException::test` | `HelpersZeroCodingTests.ZeroDecode_NullSource_ThrowsArgumentNullException` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:64` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:97 (`zero_decode_null_source_throws_argument_null`)` | `translated` | `50ebbd8ea35b87df18cccdea9a26534d5c142228e5b1698cf191b9fd2e9a9957` |
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroDecode_NullDestination_ThrowsArgumentNullException::test` | `HelpersZeroCodingTests.ZeroDecode_NullDestination_ThrowsArgumentNullException` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:73` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:108 (`zero_decode_null_destination_throws_argument_null`)` | `translated` | `97197cffb02908653d831f3a62cdce2c1ddd52818343e9aacebc9b4c5ac1ee3e` |
|
||||
@@ -273,7 +273,7 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroEncode_DestinationTooSmall_ThrowsIndexOutOfRangeException::test` | `HelpersZeroCodingTests.ZeroEncode_DestinationTooSmall_ThrowsIndexOutOfRangeException` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:218` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:222 (`zero_encode_destination_too_small_throws_index_out_of_range`)` | `translated` | `3870f0680f25e8df8de54f27c153feae9d8398e38531d67d6e0255cc34d50966` |
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroEncode_WithAppendedAcks_HandlesCorrectly::test` | `HelpersZeroCodingTests.ZeroEncode_WithAppendedAcks_HandlesCorrectly` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:231` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:235 (`zero_encode_with_appended_acks_preserves_count`)` | `translated` | `9803ec7bad46a1fd0f32c58d3ee08cf6a98b03a40a336ae231d1faf8211b273a` |
|
||||
| `LibreMetaverse.Tests/HelpersZeroCodingTests.cs::HelpersZeroCodingTests.ZeroEncodeAndDecode_RoundTrip_PreservesData::test` | `HelpersZeroCodingTests.ZeroEncodeAndDecode_RoundTrip_PreservesData` | `` | `LibreMetaverse.Tests/HelpersZeroCodingTests.cs:254` | `Helpers` | `` | `tests/compat/tests/wire_semantics.rs:248 (`zero_encode_decode_round_trip_preserves_patterns`)` | `translated` | `7847520873f87d798ea94fd1b6543db9d3606829a4bc3f4ec873e629fb6687eb` |
|
||||
| `LibreMetaverse.Tests/HttpCapsClientNonHttpLocationTests.cs::HttpCapsClientNonHttpLocationTests.PutAsync_ResponseWithNonHttpLocationHeader_DoesNotThrow::test` | `HttpCapsClientNonHttpLocationTests.PutAsync_ResponseWithNonHttpLocationHeader_DoesNotThrow` | `` | `LibreMetaverse.Tests/HttpCapsClientNonHttpLocationTests.cs:47` | `Http` | `` | `tests/compat/tests/network_semantics.rs:279 (`put_response_with_non_http_location_does_not_throw`)` | `translated` | `9dbcf4023212af6f2294fa048068fe2f4d9e7e3f976d8eefb1dacbc9f6899aa8` |
|
||||
| `LibreMetaverse.Tests/HttpCapsClientNonHttpLocationTests.cs::HttpCapsClientNonHttpLocationTests.PutAsync_ResponseWithNonHttpLocationHeader_DoesNotThrow::test` | `HttpCapsClientNonHttpLocationTests.PutAsync_ResponseWithNonHttpLocationHeader_DoesNotThrow` | `` | `LibreMetaverse.Tests/HttpCapsClientNonHttpLocationTests.cs:47` | `Http` | `` | `tests/compat/tests/network_semantics.rs:275 (`put_response_with_non_http_location_does_not_throw`)` | `translated` | `9dbcf4023212af6f2294fa048068fe2f4d9e7e3f976d8eefb1dacbc9f6899aa8` |
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.ParseLinksFromEmbedded_ObjectAsset_ResultsInAttachmentInventoryTypeAndParsesFields::test` | `InventoryAISClientTests.ParseLinksFromEmbedded_ObjectAsset_ResultsInAttachmentInventoryTypeAndParsesFields` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:37` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:129 (`parse_links_object_asset_results_in_attachment_type_and_parses_fields`)` | `translated` | `3ae365ed34f12d036dcd44c94f8568d163cfeec2a58b4975975b77b418770131` |
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.ParseItemsFromEmbedded_ItemsKey_ParsesConcreteItems::test` | `InventoryAISClientTests.ParseItemsFromEmbedded_ItemsKey_ParsesConcreteItems` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:82` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:160 (`parse_items_items_key_parses_concrete_items`)` | `translated` | `d9e7c64106639071e1ec6ada7346bfa050a31183becaac79efefcd4755fe2855` |
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.ParseLinksFromEmbedded_MeshAsset_TreatedAsAttachment::test` | `InventoryAISClientTests.ParseLinksFromEmbedded_MeshAsset_TreatedAsAttachment` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:122` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:182 (`parse_links_mesh_asset_treated_as_attachment`)` | `translated` | `f807110d577c654128dd8d42e618c610c260c4f3367cf2795776564409f876a2` |
|
||||
@@ -283,10 +283,10 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.ParseEmbedded_CombinesItemsAndLinks::test` | `InventoryAISClientTests.ParseEmbedded_CombinesItemsAndLinks` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:236` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:264 (`parse_embedded_combines_items_and_links`)` | `translated` | `f2ebf4638c9aef3c846dc182d97d80c95118799428cf8c2bba86163e33196846` |
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.MoveCategoryLinksAsync_AlwaysReturnsFalse::test` | `InventoryAISClientTests.MoveCategoryLinksAsync_AlwaysReturnsFalse` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:259` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:284 (`move_category_links_always_returns_false`)` | `translated` | `bebad05897efc0da2f959b4f567faa3ffee950520d13265ecbab1dee978f4886` |
|
||||
| `LibreMetaverse.Tests/InventoryAISClientTests.cs::InventoryAISClientTests.MoveCategoryLinksAsync_ReturnsCompletedTask::test` | `InventoryAISClientTests.MoveCategoryLinksAsync_ReturnsCompletedTask` | `` | `LibreMetaverse.Tests/InventoryAISClientTests.cs:268` | `` | `` | `tests/compat/tests/inventory_ais_semantics.rs:292 (`move_category_links_returns_completed_future`)` | `translated` | `f9830b11e6a75c90f8394a5ade56bbd542c140be4c050ba7db6c9ee4d2b7a699` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventorySkeletonIsPopulatedAfterLogin::test` | `InventoryFetchTests.InventorySkeletonIsPopulatedAfterLogin` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:109` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:88 (`inventory_skeleton_is_populated_after_login`)` | `ignored-live` | `ea1508e3c676639f00bb8a4c4c72d2ee668603bfbff40ee0b93d7f4beb607f75` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryRootContainsFolders::test` | `InventoryFetchTests.InventoryRootContainsFolders` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:147` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:109 (`inventory_root_contains_folders`)` | `ignored-live` | `71f41c718060622e1fd653e6b0fc9fe65f3cd68cab3d128f494cdbc90f9d2726` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryFolderContainsItems::test` | `InventoryFetchTests.InventoryFolderContainsItems` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:194` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:143 (`inventory_folder_contains_items`)` | `ignored-live` | `f0d77649b82d4d7d7778acebd851dd4eb44b76eb687af07bccdd20a1efe96223` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryItemCanBeFetchedById::test` | `InventoryFetchTests.InventoryItemCanBeFetchedById` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:276` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:196 (`inventory_item_can_be_fetched_by_id`)` | `ignored-live` | `7fe89086754a673ab69814202b48aab9add30dd63ee98a953bdedd54d6788af2` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventorySkeletonIsPopulatedAfterLogin::test` | `InventoryFetchTests.InventorySkeletonIsPopulatedAfterLogin` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:109` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:146 (`inventory_skeleton_is_populated_after_login`)` | `ignored-live` | `ea1508e3c676639f00bb8a4c4c72d2ee668603bfbff40ee0b93d7f4beb607f75` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryRootContainsFolders::test` | `InventoryFetchTests.InventoryRootContainsFolders` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:147` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:167 (`inventory_root_contains_folders`)` | `ignored-live` | `71f41c718060622e1fd653e6b0fc9fe65f3cd68cab3d128f494cdbc90f9d2726` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryFolderContainsItems::test` | `InventoryFetchTests.InventoryFolderContainsItems` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:194` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:203 (`inventory_folder_contains_items`)` | `ignored-live` | `f0d77649b82d4d7d7778acebd851dd4eb44b76eb687af07bccdd20a1efe96223` |
|
||||
| `LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryItemCanBeFetchedById::test` | `InventoryFetchTests.InventoryItemCanBeFetchedById` | `` | `LibreMetaverse.Tests/InventoryFetchTests.cs:276` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:244 (`inventory_item_can_be_fetched_by_id`)` | `ignored-live` | `7fe89086754a673ab69814202b48aab9add30dd63ee98a953bdedd54d6788af2` |
|
||||
| `LibreMetaverse.Tests/InventoryManagerTests.cs::InventoryManagerTests.EncryptDecrypt_RoundTrip::test` | `InventoryManagerTests.EncryptDecrypt_RoundTrip` | `` | `LibreMetaverse.Tests/InventoryManagerTests.cs:35` | `` | `` | `tests/compat/tests/inventory_manager_semantics.rs:25 (`encrypt_decrypt_round_trip`)` | `translated` | `7b59c330ffacf1174dd884f369a4e4015e1a212a0e43d7fa8889f7505dd5599d` |
|
||||
| `LibreMetaverse.Tests/InventoryManagerTests.cs::InventoryManagerTests.ItemCRC_IsDeterministic_AndChangesWhenFieldsChange::test` | `InventoryManagerTests.ItemCRC_IsDeterministic_AndChangesWhenFieldsChange` | `` | `LibreMetaverse.Tests/InventoryManagerTests.cs:45` | `` | `` | `tests/compat/tests/inventory_manager_semantics.rs:34 (`item_crc_is_deterministic_and_changes_when_fields_change`)` | `translated` | `dbd322778ad7f110abce5f10a0c83ad002ae76f6a114fa795fb90a799f4ff077` |
|
||||
| `LibreMetaverse.Tests/InventoryManagerTests.cs::InventoryManagerTests.CreateInventoryItem_ReturnsCorrectSubclass::test` | `InventoryManagerTests.CreateInventoryItem_ReturnsCorrectSubclass` | `` | `LibreMetaverse.Tests/InventoryManagerTests.cs:77` | `` | `` | `tests/compat/tests/inventory_manager_semantics.rs:60 (`create_inventory_item_returns_correct_subclass`)` | `translated` | `219f8c91bc1b3d5b5d3e5b2f2880c5733fd02e6103ccc9c6ecbf8d03328274f6` |
|
||||
@@ -305,9 +305,9 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/InventoryTests.cs::InventoryTests.ConcurrentAddMoveRemoveStress::test` | `InventoryTests.ConcurrentAddMoveRemoveStress` | `` | `LibreMetaverse.Tests/InventoryTests.cs:283` | `` | `` | `tests/compat/tests/inventory_store_semantics.rs:357 (`concurrent_add_move_remove_stress`)` | `translated` | `0b76b2fb62a6300e02a02859772f146f107caa77986f4d593e3a4d01966ab4e4` |
|
||||
| `LibreMetaverse.Tests/InventoryTests.cs::InventoryTests.ConcurrentLinkAddRemoveStress::test` | `InventoryTests.ConcurrentLinkAddRemoveStress` | `` | `LibreMetaverse.Tests/InventoryTests.cs:373` | `` | `` | `tests/compat/tests/inventory_store_semantics.rs:440 (`concurrent_link_add_remove_stress`)` | `translated` | `eef3b4eb300427800757dc6cac2dbd9202ed1cf1aac42565b3c26eb11e71bbf1` |
|
||||
| `LibreMetaverse.Tests/InventoryTests.cs::InventoryTests.LinkIndexUpdateOnAssetChange::test` | `InventoryTests.LinkIndexUpdateOnAssetChange` | `` | `LibreMetaverse.Tests/InventoryTests.cs:439` | `` | `` | `tests/compat/tests/inventory_store_semantics.rs:517 (`link_index_updates_on_asset_change`)` | `translated` | `d3e0066e06ab1c48520e5e0bbba8069b74f1a38d37e24d914392406b41b2ea0c` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibraryFoldersArePopulatedAfterLogin::test` | `LibraryInventoryTests.LibraryFoldersArePopulatedAfterLogin` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:109` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:249 (`library_folders_are_populated_after_login`)` | `ignored-live` | `dc865c88bb514bb71157a451e938b5ae3e3adde208d267d6a7196706dc9cfda2` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibraryFolderItemsCanBeFetched::test` | `LibraryInventoryTests.LibraryFolderItemsCanBeFetched` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:146` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:275 (`library_folder_items_can_be_fetched`)` | `ignored-live` | `475561d29dd25aba52d94f8374fe9083fea2ed7af44dfb6d25b55ce487b080ab` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibrarySubFolderContainsItems::test` | `LibraryInventoryTests.LibrarySubFolderContainsItems` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:219` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:309 (`library_sub_folder_contains_items`)` | `ignored-live` | `a6d02cbcb7fde8248419f1cf7355c3d37f06e8b365dc483fad935dd9a0ac5909` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibraryFoldersArePopulatedAfterLogin::test` | `LibraryInventoryTests.LibraryFoldersArePopulatedAfterLogin` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:109` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:270 (`library_folders_are_populated_after_login`)` | `ignored-live` | `dc865c88bb514bb71157a451e938b5ae3e3adde208d267d6a7196706dc9cfda2` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibraryFolderItemsCanBeFetched::test` | `LibraryInventoryTests.LibraryFolderItemsCanBeFetched` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:146` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:296 (`library_folder_items_can_be_fetched`)` | `ignored-live` | `475561d29dd25aba52d94f8374fe9083fea2ed7af44dfb6d25b55ce487b080ab` |
|
||||
| `LibreMetaverse.Tests/LibraryInventoryTests.cs::LibraryInventoryTests.LibrarySubFolderContainsItems::test` | `LibraryInventoryTests.LibrarySubFolderContainsItems` | `` | `LibreMetaverse.Tests/LibraryInventoryTests.cs:219` | `Inventory, RequiresLiveServer` | `` | `tests/compat/tests/inventory_live_semantics.rs:332 (`library_sub_folder_contains_items`)` | `ignored-live` | `a6d02cbcb7fde8248419f1cf7355c3d37f06e8b365dc483fad935dd9a0ac5909` |
|
||||
| `LibreMetaverse.Tests/LindenSkeletonTests.cs::LindenSkeletonTests.BuildExpandedJointList_EmptyFilter_ReturnsEmptyList::test` | `LindenSkeletonTests.BuildExpandedJointList_EmptyFilter_ReturnsEmptyList` | `` | `LibreMetaverse.Tests/LindenSkeletonTests.cs:58` | `LindenSkeleton` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:642 (`linden_skeleton_build_expanded_joint_list_empty_filter_returns_empty_list`)` | `translated` | `59857e0c12d374a3063e98311f7d262ca9e4fe3bde43af4698d20a6e6e550a64` |
|
||||
| `LibreMetaverse.Tests/LindenSkeletonTests.cs::LindenSkeletonTests.BuildExpandedJointList_NoBoneChildren_ReturnsEmptyList::test` | `LindenSkeletonTests.BuildExpandedJointList_NoBoneChildren_ReturnsEmptyList` | `` | `LibreMetaverse.Tests/LindenSkeletonTests.cs:70` | `LindenSkeleton` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:655 (`linden_skeleton_build_expanded_joint_list_no_bone_children_returns_empty_list`)` | `translated` | `c744ad17de5b5dd0e594973181307ddaba0d9b0ecf0ce3ff258e108de45e82be` |
|
||||
| `LibreMetaverse.Tests/LindenSkeletonTests.cs::LindenSkeletonTests.BuildExpandedJointList_LinearChain_AllInFilter_ProducesCorrectSequence::test` | `LindenSkeletonTests.BuildExpandedJointList_LinearChain_AllInFilter_ProducesCorrectSequence` | `` | `LibreMetaverse.Tests/LindenSkeletonTests.cs:80` | `LindenSkeleton` | `` | `crates/libremetaverse/src/avatar_animesh_semantics.rs:669 (`linden_skeleton_build_expanded_joint_list_linear_chain_all_in_filter`)` | `translated` | `c2fa9fc02df25cb6eb083746a100abf551d208ea036cadb26a1e94649d33e560` |
|
||||
@@ -433,8 +433,8 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs::MisclassifiedLinkRegressionTests.InventoryStore_Indexer_ReturnsAttachment_WhenTargetIsAttachment::test` | `MisclassifiedLinkRegressionTests.InventoryStore_Indexer_ReturnsAttachment_WhenTargetIsAttachment` | `` | `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs:168` | `Inventory` | `` | `tests/compat/tests/misclassified_link_semantics.rs:90 (`inventory_store_indexer_returns_attachment_when_target_is_attachment`)` | `translated` | `f58debff8f66b7b417215eb6879f96935647b66cc619fdb00e6815c9ce5e7c67` |
|
||||
| `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs::MisclassifiedLinkRegressionTests.InventoryStore_Indexer_ReturnsObject_WhenTargetIsObject::test` | `MisclassifiedLinkRegressionTests.InventoryStore_Indexer_ReturnsObject_WhenTargetIsObject` | `` | `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs:192` | `Inventory` | `` | `tests/compat/tests/misclassified_link_semantics.rs:114 (`inventory_store_indexer_returns_object_when_target_is_object`)` | `translated` | `b8137c994019103977b0b85d8c148e12ae8f9051334ca487db7c88bcbe707d40` |
|
||||
| `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs::MisclassifiedLinkRegressionTests.InventoryStore_NotContains_WhenTargetAbsent::test` | `MisclassifiedLinkRegressionTests.InventoryStore_NotContains_WhenTargetAbsent` | `` | `LibreMetaverse.Tests/MisclassifiedLinkRegressionTests.cs:216` | `Inventory` | `` | `tests/compat/tests/misclassified_link_semantics.rs:136 (`inventory_store_not_contains_when_target_absent`)` | `translated` | `6900e220c33ec135d02c55e047c7052a095d5dd9d71da4a857ae70bc151c472b` |
|
||||
| `LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.DetectObjects::test` | `NetworkTests.DetectObjects` | `` | `LibreMetaverse.Tests/NetworkTests.cs:121` | `Network, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:409 (`detect_objects_live`)` | `ignored-live` | `8b72f1ca30feda2fad0812faf3a2f83d691d3cca9268054b3cc3bf89ad786e87` |
|
||||
| `LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.CapsQueue::test` | `NetworkTests.CapsQueue` | `` | `LibreMetaverse.Tests/NetworkTests.cs:188` | `Network, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:488 (`caps_queue_live`)` | `ignored-live` | `cd5af4e7d69df3e938540711877d167fe28efb9af8af7518a62b8f406e46cc18` |
|
||||
| `LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.DetectObjects::test` | `NetworkTests.DetectObjects` | `` | `LibreMetaverse.Tests/NetworkTests.cs:121` | `Network, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:385 (`detect_objects_live`)` | `ignored-live` | `8b72f1ca30feda2fad0812faf3a2f83d691d3cca9268054b3cc3bf89ad786e87` |
|
||||
| `LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.CapsQueue::test` | `NetworkTests.CapsQueue` | `` | `LibreMetaverse.Tests/NetworkTests.cs:188` | `Network, RequiresLiveServer` | `` | `tests/compat/tests/network_semantics.rs:436 (`caps_queue_live`)` | `ignored-live` | `cd5af4e7d69df3e938540711877d167fe28efb9af8af7518a62b8f406e46cc18` |
|
||||
| `LibreMetaverse.Tests/NotationLLSDTests.cs::NotationSDTests.HelperFunctions::test` | `NotationSDTests.HelperFunctions` | `` | `LibreMetaverse.Tests/NotationLLSDTests.cs:53` | `` | `` | `tests/compat/tests/structured_data.rs:628 (`notation_helper_functions`)` | `translated` | `a521ca5407ed3afd1d59f5b65a283bcebe9d34b4c384d68c5fc674b3a1eeb9df` |
|
||||
| `LibreMetaverse.Tests/NotationLLSDTests.cs::NotationSDTests.DeserializeUndef::test` | `NotationSDTests.DeserializeUndef` | `` | `LibreMetaverse.Tests/NotationLLSDTests.cs:80` | `` | `` | `tests/compat/tests/structured_data.rs:650 (`notation_deserialize_undef`)` | `translated` | `8c802fb14244cb423223c7c25702e4120da261f5dd1b378d2eca597277371406` |
|
||||
| `LibreMetaverse.Tests/NotationLLSDTests.cs::NotationSDTests.SerializeUndef::test` | `NotationSDTests.SerializeUndef` | `` | `LibreMetaverse.Tests/NotationLLSDTests.cs:88` | `` | `` | `tests/compat/tests/structured_data.rs:658 (`notation_serialize_undef`)` | `translated` | `2ceee97b1826a3ba88a50798dba184b48998196192e31527171a9980f06c3281` |
|
||||
@@ -1125,10 +1125,10 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_NoRestartConfigured_ReturnsNull::test` | `RegionScheduleTests.GetRegionRestartScheduleAsync_NoRestartConfigured_ReturnsNull` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:93` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:328 (`get_region_restart_schedule_no_restart_returns_none`)` | `translated` | `59a4b050a79659ccaf0fff13b750d634d803ed7b9e4940cbad676c1bdc04a5fc` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_NoCapability_ReturnsNullWithoutRequest::test` | `RegionScheduleTests.GetRegionRestartScheduleAsync_NoCapability_ReturnsNullWithoutRequest` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:103` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:343 (`get_region_restart_schedule_no_capability_returns_none_without_request`)` | `translated` | `e169e7846874ed4309a50cb25b03c2e722a8d758a787654a5906610ab3b655f1` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_Weekly_PostsUppercaseDaysAndSeconds::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_Weekly_PostsUppercaseDaysAndSeconds` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:120` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:367 (`set_region_restart_schedule_weekly_posts_uppercase_days_and_seconds`)` | `translated` | `153fc0ac84af549c1381d0814a356bf2d9e0ead2c879e503981193366943546c` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_DailyIgnoresDays_DoesNotPostDaysKey::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_DailyIgnoresDays_DoesNotPostDaysKey` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:143` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:394 (`set_region_restart_schedule_daily_omits_days`)` | `translated` | `b51a1272465c3316194542eb346b2aa15c43fdc8474163ddd851b3f2204d1c2b` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_EmptyDaysClearsSchedule::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_EmptyDaysClearsSchedule` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:157` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:420 (`set_region_restart_schedule_empty_days_clears_schedule`)` | `translated` | `57ef3c0f8d9eeac58a7d1b3e7dbc44413016f39303d304cacd3071bd2c55f320` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_NoCapability_ReturnsFalseWithoutRequest::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_NoCapability_ReturnsFalseWithoutRequest` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:177` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:440 (`set_region_restart_schedule_no_capability_returns_false_without_request`)` | `translated` | `be03507fe574b9f7c7174c39af44b7b693e1b7a496845db46451ef09bf9db206` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_NonSuccessStatus_ReturnsFalse::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_NonSuccessStatus_ReturnsFalse` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:195` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:458 (`set_region_restart_schedule_non_success_returns_false`)` | `translated` | `16c8988d7aa15ea9f58deaa2e3f416b6115978e23073fd99749843f4f410dca4` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_DailyIgnoresDays_DoesNotPostDaysKey::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_DailyIgnoresDays_DoesNotPostDaysKey` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:143` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:393 (`set_region_restart_schedule_daily_omits_days`)` | `translated` | `b51a1272465c3316194542eb346b2aa15c43fdc8474163ddd851b3f2204d1c2b` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_EmptyDaysClearsSchedule::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_EmptyDaysClearsSchedule` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:157` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:415 (`set_region_restart_schedule_empty_days_clears_schedule`)` | `translated` | `57ef3c0f8d9eeac58a7d1b3e7dbc44413016f39303d304cacd3071bd2c55f320` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_NoCapability_ReturnsFalseWithoutRequest::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_NoCapability_ReturnsFalseWithoutRequest` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:177` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:435 (`set_region_restart_schedule_no_capability_returns_false_without_request`)` | `translated` | `be03507fe574b9f7c7174c39af44b7b693e1b7a496845db46451ef09bf9db206` |
|
||||
| `LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.SetRegionRestartScheduleAsync_NonSuccessStatus_ReturnsFalse::test` | `RegionScheduleTests.SetRegionRestartScheduleAsync_NonSuccessStatus_ReturnsFalse` | `` | `LibreMetaverse.Tests/RegionScheduleTests.cs:195` | `Estate` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/world_capability_semantics.rs:453 (`set_region_restart_schedule_non_success_returns_false`)` | `translated` | `16c8988d7aa15ea9f58deaa2e3f416b6115978e23073fd99749843f4f410dca4` |
|
||||
| `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs::RequestTaskInventoryCapTests.GetTaskInventoryAsync_CapAvailable_ReturnsContentsFolderAndDecryptsShadowId::test` | `RequestTaskInventoryCapTests.GetTaskInventoryAsync_CapAvailable_ReturnsContentsFolderAndDecryptsShadowId` | `` | `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs:73` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/task_inventory_semantics.rs:138 (`cap_available_returns_contents_folder_and_decrypts_shadow_id`)` | `translated` | `c9bfc5526260f9e2dffa8a22938999911fdd80be4b2b6d6487bf6171f8dbb56a` |
|
||||
| `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs::RequestTaskInventoryCapTests.GetTaskInventoryAsync_PlainAssetId_ParsesWithoutDecryption::test` | `RequestTaskInventoryCapTests.GetTaskInventoryAsync_PlainAssetId_ParsesWithoutDecryption` | `` | `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs:115` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/task_inventory_semantics.rs:176 (`plain_asset_id_parses_without_decryption`)` | `translated` | `95f39928dae61bca86b7d0a0702307db6c5fdc754e51f73a24bd5ee131e6de3f` |
|
||||
| `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs::RequestTaskInventoryCapTests.GetTaskInventoryAsync_NonSuccessStatus_ReturnsContentsFolderOnly::test` | `RequestTaskInventoryCapTests.GetTaskInventoryAsync_NonSuccessStatus_ReturnsContentsFolderOnly` | `` | `LibreMetaverse.Tests/RequestTaskInventoryCapTests.cs:143` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/task_inventory_semantics.rs:196 (`non_success_status_returns_contents_folder_only`)` | `translated` | `b8a25891064e470ac8d77ecd8a4847cf773b043de5ebeae275a9dd6669518585` |
|
||||
@@ -1137,9 +1137,9 @@ Reviewed Rust tests live outside `generated_parity.rs` and carry a `parity-case`
|
||||
| `LibreMetaverse.Tests/SendPostcardTests.cs::SendPostcardTests.SendPostcardAsync_UploaderMissingFromResponse_ReturnsFalseWithoutSecondRequest::test` | `SendPostcardTests.SendPostcardAsync_UploaderMissingFromResponse_ReturnsFalseWithoutSecondRequest` | `` | `LibreMetaverse.Tests/SendPostcardTests.cs:100` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:586 (`postcard_missing_uploader_returns_false_after_one_request`)` | `translated` | `2f9498d57d7a512399f9b108765e6e8da8e4c937402f9671d580c66332630432` |
|
||||
| `LibreMetaverse.Tests/SendPostcardTests.cs::SendPostcardTests.SendPostcardAsync_UploadDoesNotComplete_ReturnsFalse::test` | `SendPostcardTests.SendPostcardAsync_UploadDoesNotComplete_ReturnsFalse` | `` | `LibreMetaverse.Tests/SendPostcardTests.cs:112` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:608 (`postcard_incomplete_upload_returns_false`)` | `translated` | `937b682b406506ec9fba9570852bbf8689450a11cbecb85979af97609b1794f9` |
|
||||
| `LibreMetaverse.Tests/SendPostcardTests.cs::SendPostcardTests.SendPostcardAsync_NoCapability_ReturnsFalseWithoutRequest::test` | `SendPostcardTests.SendPostcardAsync_NoCapability_ReturnsFalseWithoutRequest` | `` | `LibreMetaverse.Tests/SendPostcardTests.cs:125` | `` | `LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs` | `tests/compat/tests/asset_capability_semantics.rs:635 (`postcard_without_capability_makes_no_request`)` | `translated` | `8d3ef84e873096d9388bb7db3eaeeb79c661fd9951e338f71bbf3251ae6580e8` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SendSimConsoleCommandAsync_IgnoresPostBody_UsesSimConsoleResponseEvent::test` | `SimConsoleTests.SendSimConsoleCommandAsync_IgnoresPostBody_UsesSimConsoleResponseEvent` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:81` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:232 (`send_sim_console_command_ignores_post_body_and_uses_response_event`)` | `translated` | `df6eb48241f71c34074be66869c9ae1d5980186583259568728261b5eedd7c48` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SendSimConsoleCommandAsync_NoResponseEvent_ReturnsNullAfterTimeout::test` | `SimConsoleTests.SendSimConsoleCommandAsync_NoResponseEvent_ReturnsNullAfterTimeout` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:111` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:253 (`send_sim_console_command_no_response_event_returns_none_after_timeout`)` | `translated` | `2ac5a6c96f3acec341056387d727288fd3661565bd2a7c385078602efe8661da` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SimConsoleResponseMessage_Deserialize_ReadsBodyField::test` | `SimConsoleTests.SimConsoleResponseMessage_Deserialize_ReadsBodyField` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:133` | `Estate` | `` | `tests/compat/tests/world_capability_semantics.rs:475 (`sim_console_response_message_deserialize_reads_body_field`)` | `translated` | `4d367bc3fd012d1579847fd9837bf883c5ea95452776a086bbf856899d7c2099` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SendSimConsoleCommandAsync_IgnoresPostBody_UsesSimConsoleResponseEvent::test` | `SimConsoleTests.SendSimConsoleCommandAsync_IgnoresPostBody_UsesSimConsoleResponseEvent` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:81` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:234 (`send_sim_console_command_ignores_post_body_and_uses_response_event`)` | `translated` | `df6eb48241f71c34074be66869c9ae1d5980186583259568728261b5eedd7c48` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SendSimConsoleCommandAsync_NoResponseEvent_ReturnsNullAfterTimeout::test` | `SimConsoleTests.SendSimConsoleCommandAsync_NoResponseEvent_ReturnsNullAfterTimeout` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:111` | `Estate` | `` | `crates/libremetaverse/src/world_internal_semantics.rs:255 (`send_sim_console_command_no_response_event_returns_none_after_timeout`)` | `translated` | `2ac5a6c96f3acec341056387d727288fd3661565bd2a7c385078602efe8661da` |
|
||||
| `LibreMetaverse.Tests/SimConsoleTests.cs::SimConsoleTests.SimConsoleResponseMessage_Deserialize_ReadsBodyField::test` | `SimConsoleTests.SimConsoleResponseMessage_Deserialize_ReadsBodyField` | `` | `LibreMetaverse.Tests/SimConsoleTests.cs:133` | `Estate` | `` | `tests/compat/tests/world_capability_semantics.rs:470 (`sim_console_response_message_deserialize_reads_body_field`)` | `translated` | `4d367bc3fd012d1579847fd9837bf883c5ea95452776a086bbf856899d7c2099` |
|
||||
| `LibreMetaverse.Tests/SlurlParserTests.cs::SlurlParserTests.ParseSimpleLocation_ParsesCorrectly::test` | `SlurlParserTests.ParseSimpleLocation_ParsesCorrectly` | `` | `LibreMetaverse.Tests/SlurlParserTests.cs:36` | `LocationParser` | `` | `tests/compat/tests/slurl_semantics.rs:23 (`parse_simple_location_parses_correctly`)` | `translated` | `4ca1200596cd99959db205bd40050c9ed62ac68fcd58079d52882e3b24af3fdf` |
|
||||
| `LibreMetaverse.Tests/SlurlParserTests.cs::SlurlParserTests.ParseSlurl_ParsesCorrectly::test` | `SlurlParserTests.ParseSlurl_ParsesCorrectly` | `` | `LibreMetaverse.Tests/SlurlParserTests.cs:50` | `LocationParser` | `` | `tests/compat/tests/slurl_semantics.rs:33 (`parse_slurl_parses_correctly`)` | `translated` | `b389e823a365884bb10813a587c5922416dc8d0737f36bfde99c56cc4e4accda` |
|
||||
| `LibreMetaverse.Tests/SlurlParserTests.cs::SlurlParserTests.ParseSlurlWithTrailingSlash_ParsesCorrectly::test` | `SlurlParserTests.ParseSlurlWithTrailingSlash_ParsesCorrectly` | `` | `LibreMetaverse.Tests/SlurlParserTests.cs:62` | `LocationParser` | `` | `tests/compat/tests/slurl_semantics.rs:41 (`parse_slurl_with_trailing_slash_parses_correctly`)` | `translated` | `eb8513ad0d5dd9f67b537c1a844f738ef9363efdafd97aa31ec6fb697395c270` |
|
||||
|
||||
3
tests/api-compile/Cargo.lock
generated
3
tests/api-compile/Cargo.lock
generated
@@ -1205,6 +1205,7 @@ dependencies = [
|
||||
"futures-channel",
|
||||
"futures-util",
|
||||
"libremetaverse-imaging",
|
||||
"libremetaverse-prim-mesher",
|
||||
"libremetaverse-structured-data",
|
||||
"libremetaverse-types",
|
||||
"mac_address2",
|
||||
@@ -1315,12 +1316,14 @@ dependencies = [
|
||||
"libremetaverse",
|
||||
"libremetaverse-structured-data",
|
||||
"libremetaverse-types",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libremetaverse-voice-vivox"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"libremetaverse",
|
||||
"libremetaverse-structured-data",
|
||||
"libremetaverse-types",
|
||||
|
||||
@@ -12973,7 +12973,7 @@ fn member_02323(value: &mut libremetaverse::EventQueueRunningEventArgs) {
|
||||
fn type_0237(_: &libremetaverse::EventSubscriptionHelper) {}
|
||||
|
||||
// C# member: `M:LibreMetaverse.EventSubscriptionHelper.WaitForCondition``1(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Int32)`.
|
||||
fn member_02324<TEventArgs>() {
|
||||
fn member_02324<TEventArgs: 'static>() {
|
||||
let _ = libremetaverse::EventSubscriptionHelper::wait_for_condition::<TEventArgs>(
|
||||
argument(),
|
||||
argument(),
|
||||
@@ -12983,12 +12983,12 @@ fn member_02324<TEventArgs>() {
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.EventSubscriptionHelper.WaitForEventAsync``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,System.Threading.CancellationToken,``1)`.
|
||||
fn member_02325<TEventArgs, TResult>() {
|
||||
fn member_02325<TEventArgs: 'static, TResult: Send + 'static>() {
|
||||
let _ = libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result::<TEventArgs, TResult>(argument(), argument(), argument(), argument(), argument(), argument(), argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.EventSubscriptionHelper.WaitForEvent``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,``1)`.
|
||||
fn member_02326<TEventArgs, TResult>() {
|
||||
fn member_02326<TEventArgs: 'static, TResult: Send + 'static>() {
|
||||
let _ = libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_t_result::<TEventArgs, TResult>(argument(), argument(), argument(), argument(), argument(), argument());
|
||||
}
|
||||
|
||||
@@ -50857,82 +50857,158 @@ fn member_08329() {
|
||||
fn type_1095<TKey, TValue>(_: &libremetaverse::ObservableDictionary<TKey, TValue>) {}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.#ctor`.
|
||||
fn member_08330<TKey, TValue>() {
|
||||
fn member_08330<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>() {
|
||||
let _ = libremetaverse::ObservableDictionary::<TKey, TValue>::new_with_constructor();
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.#ctor(System.Int32)`.
|
||||
fn member_08331<TKey, TValue>() {
|
||||
fn member_08331<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>() {
|
||||
let _ = libremetaverse::ObservableDictionary::<TKey, TValue>::new_with_int32(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.Add(`0,`1)`.
|
||||
fn member_08332<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08332<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.add(argument(), argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.AddDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback)`.
|
||||
fn member_08333<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08333<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.add_delegate(argument(), argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.Clear`.
|
||||
fn member_08334<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08334<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.clear();
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.ContainsKey(`0)`.
|
||||
fn member_08335<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08335<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.contains_key(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.ContainsValue(`1)`.
|
||||
fn member_08336<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08336<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.contains_value(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.Find(System.Predicate{`1})`.
|
||||
fn member_08337<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08337<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.find(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.FindAll(System.Predicate{`0})`.
|
||||
fn member_08338<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08338<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.find_all_with_predicate(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.FindAll(System.Predicate{`1})`.
|
||||
fn member_08339<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08339<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.find_all_with_predicate_6d98ccd2(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.GetEnumerator`.
|
||||
fn member_08340<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08340<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.get_enumerator();
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.Remove(`0)`.
|
||||
fn member_08341<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08341<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.remove(argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.RemoveDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback)`.
|
||||
fn member_08342<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08342<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.remove_delegate(argument(), argument());
|
||||
}
|
||||
|
||||
// C# member: `M:LibreMetaverse.ObservableDictionary`2.TryGetValue(`0,`1@)`.
|
||||
fn member_08343<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08343<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.try_get_value(argument(), argument());
|
||||
}
|
||||
|
||||
// C# member: `P:LibreMetaverse.ObservableDictionary`2.Count`.
|
||||
fn member_08344<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08344<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.count();
|
||||
}
|
||||
|
||||
// C# member: `P:LibreMetaverse.ObservableDictionary`2.Item(`0)`.
|
||||
fn member_08345<TKey, TValue>(value: &mut libremetaverse::ObservableDictionary<TKey, TValue>) {
|
||||
fn member_08345<
|
||||
TKey: Clone + Eq + std::hash::Hash + Into<libremetaverse_types::compat::Object>,
|
||||
TValue: Clone + PartialEq + Into<libremetaverse_types::compat::Object>,
|
||||
>(
|
||||
value: &mut libremetaverse::ObservableDictionary<TKey, TValue>,
|
||||
) {
|
||||
let _ = value.item(argument());
|
||||
let _ = value.set_item(argument(), argument());
|
||||
}
|
||||
|
||||
@@ -10,6 +10,15 @@ use std::sync::{Arc, Mutex};
|
||||
use std::task::{Context, Poll, Wake, Waker};
|
||||
use std::time::Duration;
|
||||
|
||||
const OPENSIM_LOGIN_OPTIONS: [&str; 6] = [
|
||||
"avatar_picker_url",
|
||||
"classified_fee",
|
||||
"currency",
|
||||
"destination_guide_url",
|
||||
"profile-server-url",
|
||||
"search",
|
||||
];
|
||||
|
||||
/// Runs one test future without choosing an async runtime for the library.
|
||||
pub fn block_on<F: Future>(future: F) -> F::Output {
|
||||
struct ThreadWake(std::thread::Thread);
|
||||
@@ -31,6 +40,121 @@ pub fn block_on<F: Future>(future: F) -> F::Output {
|
||||
}
|
||||
}
|
||||
|
||||
/// Tokio runtime kept alive for the complete lifetime of a live-grid fixture.
|
||||
///
|
||||
/// Network login starts UDP, capability, timer, and cancellation tasks. Keeping
|
||||
/// this multi-thread runtime in the fixture lets those tasks continue running
|
||||
/// while a synchronous compatibility assertion observes grid state.
|
||||
pub struct LiveTestRuntime(tokio::runtime::Runtime);
|
||||
|
||||
impl LiveTestRuntime {
|
||||
/// Creates a live-I/O runtime with all Tokio drivers enabled.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if worker threads or the runtime's I/O driver cannot be created.
|
||||
#[must_use]
|
||||
pub fn new() -> Self {
|
||||
Self(
|
||||
tokio::runtime::Builder::new_multi_thread()
|
||||
.worker_threads(2)
|
||||
.enable_all()
|
||||
.build()
|
||||
.expect("create live-grid Tokio runtime"),
|
||||
)
|
||||
}
|
||||
|
||||
/// Runs one live-grid future while retaining the runtime for background I/O.
|
||||
pub fn block_on<F: Future>(&self, future: F) -> F::Output {
|
||||
self.0.block_on(future)
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for LiveTestRuntime {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
/// Authenticates a test client against the exact `OpenSim` endpoint in `.env`.
|
||||
///
|
||||
/// The helper adds the `OpenSim` response options used by the dedicated smoke
|
||||
/// program and retries only the server's explicit stale-session response. It
|
||||
/// does not substitute a Second Life endpoint, region, or start location.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if parameters cannot be constructed or the dedicated account cannot
|
||||
/// authenticate within 90 seconds.
|
||||
pub fn login_live_grid(
|
||||
runtime: &LiveTestRuntime,
|
||||
client: &mut libremetaverse::GridClient,
|
||||
channel: &str,
|
||||
version: &str,
|
||||
) -> libremetaverse::NetworkManager {
|
||||
client.settings().timing().login_timeout = 30_000;
|
||||
client.settings().timing().logout_timeout = 5_000;
|
||||
// OpenSim sends inventory bootstrap and initial scene packets as part of
|
||||
// login. These lazily constructed services must install their consumers
|
||||
// before credentials cross the wire or that one-shot state is lost.
|
||||
let _ = client.self_();
|
||||
let _ = client.objects();
|
||||
let _ = client.inventory();
|
||||
let _ = client.assets();
|
||||
let _ = client.appearance();
|
||||
let _ = client.avatars();
|
||||
let _ = client.grid();
|
||||
let _ = client.estate();
|
||||
let network = client.network();
|
||||
let (first, last, password, login_url) = live_grid_credentials();
|
||||
let deadline = std::time::Instant::now() + Duration::from_secs(90);
|
||||
loop {
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first.clone(),
|
||||
last.clone(),
|
||||
password.clone(),
|
||||
channel.to_owned(),
|
||||
version.to_owned(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.uri.clone_from(&login_url);
|
||||
for option in OPENSIM_LOGIN_OPTIONS {
|
||||
if !login.options.iter().any(|existing| existing == option) {
|
||||
login.options.push(option.to_owned());
|
||||
}
|
||||
}
|
||||
let logged_in = runtime
|
||||
.block_on(network.login_with_login_params_cancellation_token(login, None))
|
||||
.expect("NetworkManager LoginAsync");
|
||||
if logged_in {
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
let simulator = network
|
||||
.current_sim()
|
||||
.expect("CurrentSim is null after successful OpenSim login");
|
||||
client
|
||||
.self_()
|
||||
.complete_agent_movement(simulator)
|
||||
.expect("complete OpenSim agent movement after login");
|
||||
return network;
|
||||
}
|
||||
let message = network.login_message();
|
||||
let stale_session = message.to_ascii_lowercase().contains("already logged in");
|
||||
assert!(
|
||||
stale_session && std::time::Instant::now() < deadline,
|
||||
"OpenSim login failed: {message}"
|
||||
);
|
||||
std::thread::sleep(Duration::from_secs(5));
|
||||
}
|
||||
}
|
||||
|
||||
/// Performs the protocol logout while the live runtime is still active.
|
||||
pub fn logout_live_grid(runtime: &LiveTestRuntime, client: &mut libremetaverse::GridClient) {
|
||||
let network = client.network();
|
||||
let _ = runtime.block_on(network.logout_with_cancellation_token(None));
|
||||
let _ = client.dispose_with_method();
|
||||
}
|
||||
|
||||
/// Loads the live-grid identity from the process environment or workspace `.env`.
|
||||
///
|
||||
/// # Panics
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// Exact Rust translations of LibreMetaverse.Tests/AppearanceLiveTests.cs.
|
||||
// Source SHA-256: 9f4ec256d11290cbad70e209d2f9043d4c6afb18255796c09c4cb26415f971a6
|
||||
|
||||
use libremetaverse::GridClient;
|
||||
use libremetaverse::appearance::CurrentOutfitFolder;
|
||||
use libremetaverse::{GridClient, NetworkManager};
|
||||
use libremetaverse_compat_tests::{block_on, live_grid_credentials};
|
||||
use libremetaverse_compat_tests::{LiveTestRuntime, login_live_grid, logout_live_grid};
|
||||
use libremetaverse_types::{UUID, WearableType};
|
||||
use std::sync::Arc;
|
||||
use std::time::{Duration, Instant};
|
||||
@@ -11,47 +11,36 @@ use std::time::{Duration, Instant};
|
||||
struct LiveAppearance {
|
||||
client: Arc<GridClient>,
|
||||
cof: CurrentOutfitFolder,
|
||||
runtime: LiveTestRuntime,
|
||||
}
|
||||
|
||||
impl LiveAppearance {
|
||||
fn login() -> Self {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.settings().timing().login_timeout = 30_000;
|
||||
let network = client.network();
|
||||
let (first, last, password, login_url) = live_grid_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"admin@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let logged_in = block_on(network.login_with_login_params_cancellation_token(login, None))
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to login: {}",
|
||||
network.login_message()
|
||||
login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"admin@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
let client = Arc::new(client);
|
||||
let cof = CurrentOutfitFolder::new(Some(Arc::clone(&client)))
|
||||
.expect("CurrentOutfitFolder constructor");
|
||||
Self { client, cof }
|
||||
Self {
|
||||
client,
|
||||
cof,
|
||||
runtime,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for LiveAppearance {
|
||||
fn drop(&mut self) {
|
||||
let _ = self.cof.dispose();
|
||||
let _ = self.client.network().logout_with_method();
|
||||
let _ = self.client.dispose_with_method();
|
||||
if let Some(client) = Arc::get_mut(&mut self.client) {
|
||||
logout_live_grid(&self.runtime, client);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +52,9 @@ impl Drop for LiveAppearance {
|
||||
)]
|
||||
fn cof_is_initialized_after_login() {
|
||||
let live = LiveAppearance::login();
|
||||
block_on(live.cof.get_current_outfit_links(None)).unwrap();
|
||||
live.runtime
|
||||
.block_on(live.cof.get_current_outfit_links(None))
|
||||
.unwrap();
|
||||
let folder = live.cof.cof().expect("COF folder is null");
|
||||
assert_ne!(folder.base.uuid(), UUID::zero());
|
||||
}
|
||||
@@ -76,7 +67,9 @@ fn cof_is_initialized_after_login() {
|
||||
)]
|
||||
fn cof_has_expected_folder_name() {
|
||||
let live = LiveAppearance::login();
|
||||
block_on(live.cof.get_current_outfit_links(None)).unwrap();
|
||||
live.runtime
|
||||
.block_on(live.cof.get_current_outfit_links(None))
|
||||
.unwrap();
|
||||
let folder = live.cof.cof().expect("COF folder is null");
|
||||
assert!(folder.base.name().eq_ignore_ascii_case("Current Outfit"));
|
||||
}
|
||||
@@ -89,7 +82,10 @@ fn cof_has_expected_folder_name() {
|
||||
)]
|
||||
fn get_current_outfit_links_returns_links() {
|
||||
let live = LiveAppearance::login();
|
||||
let links = block_on(live.cof.get_current_outfit_links(None)).unwrap();
|
||||
let links = live
|
||||
.runtime
|
||||
.block_on(live.cof.get_current_outfit_links(None))
|
||||
.unwrap();
|
||||
for link in links {
|
||||
assert!(link.is_link().unwrap(), "returned COF item is not a link");
|
||||
}
|
||||
@@ -103,12 +99,14 @@ fn get_current_outfit_links_returns_links() {
|
||||
)]
|
||||
fn get_current_outfit_links_contains_at_least_one_link() {
|
||||
let live = LiveAppearance::login();
|
||||
let links = block_on(live.cof.get_current_outfit_links(None)).unwrap();
|
||||
if links.is_empty() {
|
||||
eprintln!("COF returned zero links; equip at least a default shape for this assertion");
|
||||
return;
|
||||
}
|
||||
assert!(!links.is_empty());
|
||||
let links = live
|
||||
.runtime
|
||||
.block_on(live.cof.get_current_outfit_links(None))
|
||||
.unwrap();
|
||||
assert!(
|
||||
!links.is_empty(),
|
||||
"COF returned zero links; the dedicated account must wear at least its default shape"
|
||||
);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.GetWornAt_Shape_ReturnsAtLeastOne::test abc01e346371910610312ff9352ee05c0d317a7c677c0fa8cb398d3b0522c3bf ignored-live
|
||||
@@ -119,12 +117,14 @@ fn get_current_outfit_links_contains_at_least_one_link() {
|
||||
)]
|
||||
fn get_worn_at_shape_returns_at_least_one() {
|
||||
let live = LiveAppearance::login();
|
||||
let worn = block_on(live.cof.get_worn_at(WearableType::Shape, None)).unwrap();
|
||||
if worn.is_empty() {
|
||||
eprintln!("GetWornAtAsync(Shape) returned no items for this account");
|
||||
return;
|
||||
}
|
||||
assert!(!worn.is_empty());
|
||||
let worn = live
|
||||
.runtime
|
||||
.block_on(live.cof.get_worn_at(WearableType::Shape, None))
|
||||
.unwrap();
|
||||
assert!(
|
||||
!worn.is_empty(),
|
||||
"GetWornAtAsync(Shape) returned no items for the dedicated account"
|
||||
);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.LastUpdateReceivedCOFVersion_AdvancesAfterLogin::test 5371df8b02df9da20b413f4155f63967184dad23f57708beb56a2c6559e78520 ignored-live
|
||||
@@ -144,11 +144,10 @@ fn last_update_received_cof_version_advances_after_login() {
|
||||
}
|
||||
std::thread::sleep(Duration::from_millis(500));
|
||||
}
|
||||
if version == -1 {
|
||||
eprintln!("the simulator did not send AvatarAppearance for self within 25 seconds");
|
||||
return;
|
||||
}
|
||||
assert!(version > -1);
|
||||
assert!(
|
||||
version > -1,
|
||||
"the OpenSim simulator did not send AvatarAppearance for self within 25 seconds"
|
||||
);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/AppearanceLiveTests.cs::AppearanceLiveTests.RequestOwnAvatarTextures_DoesNotThrow_AndMaintainsVersionGuard::test ee8420690fc9714411450beb5be5755b82ddf7ed0d69e9da88b3184339bea744 ignored-live
|
||||
|
||||
@@ -18,7 +18,25 @@ use std::any::TypeId;
|
||||
use std::sync::Arc;
|
||||
|
||||
struct RecordingTextureProvider;
|
||||
impl IBakingTextureProvider for RecordingTextureProvider {}
|
||||
impl IBakingTextureProvider for RecordingTextureProvider {
|
||||
fn request_texture(
|
||||
&self,
|
||||
_texture_id: UUID,
|
||||
_cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
|
||||
) -> std::pin::Pin<
|
||||
Box<
|
||||
dyn std::future::Future<
|
||||
Output = Result<
|
||||
Option<libremetaverse::assets::AssetTexture>,
|
||||
libremetaverse::Error,
|
||||
>,
|
||||
> + Send
|
||||
+ '_,
|
||||
>,
|
||||
> {
|
||||
Box::pin(async { Ok(None) })
|
||||
}
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/AppearanceManagerTests.cs::AppearanceManagerTests.WearableTypeToAssetType_BodypartsAndClothing_ReturnsExpected::test 6d0f0d09a6da8121ba828159a75ca1c1ce54329ec48060a6786aa8f807c13ec0 translated
|
||||
#[test]
|
||||
|
||||
@@ -233,6 +233,7 @@ fn collada_triangle_converts_to_native_model_asset() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[allow(clippy::float_cmp)] // Parsed fixture values are exact decimal constants.
|
||||
fn collada_applies_units_effects_and_instance_material_bindings() {
|
||||
let root = temporary_directory("collada-material");
|
||||
let file = root.join("material.dae");
|
||||
@@ -274,8 +275,8 @@ fn collada_texture_path_cannot_escape_document_root() {
|
||||
let file = root.join("traversal.dae");
|
||||
fs::write(
|
||||
&file,
|
||||
r##"<COLLADA><library_images><image id="escape"><init_from>../secret.jp2</init_from></image></library_images>
|
||||
<library_materials><material id="mat"><diffuse><texture texture="escape"/></diffuse></material></library_materials></COLLADA>"##,
|
||||
r#"<COLLADA><library_images><image id="escape"><init_from>../secret.jp2</init_from></image></library_images>
|
||||
<library_materials><material id="mat"><diffuse><texture texture="escape"/></diffuse></material></library_materials></COLLADA>"#,
|
||||
)
|
||||
.expect("write traversal fixture");
|
||||
assert!(
|
||||
|
||||
@@ -8,14 +8,6 @@ use libremetaverse::{
|
||||
use libremetaverse_types::compat::{CancellationToken, EventHandler, Subscription};
|
||||
use libremetaverse_types::{AssetType, AttachmentPoint, UUID};
|
||||
|
||||
fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
|
||||
result
|
||||
.err()
|
||||
.expect("failure-only shim unexpectedly returned a value")
|
||||
.csharp_member()
|
||||
.expect("failure-only shim error")
|
||||
}
|
||||
|
||||
fn compile_bot_and_animation_calls(
|
||||
agent: &AgentManager,
|
||||
chat_type: ChatType,
|
||||
@@ -95,7 +87,7 @@ fn avatar_facing_flows_have_typed_callable_signatures() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn avatar_facing_constructors_preserve_native_defaults_and_catalog_errors() {
|
||||
fn avatar_facing_constructors_preserve_native_defaults() {
|
||||
let download = AssetDownload::new().expect("AssetDownload constructor");
|
||||
assert_eq!(download.asset_id, UUID::zero());
|
||||
assert_eq!(download.next_packet, 0);
|
||||
@@ -111,10 +103,9 @@ fn avatar_facing_constructors_preserve_native_defaults_and_catalog_errors() {
|
||||
assert_eq!(wearable.item_id, UUID::zero());
|
||||
assert!(wearable.asset.is_none());
|
||||
|
||||
assert_eq!(
|
||||
member_id(InventoryException::new_with_constructor()),
|
||||
"M:LibreMetaverse.InventoryException.#ctor"
|
||||
);
|
||||
let inventory_error =
|
||||
InventoryException::new_with_constructor().expect("InventoryException constructor");
|
||||
assert_eq!(inventory_error.to_string(), "inventory operation failed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -6,14 +6,6 @@ use libremetaverse_utilities::ConnectionManager;
|
||||
use libremetaverse_voice_vivox::{TCPPipe, VoiceManager as VivoxVoiceManager};
|
||||
use libremetaverse_voice_webrtc::{LibreMetaverseVoiceLogger, VoiceManager as WebRtcVoiceManager};
|
||||
|
||||
fn member_id<T>(result: Result<T, libremetaverse_types::Error>) -> &'static str {
|
||||
result
|
||||
.err()
|
||||
.expect("failure-only shim unexpectedly returned a value")
|
||||
.csharp_member()
|
||||
.expect("failure-only shim error")
|
||||
}
|
||||
|
||||
async fn compile_rlv_calls(
|
||||
service: &RlvService,
|
||||
restrictions: &RlvRestrictionManager,
|
||||
@@ -65,15 +57,11 @@ fn extension_flows_have_typed_callable_signatures() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extension_constructors_have_expected_native_or_failure_behavior() {
|
||||
fn extension_constructors_have_expected_native_behavior() {
|
||||
assert!(YyParser::new().is_ok());
|
||||
assert!(RlvActionCallbacksDefault::new().is_ok());
|
||||
assert_eq!(
|
||||
member_id(TCPPipe::new()),
|
||||
"M:LibreMetaverse.Voice.Vivox.TCPPipe.#ctor"
|
||||
);
|
||||
assert_eq!(
|
||||
member_id(LibreMetaverseVoiceLogger::new()),
|
||||
"M:LibreMetaverse.Voice.WebRTC.LibreMetaverseVoiceLogger.#ctor"
|
||||
);
|
||||
let pipe = TCPPipe::new().expect("TCPPipe constructor");
|
||||
assert!(!pipe.connected());
|
||||
let logger = LibreMetaverseVoiceLogger::new().expect("voice logger constructor");
|
||||
assert!(logger.records().is_empty());
|
||||
}
|
||||
|
||||
@@ -4,62 +4,122 @@
|
||||
// Source SHA-256: 1d65ebbaf8fd22427371e2a7f1ef76a4f9a70df0bea7fa53f8f5d3fd3044fa53
|
||||
|
||||
use libremetaverse::{
|
||||
GridClient, InventoryFolder, InventoryItem, InventoryObjectClass, InventorySortOrder,
|
||||
NetworkManager,
|
||||
Error, GridClient, InventoryFolder, InventoryItem, InventoryObjectClass, InventorySortOrder,
|
||||
PermissionMask,
|
||||
};
|
||||
use libremetaverse_compat_tests::{block_on, live_grid_credentials};
|
||||
use libremetaverse_types::UUID;
|
||||
use libremetaverse_compat_tests::{LiveTestRuntime, login_live_grid, logout_live_grid};
|
||||
use libremetaverse_types::compat::{CancellationToken, CancellationTokenSource};
|
||||
use libremetaverse_types::{AssetType, FolderType, InventoryType, UUID};
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
struct LiveInventory {
|
||||
client: GridClient,
|
||||
runtime: LiveTestRuntime,
|
||||
disposable_items: Vec<UUID>,
|
||||
}
|
||||
|
||||
impl LiveInventory {
|
||||
fn login() -> Self {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.settings().timing().login_timeout = 30_000;
|
||||
let network = client.network();
|
||||
let (first, last, password, login_url) = live_grid_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"admin@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let logged_in = block_on(network.login_with_login_params_cancellation_token(login, None))
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to login: {}",
|
||||
network.login_message()
|
||||
login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"admin@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
assert!(
|
||||
network.current_sim().is_some(),
|
||||
"CurrentSim is null after successful login"
|
||||
);
|
||||
Self { client }
|
||||
Self {
|
||||
client,
|
||||
runtime,
|
||||
disposable_items: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
fn agent_id(&mut self) -> UUID {
|
||||
self.client.self_().agent_id()
|
||||
}
|
||||
|
||||
fn create_disposable_texture(&mut self) -> (UUID, InventoryItem) {
|
||||
let manager = self.client.inventory();
|
||||
let folder = manager
|
||||
.find_folder_for_type_with_asset_type(AssetType::Texture)
|
||||
.expect("find OpenSim texture folder");
|
||||
assert_ne!(folder, UUID::zero(), "OpenSim has no texture folder");
|
||||
let marker = UUID::random().expect("inventory fixture UUID");
|
||||
let name = format!("MetaCrate Live Test {marker}");
|
||||
let agent_id = self.agent_id();
|
||||
for attempt in 1..=3 {
|
||||
let result = self.runtime.block_on(
|
||||
manager.create_item_with_uuid_string_string_asset_type_uuid_inventory_type_permission_mask_cancellation_token(
|
||||
folder,
|
||||
name.clone(),
|
||||
"Disposable OpenSim compatibility fixture".into(),
|
||||
AssetType::Texture,
|
||||
UUID::zero(),
|
||||
InventoryType::TEXTURE,
|
||||
PermissionMask::ALL,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
),
|
||||
);
|
||||
match result {
|
||||
Ok(Some(item)) => {
|
||||
self.disposable_items.push(item.base.uuid());
|
||||
return (folder, item);
|
||||
}
|
||||
Ok(None) | Err(Error::Cancelled) => {}
|
||||
Err(error) => panic!("create disposable inventory item: {error}"),
|
||||
}
|
||||
|
||||
// A UDP callback can be lost even though OpenSim committed the
|
||||
// request. Reconcile against the server before retrying so a lost
|
||||
// callback does not create duplicate fixtures.
|
||||
if let Ok(contents) = self.runtime.block_on(manager.folder_contents(
|
||||
folder,
|
||||
agent_id,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
)) && let Some(item) = items(&contents)
|
||||
.find(|item| item.base.name() == name)
|
||||
.cloned()
|
||||
{
|
||||
self.disposable_items.push(item.base.uuid());
|
||||
return (folder, item);
|
||||
}
|
||||
assert!(
|
||||
attempt < 3,
|
||||
"OpenSim did not create or return the disposable item"
|
||||
);
|
||||
}
|
||||
unreachable!("bounded inventory fixture retry loop")
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for LiveInventory {
|
||||
fn drop(&mut self) {
|
||||
let _ = self.client.network().logout_with_method();
|
||||
let _ = self.client.dispose_with_method();
|
||||
if let Ok(trash) = self
|
||||
.client
|
||||
.inventory()
|
||||
.find_folder_for_type_with_folder_type(FolderType::Trash)
|
||||
{
|
||||
for item in self.disposable_items.drain(..) {
|
||||
self.runtime
|
||||
.block_on(
|
||||
self.client
|
||||
.inventory()
|
||||
.move_item_with_uuid_uuid_cancellation_token_1cf693fd(
|
||||
item,
|
||||
trash,
|
||||
Some(CancellationToken::default()),
|
||||
),
|
||||
)
|
||||
.expect("move disposable inventory item to trash");
|
||||
}
|
||||
}
|
||||
logout_live_grid(&self.runtime, &mut self.client);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,9 +140,7 @@ fn folders(entries: &[Box<dyn InventoryObjectClass>]) -> impl Iterator<Item = &I
|
||||
}
|
||||
|
||||
fn items(entries: &[Box<dyn InventoryObjectClass>]) -> impl Iterator<Item = &InventoryItem> {
|
||||
entries
|
||||
.iter()
|
||||
.filter_map(|entry| entry.as_any().downcast_ref::<InventoryItem>())
|
||||
entries.iter().filter_map(|entry| entry.inventory_item())
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventorySkeletonIsPopulatedAfterLogin::test ea1508e3c676639f00bb8a4c4c72d2ee668603bfbff40ee0b93d7f4beb607f75 ignored-live
|
||||
@@ -123,20 +181,22 @@ fn inventory_root_contains_folders() {
|
||||
.root_folder()
|
||||
.expect("inventory root folder");
|
||||
assert_ne!(root.base.uuid(), UUID::zero());
|
||||
let contents = block_on(live.client.inventory().folder_contents(
|
||||
root.base.uuid(),
|
||||
agent_id,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
))
|
||||
.expect("FolderContentsAsync");
|
||||
if contents.is_empty() {
|
||||
eprintln!("inventory root fetch returned no results; transient server issue");
|
||||
return;
|
||||
}
|
||||
let contents = live
|
||||
.runtime
|
||||
.block_on(live.client.inventory().folder_contents(
|
||||
root.base.uuid(),
|
||||
agent_id,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
))
|
||||
.expect("FolderContentsAsync");
|
||||
assert!(
|
||||
!contents.is_empty(),
|
||||
"inventory root fetch returned no results"
|
||||
);
|
||||
assert!(folders(&contents).next().is_some());
|
||||
}
|
||||
|
||||
@@ -148,49 +208,37 @@ fn inventory_root_contains_folders() {
|
||||
)]
|
||||
fn inventory_folder_contains_items() {
|
||||
let mut live = LiveInventory::login();
|
||||
let (_folder, created) = live.create_disposable_texture();
|
||||
let created_id = created.base.uuid();
|
||||
let agent_id = live.agent_id();
|
||||
let store = live.client.inventory().store().expect("inventory store");
|
||||
let root = store.root_folder().expect("inventory root folder");
|
||||
assert_ne!(root.base.uuid(), UUID::zero());
|
||||
let skeleton = store
|
||||
.get_contents_with_inventory_folder(&root)
|
||||
.expect("inventory skeleton");
|
||||
let subfolders: Vec<_> = folders(&skeleton).collect();
|
||||
assert!(!subfolders.is_empty(), "no inventory sub-folders");
|
||||
let token = cancellation_after(Duration::from_secs(30));
|
||||
let mut found = None;
|
||||
for folder in subfolders {
|
||||
if token.is_cancellation_requested() {
|
||||
break;
|
||||
}
|
||||
let Ok(contents) = block_on(live.client.inventory().folder_contents(
|
||||
folder.base.uuid(),
|
||||
// OpenSim's CreateInventoryItem reply does not necessarily populate the
|
||||
// viewer-side store. Fetch the server-selected parent explicitly so this
|
||||
// case validates the grid's folder-contents service rather than cache
|
||||
// timing inherited from the Second Life test account.
|
||||
let actual_parent = created.base.parent_uuid();
|
||||
assert_ne!(
|
||||
actual_parent,
|
||||
UUID::zero(),
|
||||
"created item has no parent folder"
|
||||
);
|
||||
let contents = live
|
||||
.runtime
|
||||
.block_on(live.client.inventory().folder_contents(
|
||||
actual_parent,
|
||||
agent_id,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(token.clone()),
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
)) else {
|
||||
continue;
|
||||
};
|
||||
let found_items: Vec<_> = items(&contents).collect();
|
||||
if let Some(first) = found_items.first() {
|
||||
found = Some((
|
||||
folder.base.name(),
|
||||
found_items.len(),
|
||||
first.base.name(),
|
||||
first.asset_type(),
|
||||
));
|
||||
break;
|
||||
}
|
||||
}
|
||||
let Some((folder_name, count, first_name, first_type)) = found else {
|
||||
eprintln!("no items found in any inventory sub-folder");
|
||||
return;
|
||||
};
|
||||
assert!(count > 0, "folder {folder_name} has no items");
|
||||
eprintln!("found {count} items in {folder_name}; first: {first_name} ({first_type:?})");
|
||||
))
|
||||
.expect("fetch server-selected inventory folder contents");
|
||||
let fetched = items(&contents)
|
||||
.find(|item| item.base.uuid() == created_id)
|
||||
.expect("server-created item was not cached in its parent folder");
|
||||
assert_eq!(fetched.base.parent_uuid(), actual_parent);
|
||||
assert_eq!(fetched.asset_type(), AssetType::Texture);
|
||||
assert_eq!(fetched.inventory_type(), InventoryType::TEXTURE);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/InventoryFetchTests.cs::InventoryFetchTests.InventoryItemCanBeFetchedById::test 7fe89086754a673ab69814202b48aab9add30dd63ee98a953bdedd54d6788af2 ignored-live
|
||||
@@ -202,46 +250,19 @@ fn inventory_folder_contains_items() {
|
||||
fn inventory_item_can_be_fetched_by_id() {
|
||||
let mut live = LiveInventory::login();
|
||||
let agent_id = live.agent_id();
|
||||
let store = live.client.inventory().store().expect("inventory store");
|
||||
let root = store.root_folder().expect("inventory root folder");
|
||||
let skeleton = store
|
||||
.get_contents_with_inventory_folder(&root)
|
||||
.expect("inventory skeleton");
|
||||
let subfolders: Vec<_> = folders(&skeleton).collect();
|
||||
assert!(!subfolders.is_empty(), "no inventory sub-folders");
|
||||
let token = cancellation_after(Duration::from_secs(30));
|
||||
let mut target = None;
|
||||
for folder in subfolders {
|
||||
if token.is_cancellation_requested() {
|
||||
break;
|
||||
}
|
||||
let Ok(contents) = block_on(live.client.inventory().folder_contents(
|
||||
folder.base.uuid(),
|
||||
agent_id,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(token.clone()),
|
||||
None,
|
||||
)) else {
|
||||
continue;
|
||||
};
|
||||
if let Some(item) = items(&contents).next() {
|
||||
target = Some((item.base.uuid(), item.base.name()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
let Some((target_id, target_name)) = target else {
|
||||
eprintln!("no inventory item found to fetch by UUID");
|
||||
return;
|
||||
};
|
||||
let fetched = block_on(live.client.inventory().fetch_item_http(
|
||||
target_id,
|
||||
agent_id,
|
||||
Some(token),
|
||||
))
|
||||
.expect("FetchItemHttpAsync")
|
||||
.expect("fetched inventory item");
|
||||
let (_, created) = live.create_disposable_texture();
|
||||
let target_id = created.base.uuid();
|
||||
let target_name = created.base.name();
|
||||
let fetched = live
|
||||
.runtime
|
||||
.block_on(
|
||||
live.client
|
||||
.inventory()
|
||||
.fetch_item_http(target_id, agent_id, Some(token)),
|
||||
)
|
||||
.expect("FetchItemHttpAsync")
|
||||
.expect("fetched inventory item");
|
||||
assert_eq!(fetched.base.uuid(), target_id);
|
||||
assert_eq!(fetched.base.name(), target_name);
|
||||
}
|
||||
@@ -289,20 +310,22 @@ fn library_folder_items_can_be_fetched() {
|
||||
.map(|folder| folder.base.owner_id())
|
||||
.find(|owner| *owner != UUID::zero())
|
||||
.expect("library owner UUID");
|
||||
let contents = block_on(live.client.inventory().folder_contents(
|
||||
root.base.uuid(),
|
||||
owner,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
))
|
||||
.expect("FolderContentsAsync");
|
||||
if contents.is_empty() {
|
||||
eprintln!("library root fetch returned no results; transient server issue");
|
||||
return;
|
||||
}
|
||||
let contents = live
|
||||
.runtime
|
||||
.block_on(live.client.inventory().folder_contents(
|
||||
root.base.uuid(),
|
||||
owner,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(cancellation_after(Duration::from_secs(30))),
|
||||
None,
|
||||
))
|
||||
.expect("FolderContentsAsync");
|
||||
assert!(
|
||||
!contents.is_empty(),
|
||||
"library root fetch returned no results"
|
||||
);
|
||||
assert!(folders(&contents).next().is_some());
|
||||
}
|
||||
|
||||
@@ -327,31 +350,37 @@ fn library_sub_folder_contains_items() {
|
||||
.find(|owner| *owner != UUID::zero())
|
||||
.expect("library owner UUID");
|
||||
let token = cancellation_after(Duration::from_secs(30));
|
||||
let mut found = None;
|
||||
let mut fetched_folders = 0_usize;
|
||||
for folder in subfolders {
|
||||
if token.is_cancellation_requested() {
|
||||
break;
|
||||
}
|
||||
let Ok(contents) = block_on(live.client.inventory().folder_contents(
|
||||
folder.base.uuid(),
|
||||
owner,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(token.clone()),
|
||||
None,
|
||||
)) else {
|
||||
let Ok(contents) = live
|
||||
.runtime
|
||||
.block_on(live.client.inventory().folder_contents(
|
||||
folder.base.uuid(),
|
||||
owner,
|
||||
true,
|
||||
true,
|
||||
InventorySortOrder::BY_NAME,
|
||||
Some(token.clone()),
|
||||
None,
|
||||
))
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
let count = items(&contents).count();
|
||||
if count > 0 {
|
||||
found = Some((folder.base.name(), count));
|
||||
break;
|
||||
fetched_folders += 1;
|
||||
for entry in contents {
|
||||
assert_eq!(
|
||||
entry.inventory_base().parent_uuid(),
|
||||
folder.base.uuid(),
|
||||
"OpenSim returned a library child with the wrong parent"
|
||||
);
|
||||
assert_ne!(entry.inventory_base().uuid(), UUID::zero());
|
||||
}
|
||||
}
|
||||
let Some((folder_name, count)) = found else {
|
||||
eprintln!("no items found in any library sub-folder");
|
||||
return;
|
||||
};
|
||||
assert!(count > 0, "folder {folder_name} has no items");
|
||||
assert!(
|
||||
fetched_folders > 0,
|
||||
"no OpenSim library sub-folder could be fetched"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
use libremetaverse::http::DownloadManager;
|
||||
use libremetaverse::packets::PacketType;
|
||||
use libremetaverse::{GridClient, GridLayerType, HttpCapsClient, NetworkManager};
|
||||
use libremetaverse_compat_tests::{block_on, live_grid_credentials};
|
||||
use libremetaverse::{GridClient, GridLayerType, HttpCapsClient};
|
||||
use libremetaverse_compat_tests::{LiveTestRuntime, block_on, login_live_grid, logout_live_grid};
|
||||
use libremetaverse_types::compat::{
|
||||
CancellationToken, CancellationTokenSource, HttpMessageHandler, HttpRequest, HttpResponse, Uri,
|
||||
};
|
||||
@@ -158,10 +158,6 @@ where
|
||||
.await
|
||||
}
|
||||
|
||||
fn live_credentials() -> (String, String, String, String) {
|
||||
live_grid_credentials()
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/DownloadManagerTests.cs::DownloadManagerTests.QueueDownloadAsync_SingleDownload_CompletesSuccessfully::test f8feb54d38f79624ddf1d368e0599259ff9d474c08ea0249a8f244460a1f533f translated
|
||||
#[test]
|
||||
fn queue_download_single_completes_successfully() {
|
||||
@@ -349,61 +345,41 @@ fn put_response_with_non_http_location_does_not_throw() {
|
||||
ignore = "requires GRID_USER, GRID_PASSWORD, and GRID_LOGIN_URL in the environment or workspace .env"
|
||||
)]
|
||||
fn get_grid_region_live() {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.self_().movement.set_fly(true);
|
||||
let network = client.network();
|
||||
let (first, last, password, login_url) = live_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"contact@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let logged_in = block_on(network.login_with_login_params_cancellation_token(login, None))
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to log in: {}",
|
||||
network.login_message()
|
||||
let network = login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"contact@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
let simulator = network
|
||||
.current_sim()
|
||||
.expect("CurrentSim is null after successful login");
|
||||
if simulator.name.is_empty() {
|
||||
eprintln!("CurrentSim.Name is empty after login, proceeding with tests");
|
||||
} else if !simulator.name.eq_ignore_ascii_case("hooper") {
|
||||
eprintln!(
|
||||
"logged in to region '{}' instead of 'Hooper', proceeding with tests",
|
||||
simulator.name
|
||||
);
|
||||
}
|
||||
assert!(
|
||||
!simulator.name.is_empty(),
|
||||
"OpenSim region handshake returned an empty simulator name"
|
||||
);
|
||||
let current_region = simulator.name.clone();
|
||||
|
||||
let region = block_on(
|
||||
client
|
||||
.grid()
|
||||
.get_grid_region_with_string_grid_layer_type_cancellation_token(
|
||||
"Hippo Hollow".into(),
|
||||
GridLayerType::Terrain,
|
||||
None,
|
||||
),
|
||||
)
|
||||
.expect("GridManager GetGridRegionAsync");
|
||||
if let Some(Some(region)) = region {
|
||||
assert_eq!(region.name.to_lowercase(), "hippo hollow");
|
||||
} else {
|
||||
eprintln!("Grid region 'Hippo Hollow' not found; skipping assertion");
|
||||
}
|
||||
let region = runtime
|
||||
.block_on(
|
||||
client
|
||||
.grid()
|
||||
.get_grid_region_with_string_grid_layer_type_cancellation_token(
|
||||
current_region.clone(),
|
||||
GridLayerType::Terrain,
|
||||
None,
|
||||
),
|
||||
)
|
||||
.expect("GridManager GetGridRegionAsync");
|
||||
let region = region
|
||||
.flatten()
|
||||
.expect("OpenSim grid search did not return the current region");
|
||||
assert!(region.name.eq_ignore_ascii_case(¤t_region));
|
||||
|
||||
network.logout_with_method().expect("NetworkManager Logout");
|
||||
let _ = client.dispose_with_method();
|
||||
logout_live_grid(&runtime, &mut client);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.DetectObjects::test 8b72f1ca30feda2fad0812faf3a2f83d691d3cca9268054b3cc3bf89ad786e87 ignored-live
|
||||
@@ -413,6 +389,7 @@ fn get_grid_region_live() {
|
||||
ignore = "requires GRID_USER, GRID_PASSWORD, and GRID_LOGIN_URL in the environment or workspace .env"
|
||||
)]
|
||||
fn detect_objects_live() {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.settings().timing().login_timeout = 30 * 1_000;
|
||||
client.self_().movement.set_fly(true);
|
||||
@@ -425,48 +402,20 @@ fn detect_objects_live() {
|
||||
Arc::new(move |_event| callback_detected.store(true, Ordering::SeqCst)),
|
||||
)
|
||||
.expect("register ObjectUpdate callback");
|
||||
let (first, last, password, login_url) = live_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"admin@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let login_network = Arc::clone(&network);
|
||||
let logged_in = block_on_timeout(
|
||||
async move {
|
||||
login_network
|
||||
.login_with_login_params_cancellation_token(login, None)
|
||||
.await
|
||||
},
|
||||
Duration::from_secs(45),
|
||||
)
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to log in: {}",
|
||||
network.login_message()
|
||||
login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"admin@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
thread::sleep(Duration::from_secs(1));
|
||||
let simulator = network
|
||||
.current_sim()
|
||||
.expect("CurrentSim is null after successful login");
|
||||
if simulator.name.is_empty() {
|
||||
eprintln!("CurrentSim.Name is empty, but proceeding with tests");
|
||||
} else if !simulator.name.eq_ignore_ascii_case("hooper") {
|
||||
eprintln!(
|
||||
"logged in to region '{}' instead of 'Hooper', but proceeding with tests",
|
||||
simulator.name
|
||||
);
|
||||
}
|
||||
assert!(
|
||||
!simulator.name.is_empty(),
|
||||
"OpenSim region handshake returned an empty simulator name"
|
||||
);
|
||||
|
||||
let started = Instant::now();
|
||||
while !detected.load(Ordering::SeqCst) {
|
||||
@@ -481,8 +430,7 @@ fn detect_objects_live() {
|
||||
"successfully detected objects"
|
||||
);
|
||||
|
||||
network.logout_with_method().expect("NetworkManager Logout");
|
||||
let _ = client.dispose_with_method();
|
||||
logout_live_grid(&runtime, &mut client);
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.CapsQueue::test cd5af4e7d69df3e938540711877d167fe28efb9af8af7518a62b8f406e46cc18 ignored-live
|
||||
@@ -492,6 +440,7 @@ fn detect_objects_live() {
|
||||
ignore = "requires GRID_USER, GRID_PASSWORD, and GRID_LOGIN_URL in the environment or workspace .env"
|
||||
)]
|
||||
fn caps_queue_live() {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.settings().timing().login_timeout = 30 * 1_000;
|
||||
client.self_().movement.set_fly(true);
|
||||
@@ -504,48 +453,20 @@ fn caps_queue_live() {
|
||||
Arc::new(move |_event| callback_detected.store(true, Ordering::SeqCst)),
|
||||
)
|
||||
.expect("register ObjectUpdate callback");
|
||||
let (first, last, password, login_url) = live_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"admin@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let login_network = Arc::clone(&network);
|
||||
let logged_in = block_on_timeout(
|
||||
async move {
|
||||
login_network
|
||||
.login_with_login_params_cancellation_token(login, None)
|
||||
.await
|
||||
},
|
||||
Duration::from_secs(45),
|
||||
)
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to log in: {}",
|
||||
network.login_message()
|
||||
login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"admin@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
thread::sleep(Duration::from_secs(1));
|
||||
let simulator = network
|
||||
.current_sim()
|
||||
.expect("CurrentSim is null after successful login");
|
||||
if simulator.name.is_empty() {
|
||||
eprintln!("CurrentSim.Name is empty, but proceeding with tests");
|
||||
} else if !simulator.name.eq_ignore_ascii_case("hooper") {
|
||||
eprintln!(
|
||||
"logged in to region '{}' instead of 'Hooper', but proceeding with tests",
|
||||
simulator.name
|
||||
);
|
||||
}
|
||||
assert!(
|
||||
!simulator.name.is_empty(),
|
||||
"OpenSim region handshake returned an empty simulator name"
|
||||
);
|
||||
|
||||
let already_running = network
|
||||
.current_sim()
|
||||
@@ -568,6 +489,5 @@ fn caps_queue_live() {
|
||||
"CAPS Event Queue is not running and failed to start"
|
||||
);
|
||||
|
||||
network.logout_with_method().expect("NetworkManager Logout");
|
||||
let _ = client.dispose_with_method();
|
||||
logout_live_grid(&runtime, &mut client);
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ fn get_region_restart_schedule_weekly_parses_days_and_time() {
|
||||
schedule.days(),
|
||||
RegionRestartDays(RegionRestartDays::TUESDAY.0 | RegionRestartDays::THURSDAY.0)
|
||||
);
|
||||
assert_eq!(schedule.time(), Duration::from_secs(2 * 60 * 60));
|
||||
assert_eq!(schedule.time(), Duration::from_hours(2));
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_DailySchedule_ReturnsAllDays::test cd966b6e3ba470c91ac958bf6c71aeb34f4dab060ad5334cb6060e1954b5c6d0 translated
|
||||
@@ -322,7 +322,7 @@ fn get_region_restart_schedule_daily_returns_all_days() {
|
||||
.expect("restart schedule");
|
||||
assert!(schedule.is_daily());
|
||||
assert_eq!(schedule.days(), RegionRestartDays::ALL);
|
||||
assert_eq!(schedule.time(), Duration::from_secs(60 * 60));
|
||||
assert_eq!(schedule.time(), Duration::from_hours(1));
|
||||
}
|
||||
|
||||
// parity-case: LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_NoRestartConfigured_ReturnsNull::test 59a4b050a79659ccaf0fff13b750d634d803ed7b9e4940cbad676c1bdc04a5fc translated
|
||||
@@ -377,10 +377,9 @@ fn set_region_restart_schedule_weekly_posts_uppercase_days_and_seconds() {
|
||||
);
|
||||
assert!(
|
||||
block_on(
|
||||
client.estate().set_region_restart_schedule(
|
||||
schedule(false, days, Duration::from_secs(5400)),
|
||||
None
|
||||
)
|
||||
client
|
||||
.estate()
|
||||
.set_region_restart_schedule(schedule(false, days, Duration::from_mins(90)), None)
|
||||
)
|
||||
.unwrap()
|
||||
);
|
||||
@@ -401,11 +400,7 @@ fn set_region_restart_schedule_daily_omits_days() {
|
||||
);
|
||||
assert!(
|
||||
block_on(client.estate().set_region_restart_schedule(
|
||||
schedule(
|
||||
true,
|
||||
RegionRestartDays::NONE,
|
||||
Duration::from_secs(3 * 60 * 60)
|
||||
),
|
||||
schedule(true, RegionRestartDays::NONE, Duration::from_hours(3)),
|
||||
None
|
||||
))
|
||||
.unwrap()
|
||||
|
||||
@@ -1,58 +1,39 @@
|
||||
// Exact Rust translation of LibreMetaverse.Tests/EstateToolsTests.cs.
|
||||
// Source SHA-256: 2f1867304e21e72d20fbeed98e7705528797947eb3115f84f80aa6adc2f3f88e
|
||||
|
||||
use libremetaverse::{GridClient, NetworkManager};
|
||||
use libremetaverse_compat_tests::{block_on, live_grid_credentials};
|
||||
use libremetaverse::GridClient;
|
||||
use libremetaverse_compat_tests::{LiveTestRuntime, login_live_grid, logout_live_grid};
|
||||
use libremetaverse_types::UUID;
|
||||
use std::sync::mpsc;
|
||||
use std::time::Duration;
|
||||
|
||||
struct LiveEstate {
|
||||
client: GridClient,
|
||||
runtime: LiveTestRuntime,
|
||||
}
|
||||
|
||||
impl LiveEstate {
|
||||
fn login() -> Self {
|
||||
let runtime = LiveTestRuntime::new();
|
||||
let mut client = GridClient::new().expect("GridClient constructor");
|
||||
client.settings().timing().login_timeout = 30_000;
|
||||
let network = client.network();
|
||||
let (first, last, password, login_url) = live_grid_credentials();
|
||||
let start = NetworkManager::start_location("Hooper".into(), 179, 18, 32)
|
||||
.expect("NetworkManager StartLocation");
|
||||
let mut login = network
|
||||
.default_login_params(
|
||||
first,
|
||||
last,
|
||||
password,
|
||||
"Unit Test Framework".into(),
|
||||
"admin@radegast.life".into(),
|
||||
)
|
||||
.expect("NetworkManager DefaultLoginParams");
|
||||
login.start = start;
|
||||
login.uri = login_url;
|
||||
let logged_in = block_on(network.login_with_login_params_cancellation_token(login, None))
|
||||
.expect("NetworkManager LoginAsync");
|
||||
assert!(
|
||||
logged_in,
|
||||
"client failed to login: {}",
|
||||
network.login_message()
|
||||
let network = login_live_grid(
|
||||
&runtime,
|
||||
&mut client,
|
||||
"Unit Test Framework",
|
||||
"admin@radegast.life",
|
||||
);
|
||||
assert!(network.connected(), "client is not connected to the grid");
|
||||
let current = network.current_sim().expect("CurrentSim after login");
|
||||
if !current.name.is_empty() && !current.name.eq_ignore_ascii_case("Hooper") {
|
||||
eprintln!(
|
||||
"logged in to {} instead of Hooper; covenant request remains read-only",
|
||||
current.name
|
||||
);
|
||||
}
|
||||
Self { client }
|
||||
assert!(
|
||||
!current.name.is_empty(),
|
||||
"OpenSim region handshake returned an empty simulator name"
|
||||
);
|
||||
Self { client, runtime }
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for LiveEstate {
|
||||
fn drop(&mut self) {
|
||||
let _ = self.client.network().logout_with_method();
|
||||
let _ = self.client.dispose_with_method();
|
||||
logout_live_grid(&self.runtime, &mut self.client);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,10 +53,9 @@ fn request_covenant() {
|
||||
estate
|
||||
.request_covenant()
|
||||
.expect("EstateTools RequestCovenant");
|
||||
let Ok((name, covenant)) = receiver.recv_timeout(Duration::from_secs(10)) else {
|
||||
eprintln!("timeout waiting for estate covenant reply after 10 seconds");
|
||||
return;
|
||||
};
|
||||
let (name, covenant) = receiver
|
||||
.recv_timeout(Duration::from_secs(10))
|
||||
.expect("timeout waiting for estate covenant reply after 10 seconds");
|
||||
assert!(!name.is_empty());
|
||||
assert_ne!(covenant, UUID::zero());
|
||||
}
|
||||
|
||||
@@ -782,10 +782,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "e74577c13d0d21b38f22e670d7500f25bc92d133ab80b7aad41042f1fe7c9053",
|
||||
"rust_body_sha256": "b18c09e01261a2c2ca80f53db09107b19e987eb142e48adebe057ad39270c33f",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 58,
|
||||
"rust_line": 47,
|
||||
"rust_test": "cof_is_initialized_after_login",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -804,10 +804,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "b8570ae2db2bf18bcd6f7c074fe3d86bedee4d58474e79ffb09dfd8cbaf72e7e",
|
||||
"rust_body_sha256": "02e453a8f65649b99ca3fff438a992878a38b2bccd4130747c7ef8ccd2e235ac",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 71,
|
||||
"rust_line": 62,
|
||||
"rust_test": "cof_has_expected_folder_name",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -826,10 +826,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "6714539b855d197ba8dd6a5f6f4ca7360a4e6e9bca6b1a4faa54fb8fa239d8af",
|
||||
"rust_body_sha256": "8d271ad98086928b215ec126fc704c34665505f73222ab97e5636c07f26bfbeb",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 84,
|
||||
"rust_line": 77,
|
||||
"rust_test": "get_current_outfit_links_returns_links",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -848,10 +848,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "e9b5c5aa53b914a9e7e2caf33e35d4a50be5fcee85c8944ffcb7490810331c8a",
|
||||
"rust_body_sha256": "f281702c6677f45817f89a40c4f934d1fec3461ab312caeb4077ca91454e2b1e",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 98,
|
||||
"rust_line": 94,
|
||||
"rust_test": "get_current_outfit_links_contains_at_least_one_link",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -870,10 +870,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "6a6340e19b3e48d001149899877a53864d3f49cc686d7a78f6d964c845861e0a",
|
||||
"rust_body_sha256": "e8fb76e018f743a0766ef93f5d7ea6a1c11807bb08c5a89e789f59c4b1bc71f1",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 114,
|
||||
"rust_line": 112,
|
||||
"rust_test": "get_worn_at_shape_returns_at_least_one",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -892,7 +892,7 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "f7b1018886e3281f4c5ee15af93e621d1a3d519fba6200bb8fd5dace26ee5533",
|
||||
"rust_body_sha256": "9065f4603fdd3455cfe945ae4d62d6a460eb16cb6f3bd7556e53adcdec1738be",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 130,
|
||||
@@ -917,7 +917,7 @@
|
||||
"rust_body_sha256": "0daa333b5468ca8b0cd15505acd6a46538509de81a40888da8292ac40844ffe1",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 154,
|
||||
"rust_line": 153,
|
||||
"rust_test": "request_own_avatar_textures_does_not_throw_and_maintains_version_guard",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -939,7 +939,7 @@
|
||||
"rust_body_sha256": "12273d9b8aca249245b68dbf00ff267639f65e2b91f37f7728a53070a1785308",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/appearance_live_semantics.rs",
|
||||
"rust_line": 179,
|
||||
"rust_line": 178,
|
||||
"rust_test": "cof_max_clothing_layers_is_60",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -958,7 +958,7 @@
|
||||
"rust_body_sha256": "1f4818d882fd041fa25424a84bd27f984c09810186bf8fd054848e884c123015",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 23,
|
||||
"rust_line": 41,
|
||||
"rust_test": "appearance_manager_wearable_type_to_asset_type_returns_expected",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -977,7 +977,7 @@
|
||||
"rust_body_sha256": "c85f494eba81d654070ad4b6bbf2de9e8c0495f37dc31f0c85302531077a45c3",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 52,
|
||||
"rust_line": 70,
|
||||
"rust_test": "appearance_manager_bake_index_matches_agent_texture_index",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -996,7 +996,7 @@
|
||||
"rust_body_sha256": "cbd5b108bce02f6b0bb1f903fc36420c54ca41374811822270bf162203071028",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 66,
|
||||
"rust_line": 84,
|
||||
"rust_test": "appearance_manager_bake_index_array_length_matches_count",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1015,7 +1015,7 @@
|
||||
"rust_body_sha256": "c9db86b04299d714a5472ef30ed0488639cac3059169043e5aa3458349faa2e4",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 75,
|
||||
"rust_line": 93,
|
||||
"rust_test": "appearance_manager_head_bake_includes_expected_slots",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1034,7 +1034,7 @@
|
||||
"rust_body_sha256": "7e4e97e525a9830d98f2bf2818d3f57615afec0c8d24a03b95eb658ce7cdc581",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 86,
|
||||
"rust_line": 104,
|
||||
"rust_test": "appearance_manager_upper_body_bake_includes_expected_slots",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1053,7 +1053,7 @@
|
||||
"rust_body_sha256": "9375110dda7bcef2c1a1c8b07c074d9b0ae4fffb3796140ac14f91fd01ba3315",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 97,
|
||||
"rust_line": 115,
|
||||
"rust_test": "appearance_manager_lower_eyes_skirt_hair_bakes_include_expected_slots",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1072,7 +1072,7 @@
|
||||
"rust_body_sha256": "689fd6fc8f333ec52129a80d00fb91aaefdce7393945d052fa785c7377e6dbf0",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 117,
|
||||
"rust_line": 135,
|
||||
"rust_test": "appearance_manager_morph_layer_returns_expected_indices",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1091,7 +1091,7 @@
|
||||
"rust_body_sha256": "68bc072bb352f895a3b070b72b9296bcc787fba686f148b1be26209e8d2d28bc",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 142,
|
||||
"rust_line": 160,
|
||||
"rust_test": "appearance_manager_wearable_bake_map_has_expected_dimensions_and_first_layer",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1110,7 +1110,7 @@
|
||||
"rust_body_sha256": "e19981b4b096b4698051b4f95a0e9669abd3506057f510a23f319961c02497a7",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 151,
|
||||
"rust_line": 169,
|
||||
"rust_test": "appearance_manager_invalid_bake_type_returns_unknown_texture_index",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1129,7 +1129,7 @@
|
||||
"rust_body_sha256": "47ca2bcbefb972381e3ac3ee6ff29158876dd28fae485d6f263b6e50f587615d",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 161,
|
||||
"rust_line": 179,
|
||||
"rust_test": "appearance_manager_baked_texture_count_is_eleven",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1148,7 +1148,7 @@
|
||||
"rust_body_sha256": "01541d296d27a45a70f481b946637119d2f7b6388c37d0c52e5a313fc90bb7c6",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 167,
|
||||
"rust_line": 185,
|
||||
"rust_test": "appearance_manager_baked_texture_hash_has_eleven_entries",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1167,7 +1167,7 @@
|
||||
"rust_body_sha256": "c421e079e4e6f5d2d5c090a2a894f02c3058d19b5bbb057b73551e65b7c91e52",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 173,
|
||||
"rust_line": 191,
|
||||
"rust_test": "appearance_manager_baked_texture_hash_entries_are_nonzero",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1186,7 +1186,7 @@
|
||||
"rust_body_sha256": "393aedd9c13c7ec1b500cc365f40c0f84bab2cc94b6ad9d4839cb22457c227b1",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 182,
|
||||
"rust_line": 200,
|
||||
"rust_test": "appearance_manager_wearable_bake_map_has_eleven_rows",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1205,7 +1205,7 @@
|
||||
"rust_body_sha256": "2942bd4792a32e014d2d09de8d952a89f482db57f32f6bd56947a190269de433",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 188,
|
||||
"rust_line": 206,
|
||||
"rust_test": "appearance_manager_extended_wearable_bake_rows_are_invalid",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1224,7 +1224,7 @@
|
||||
"rust_body_sha256": "861c95ce860bdbb908666a8111b117f793afa4630bf053852bac1e60b6c79f07",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 199,
|
||||
"rust_line": 217,
|
||||
"rust_test": "appearance_manager_extended_bake_indices_match_agent_texture_indices",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1243,7 +1243,7 @@
|
||||
"rust_body_sha256": "354d344fee19fc5633af8314d76dab08ed4800bf836e673dd92974dd2ce25d54",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 213,
|
||||
"rust_line": 231,
|
||||
"rust_test": "appearance_manager_head_bake_includes_universal_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1262,7 +1262,7 @@
|
||||
"rust_body_sha256": "77175e817d21ec8bf78c224492b7b1e15e77a7fbcef9a330f1a72f6834f830fc",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 221,
|
||||
"rust_line": 239,
|
||||
"rust_test": "appearance_manager_upper_body_bake_includes_universal_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1281,7 +1281,7 @@
|
||||
"rust_body_sha256": "153be03a536018f3222c47ab77fdc93527c8256ab84865659649a70c3cf93e1a",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 229,
|
||||
"rust_line": 247,
|
||||
"rust_test": "appearance_manager_lower_body_bake_includes_universal_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1300,7 +1300,7 @@
|
||||
"rust_body_sha256": "7acc39506c38715925438431fda3c09c3ebf127d06bc990a9bb7be191fcb24c1",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 237,
|
||||
"rust_line": 255,
|
||||
"rust_test": "appearance_manager_eyes_bake_includes_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1319,7 +1319,7 @@
|
||||
"rust_body_sha256": "00e422d37a403c4bb4b2ba8e524aefc28a72f39daeb5868ad44cb47cc45fdc85",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 245,
|
||||
"rust_line": 263,
|
||||
"rust_test": "appearance_manager_skirt_bake_includes_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1338,7 +1338,7 @@
|
||||
"rust_body_sha256": "3c81bc40c8cf4706c47441955a53e7463e39c7c9455ee430bb15752caac354ff",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 253,
|
||||
"rust_line": 271,
|
||||
"rust_test": "appearance_manager_hair_bake_includes_hair_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1357,7 +1357,7 @@
|
||||
"rust_body_sha256": "a4150377fc4039e0d189023cb75aa761a310cbdf25a4d34fca511fa3eaeaa7e2",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 261,
|
||||
"rust_line": 279,
|
||||
"rust_test": "appearance_manager_left_arm_bake_contains_only_left_arm_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1376,7 +1376,7 @@
|
||||
"rust_body_sha256": "804caf05d203ddc82be817ee30f3c48e9ac8ba881ca6fce07f414b0aec29b0e6",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 270,
|
||||
"rust_line": 288,
|
||||
"rust_test": "appearance_manager_left_leg_bake_contains_left_leg_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1395,7 +1395,7 @@
|
||||
"rust_body_sha256": "406c207c284c3ef120c9d6c1c38d0372b2cb435d1eb73a5ff643c99e253d00e5",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 278,
|
||||
"rust_line": 296,
|
||||
"rust_test": "appearance_manager_aux1_bake_contains_aux1_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1414,7 +1414,7 @@
|
||||
"rust_body_sha256": "73d7d00cfe7635dec196b3cf6f7af57d53266d25fb9e41135cfb08e2f14c38d6",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 286,
|
||||
"rust_line": 304,
|
||||
"rust_test": "appearance_manager_aux2_bake_contains_aux2_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1433,7 +1433,7 @@
|
||||
"rust_body_sha256": "445fe1065c5fd8273cc3832d6851a91cc344f1a07d93889b75b564b9ed5ca390",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 294,
|
||||
"rust_line": 312,
|
||||
"rust_test": "appearance_manager_aux3_bake_contains_aux3_tattoo",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1452,7 +1452,7 @@
|
||||
"rust_body_sha256": "26f0d5ffff3f07e3570bc06a1824ee76d54abf75aa993ff08f27ca22af157e48",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 302,
|
||||
"rust_line": 320,
|
||||
"rust_test": "appearance_manager_extended_morph_layers_return_tattoo_slots",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1471,7 +1471,7 @@
|
||||
"rust_body_sha256": "5728bc791c046bef864ef42dac3f7ea83a65b6009238a3010f8906b6b8ea1abf",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 319,
|
||||
"rust_line": 337,
|
||||
"rust_test": "appearance_manager_default_texture_provider_is_grid_client_provider",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1490,7 +1490,7 @@
|
||||
"rust_body_sha256": "a0c8596f6cd67759835610e38723cc72665b307393177552cbb9c63424e24b37",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 330,
|
||||
"rust_line": 348,
|
||||
"rust_test": "appearance_manager_texture_provider_can_be_replaced",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1509,7 +1509,7 @@
|
||||
"rust_body_sha256": "ec711614215b24d5221ee328b99149ab31a76e2dd4a36199d682179547434e03",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 342,
|
||||
"rust_line": 360,
|
||||
"rust_test": "appearance_manager_initial_cof_version_is_minus_one",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1528,7 +1528,7 @@
|
||||
"rust_body_sha256": "241ddbf5d7c11469608d89dd444bf578c4062b35a5ac45f1c01ba23e3785de0d",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 349,
|
||||
"rust_line": 367,
|
||||
"rust_test": "appearance_manager_higher_cof_version_updates",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1547,7 +1547,7 @@
|
||||
"rust_body_sha256": "38746f20a3f2ac1de28d194c7845a8e91a516f28d40ff2ec7bf7f971352bebbc",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 360,
|
||||
"rust_line": 378,
|
||||
"rust_test": "appearance_manager_lower_cof_version_does_not_update",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1566,7 +1566,7 @@
|
||||
"rust_body_sha256": "ef4b5e6fd6689322fd1a59a6bd63a9a7abc1cbc7d54f14f9a3ce074ec4c4dc18",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 375,
|
||||
"rust_line": 393,
|
||||
"rust_test": "appearance_manager_same_cof_version_does_not_change",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -1585,7 +1585,7 @@
|
||||
"rust_body_sha256": "a363217556f1d89cd28c24edc464925c4eeed239c72bf45a40481d8e15c951b8",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/appearance_semantics.rs",
|
||||
"rust_line": 390,
|
||||
"rust_line": 408,
|
||||
"rust_test": "appearance_manager_cof_version_tracks_peak",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -2147,7 +2147,7 @@
|
||||
"rust_body_sha256": "5c686ee0bd308a54e16a0ea8b50e1e75f9b085dc0cb9bb45317bde0c5cac674a",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/appearance_baker_semantics.rs",
|
||||
"rust_line": 30,
|
||||
"rust_line": 32,
|
||||
"rust_test": "bake_grayscale_layer_texture_does_not_throw",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -2168,7 +2168,7 @@
|
||||
"rust_body_sha256": "e490a240143cf358cedc6562baa63dd9ee2274958744e7df00d13d9981f7597f",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/appearance_baker_semantics.rs",
|
||||
"rust_line": 46,
|
||||
"rust_line": 48,
|
||||
"rust_test": "bake_grayscale_hair_texture_no_skin_does_not_throw",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -2189,7 +2189,7 @@
|
||||
"rust_body_sha256": "8c7043c839d0a52cc72050120aaf3f726b962ee674e9169c33d8b1137b23d919",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/appearance_baker_semantics.rs",
|
||||
"rust_line": 60,
|
||||
"rust_line": 62,
|
||||
"rust_test": "load_resource_layer_head_color_tga_loads_from_character_directory",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -2210,7 +2210,7 @@
|
||||
"rust_body_sha256": "54a79b572fdf3e22a3a00380cb98f180a2eda94f71ed035db312310b8f15a9bb",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/appearance_baker_semantics.rs",
|
||||
"rust_line": 70,
|
||||
"rust_line": 72,
|
||||
"rust_test": "load_resource_layer_cached_resource_not_corrupted_by_caller_mutation",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -2231,7 +2231,7 @@
|
||||
"rust_body_sha256": "16a16384fe8cfa5c8a8a4b8de9bf9428de61756882d83883a7215ef708fa202d",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/appearance_baker_semantics.rs",
|
||||
"rust_line": 89,
|
||||
"rust_line": 91,
|
||||
"rust_test": "resize_to_bake_dimensions_source_smaller_in_one_axis_only_scales_rather_than_tiles",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -3969,7 +3969,7 @@
|
||||
"rust_body_sha256": "d9d2c4c3687e603f33d254f866ed5ef631d6f615ddc784cb6b634a8019f16806",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 165,
|
||||
"rust_line": 161,
|
||||
"rust_test": "queue_download_single_completes_successfully",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -3988,7 +3988,7 @@
|
||||
"rust_body_sha256": "b5fa7f1b968fb50c89e87b4bc7b985006e80791a13333848eba04474f527a7f8",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 202,
|
||||
"rust_line": 198,
|
||||
"rust_test": "queue_download_deduplicates_same_uri",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4007,7 +4007,7 @@
|
||||
"rust_body_sha256": "aa16329057cf59d3228e4a0fb0f2e3c613dc8bab46b9cf25aeeb5d5a2c6f3486",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 248,
|
||||
"rust_line": 244,
|
||||
"rust_test": "queue_download_cancellation_propagates",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4112,7 +4112,7 @@
|
||||
"rust_body_sha256": "53fbe59b426b557fc6b15fa94e47bdc0611b0472d042750d8bae9320313f2742",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 103,
|
||||
"rust_line": 105,
|
||||
"rust_test": "set_experience_parses_blocked_trusted_and_allowed_lists",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4133,7 +4133,7 @@
|
||||
"rust_body_sha256": "cf7929734d56ef69ade8eb9f27517973022994dd17f9cb3e91ce599cbae9d93f",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 127,
|
||||
"rust_line": 129,
|
||||
"rust_test": "set_experience_all_empty_lists_produces_empty_result",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4152,10 +4152,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "039f9b91d5dd7dabecf875274614d573adf9c2a6c36080e68d97f17f018c0855",
|
||||
"rust_body_sha256": "db761d2acdb54f11d035bc657368ae72b9c96d0783ad29422455f882abc6001c",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/world_live_semantics.rs",
|
||||
"rust_line": 59,
|
||||
"rust_line": 40,
|
||||
"rust_test": "request_covenant",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4365,7 +4365,7 @@
|
||||
"rust_body_sha256": "087a1cc81387f983606ead95cc1404569a4485913300b78ff1516c8354dcfeba",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 197,
|
||||
"rust_line": 199,
|
||||
"rust_test": "extract_experience_permission_allowed_returns_allow",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4386,7 +4386,7 @@
|
||||
"rust_body_sha256": "ec5bd9d05cace272e4781676c19f9d15bd380e26d735c5dc5dd2b9b9c003c909",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 207,
|
||||
"rust_line": 209,
|
||||
"rust_test": "extract_experience_permission_blocked_returns_block",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4407,7 +4407,7 @@
|
||||
"rust_body_sha256": "0d36077de4963d763d3b9fc93bbf18b627489a8ee6090e45a5d9ebfe8b5922f7",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 217,
|
||||
"rust_line": 219,
|
||||
"rust_test": "extract_experience_permission_neither_list_returns_forget",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -4864,10 +4864,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "51896e9c47fe786cb29653b21e5dc50de30bccaa2f3548feb20646d6baee19f7",
|
||||
"rust_body_sha256": "fa6a459c593364255ab9441ae667186fac9deb42fcb6f3566496f79a50a4ee99",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 345,
|
||||
"rust_line": 341,
|
||||
"rust_test": "get_grid_region_live",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5182,7 +5182,7 @@
|
||||
"rust_body_sha256": "91bf2dbf02e6c00479de02593db5ea7076b65f1bcf1265d4cf67c811f85d666d",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 279,
|
||||
"rust_line": 275,
|
||||
"rust_test": "put_response_with_non_http_location_does_not_throw",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5375,7 +5375,7 @@
|
||||
"rust_body_sha256": "0d172b916b50d6b4806461a0207a52e19008ad9841f6948946e37fe165bd0ccb",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 88,
|
||||
"rust_line": 146,
|
||||
"rust_test": "inventory_skeleton_is_populated_after_login",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5394,10 +5394,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "c5e92e4569b2a8def32a7408ca55594396f97081d465daa05e0d2dd871e4e28f",
|
||||
"rust_body_sha256": "fbe6e1a8e6bb0e8b1fba134556d540035cae2eefcfa6ea10b4a43bd336b131c7",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 109,
|
||||
"rust_line": 167,
|
||||
"rust_test": "inventory_root_contains_folders",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5416,10 +5416,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "abbf0256a2aec499b6d904d546c64688f86deceb5e757710dc77d70e277bfe45",
|
||||
"rust_body_sha256": "62ee4139af3928f48bec45c8d49b9f4c9530a7da1a37b3c96c1ad77f07e5a696",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 143,
|
||||
"rust_line": 203,
|
||||
"rust_test": "inventory_folder_contains_items",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5438,10 +5438,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "4ca447223c5fb65d76170a38f85eaad35d70fbcc7505614161444ff5eee33e03",
|
||||
"rust_body_sha256": "3486e9fc62db63d0fb838598575e67bf7d079a249f91e11d90865ac4f7fece80",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 196,
|
||||
"rust_line": 244,
|
||||
"rust_test": "inventory_item_can_be_fetched_by_id",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5805,7 +5805,7 @@
|
||||
"rust_body_sha256": "41b60f140e94ef37cdace570f93a4705e8716774052337c9eb9e83c14ab7587b",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 249,
|
||||
"rust_line": 270,
|
||||
"rust_test": "library_folders_are_populated_after_login",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5824,10 +5824,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "4d00e436da3b962d850c0f61f38ec6fa29c2be38356069609ded46bd4bea396e",
|
||||
"rust_body_sha256": "62e98f7fda826658a6dd01a7e8496d279d66c4ed092cb49c93a7ae5364bdd784",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 275,
|
||||
"rust_line": 296,
|
||||
"rust_test": "library_folder_items_can_be_fetched",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -5846,10 +5846,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "2b561419d5c5a33c396cda384ff9643fcf93b9afadb345d78c3dc38b194ac757",
|
||||
"rust_body_sha256": "168a30616594fd037738414f8f18875fb5246d99a03299a87edc09d48539766d",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/inventory_live_semantics.rs",
|
||||
"rust_line": 309,
|
||||
"rust_line": 332,
|
||||
"rust_test": "library_sub_folder_contains_items",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -8361,10 +8361,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "72cafa964ad0b0e86100a0de71fb36fb17014604bce55b865c15a3a4626976c2",
|
||||
"rust_body_sha256": "d0648563f850271f45c699f4086c219ac364ffd8ddaf76d7d6ad01ba9f006686",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 409,
|
||||
"rust_line": 385,
|
||||
"rust_test": "detect_objects_live",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -8383,10 +8383,10 @@
|
||||
"RequiresLiveServer"
|
||||
],
|
||||
"fixture_dependencies": [],
|
||||
"rust_body_sha256": "c72bf13086fc38d8d8dfadfc2e525f971943847aa89e6e097937c1637df4212b",
|
||||
"rust_body_sha256": "32769737cf9c627fe6f8a4cffbc1e71eb6ec892dfda4ad9c17f1356b2cbf35c1",
|
||||
"status": "ignored-live",
|
||||
"rust_file": "tests/compat/tests/network_semantics.rs",
|
||||
"rust_line": 488,
|
||||
"rust_line": 436,
|
||||
"rust_test": "caps_queue_live",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -22892,7 +22892,7 @@
|
||||
"fixture_dependencies": [
|
||||
"LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs"
|
||||
],
|
||||
"rust_body_sha256": "6939966df91e592e4d95662fddf195f233abc1cf851509749c9b0588234926dc",
|
||||
"rust_body_sha256": "b291368271db62df2cd39f8febfdf5f69de33328c381c31858d32e9705ab1a1a",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 285,
|
||||
@@ -22915,7 +22915,7 @@
|
||||
"fixture_dependencies": [
|
||||
"LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs"
|
||||
],
|
||||
"rust_body_sha256": "910515f8942a4296e0266fdd81583d1e41bb9bcd549509bb3272ac75f0b180d0",
|
||||
"rust_body_sha256": "2596e4efd96ab562bcef06ff6493319479eb3f564f1292d2e59d54279ef6c23e",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 308,
|
||||
@@ -22984,7 +22984,7 @@
|
||||
"fixture_dependencies": [
|
||||
"LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs"
|
||||
],
|
||||
"rust_body_sha256": "d3c5d6b2477b947b9f3c049afc4f16c407abfc627a67eb6a38a0b137aef9f2e3",
|
||||
"rust_body_sha256": "006e27511a7aea9f2971b26373c4d15304167e3cb3eda28ccb4e514bc7f341d3",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 367,
|
||||
@@ -23007,10 +23007,10 @@
|
||||
"fixture_dependencies": [
|
||||
"LibreMetaverse.Tests/TestHelpers/FakeGridClient.cs"
|
||||
],
|
||||
"rust_body_sha256": "da8c68ca95fbe6137c18d8edc1af6a9f0f6ad6cfebc5617e107763cadd189159",
|
||||
"rust_body_sha256": "33c8d0efefee144616e650585b4b4393b6482657afd380f24b3cdf3fe57f155d",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 394,
|
||||
"rust_line": 393,
|
||||
"rust_test": "set_region_restart_schedule_daily_omits_days",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23033,7 +23033,7 @@
|
||||
"rust_body_sha256": "f9670820eafdc696eab69320ada6c05d544cde483171c13d570c69a2571df387",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 420,
|
||||
"rust_line": 415,
|
||||
"rust_test": "set_region_restart_schedule_empty_days_clears_schedule",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23056,7 +23056,7 @@
|
||||
"rust_body_sha256": "0dc6b030e7437ee5f86ebcb04bab5bc785c0010b16ca8723f2884379b617efee",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 440,
|
||||
"rust_line": 435,
|
||||
"rust_test": "set_region_restart_schedule_no_capability_returns_false_without_request",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23079,7 +23079,7 @@
|
||||
"rust_body_sha256": "f8e4f900c12e6557ec7e4c7d9a73ff3ef8becf5d37dfc7fdff02cc8309cb716d",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 458,
|
||||
"rust_line": 453,
|
||||
"rust_test": "set_region_restart_schedule_non_success_returns_false",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23268,7 +23268,7 @@
|
||||
"rust_body_sha256": "1c71caac9cf1a0b73e09633c9797de3ede96999436bf9d5850956f3269cd6d7b",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 232,
|
||||
"rust_line": 234,
|
||||
"rust_test": "send_sim_console_command_ignores_post_body_and_uses_response_event",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23289,7 +23289,7 @@
|
||||
"rust_body_sha256": "b7a6f5619d95eae3a180c004b740c70e9c7a40688c54e1dc859fc6fa52f6562b",
|
||||
"status": "translated",
|
||||
"rust_file": "crates/libremetaverse/src/world_internal_semantics.rs",
|
||||
"rust_line": 253,
|
||||
"rust_line": 255,
|
||||
"rust_test": "send_sim_console_command_no_response_event_returns_none_after_timeout",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
@@ -23310,7 +23310,7 @@
|
||||
"rust_body_sha256": "07491df917264de554afe7db1caa406453007796585b6a924e56efc2ad862da3",
|
||||
"status": "translated",
|
||||
"rust_file": "tests/compat/tests/world_capability_semantics.rs",
|
||||
"rust_line": 475,
|
||||
"rust_line": 470,
|
||||
"rust_test": "sim_console_response_message_deserialize_reads_body_field",
|
||||
"semantic_review": "reviewed"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user