< Summary

Class:DCL.DebugBridge
Assembly:MainScripts
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Bridges/DebugBridge/DebugBridge.cs
Covered lines:1
Uncovered lines:44
Coverable lines:45
Total lines:126
Line coverage:2.2% (1 of 45)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
DebugBridge()0%110100%
SetDebug()0%2100%
HideFPSPanel()0%2100%
ShowFPSPanel()0%2100%
SetSceneDebugPanel()0%2100%
SetEngineDebugPanel()0%2100%
DumpScenesLoadInfo()0%6200%
SetDisableAssetBundles()0%2100%
DumpRendererLockersInfo()0%12300%
CrashPayloadRequest()0%2100%
CrashPayloadResponse(...)0%2100%
DumpCrashPayload()0%6200%
RunPerformanceMeterTool(...)0%2100%
InstantiateBotsAtWorldPos(...)0%2100%
InstantiateBotsAtCoords(...)0%2100%
StartBotsRandomizedMovement(...)0%2100%
StopBotsMovement()0%2100%
RemoveBot(...)0%2100%
ClearBots()0%2100%
DebugPerformanceMeter()0%2100%
DebugBotsInstantiation()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Bridges/DebugBridge/DebugBridge.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using DCL.Components;
 4using DCL.Controllers;
 5using DCL.Helpers;
 6using DCL.Interface;
 7using Newtonsoft.Json;
 8using UnityEngine;
 9
 10namespace DCL
 11{
 12    public class DebugBridge : MonoBehaviour
 13    {
 24614        private ILogger debugLogger = new Logger(Debug.unityLogger.logHandler);
 15
 16        // Beware this SetDebug() may be called before Awake() somehow...
 17        [ContextMenu("Set Debug mode")]
 018        public void SetDebug() { Environment.i.platform.debugController.SetDebug(); }
 19
 020        public void HideFPSPanel() { Environment.i.platform.debugController.HideFPSPanel(); }
 21
 022        public void ShowFPSPanel() { Environment.i.platform.debugController.ShowFPSPanel(); }
 23
 024        public void SetSceneDebugPanel() { Environment.i.platform.debugController.SetSceneDebugPanel(); }
 25
 026        public void SetEngineDebugPanel() { Environment.i.platform.debugController.SetEngineDebugPanel(); }
 27
 28        [ContextMenu("Dump Scenes Load Info")]
 29        public void DumpScenesLoadInfo()
 30        {
 031            foreach (var kvp in DCL.Environment.i.world.state.loadedScenes)
 32            {
 033                ParcelScene scene = kvp.Value as ParcelScene;
 034                debugLogger.Log("Dumping state for scene: " + kvp.Value.sceneData.id);
 035                scene.GetWaitingComponentsDebugInfo();
 36            }
 037        }
 38
 039        public void SetDisableAssetBundles() { RendereableAssetLoadHelper.loadingType = RendereableAssetLoadHelper.Loadi
 40
 41        [ContextMenu("Dump Renderers Lockers Info")]
 42        public void DumpRendererLockersInfo()
 43        {
 044            RenderingController renderingController = FindObjectOfType<RenderingController>();
 045            if (renderingController == null)
 46            {
 047                debugLogger.Log("RenderingController not found. Aborting.");
 048                return;
 49            }
 50
 051            debugLogger.Log($"Renderer is locked? {!renderingController.renderingActivatedAckLock.isUnlocked}");
 052            debugLogger.Log($"Renderer is active? {CommonScriptableObjects.rendererState.Get()}");
 53
 054            System.Collections.Generic.HashSet<object> lockIds =
 55                renderingController.renderingActivatedAckLock.GetLockIdsCopy();
 56
 057            foreach (var lockId in lockIds)
 58            {
 059                debugLogger.Log($"Renderer is locked by id: {lockId} of type {lockId.GetType()}");
 60            }
 061        }
 62
 63        public void CrashPayloadRequest()
 64        {
 065            var crashPayload = CrashPayloadUtils.ComputePayload
 66            (
 67                DCL.Environment.i.world.state.loadedScenes,
 68                Environment.i.platform.debugController.GetTrackedMovements(),
 69                Environment.i.platform.debugController.GetTrackedTeleportPositions()
 70            );
 71
 072            CrashPayloadResponse(crashPayload);
 073        }
 74
 75        public void CrashPayloadResponse(CrashPayload payload)
 76        {
 077            string json = JsonConvert.SerializeObject(payload);
 078            WebInterface.MessageFromEngine("CrashPayloadResponse", json);
 079        }
 80
 81        [ContextMenu("Dump Crash Payload")]
 82        public void DumpCrashPayload()
 83        {
 084            var payload = CrashPayloadUtils.ComputePayload
 85            (
 86                DCL.Environment.i.world.state.loadedScenes,
 87                Environment.i.platform.debugController.GetTrackedMovements(),
 88                Environment.i.platform.debugController.GetTrackedTeleportPositions()
 89            );
 90
 091            foreach ( var field in payload.fields)
 92            {
 093                string dump = JsonConvert.SerializeObject(field.Value);
 094                debugLogger.Log($"Crash payload ({field.Key}): {dump}");
 95            }
 96
 097            string fullDump = JsonConvert.SerializeObject(payload);
 098            debugLogger.Log($"Full crash payload size: {fullDump.Length}");
 099        }
 100
 0101        public void RunPerformanceMeterTool(float durationInSeconds) { Environment.i.platform.debugController.RunPerform
 102
 0103        public void InstantiateBotsAtWorldPos(string configJson) { Environment.i.platform.debugController.InstantiateBot
 104
 0105        public void InstantiateBotsAtCoords(string configJson) { Environment.i.platform.debugController.InstantiateBotsA
 0106        public void StartBotsRandomizedMovement(string configJson) { Environment.i.platform.debugController.StartBotsRan
 0107        public void StopBotsMovement() { Environment.i.platform.debugController.StopBotsMovement(); }
 0108        public void RemoveBot(string targetEntityId) { Environment.i.platform.debugController.RemoveBot(targetEntityId);
 0109        public void ClearBots() { Environment.i.platform.debugController.ClearBots(); }
 110
 111#if UNITY_EDITOR
 112        [ContextMenu("Run Performance Meter Tool for 30 seconds")]
 0113        public void DebugPerformanceMeter() { RunPerformanceMeterTool(30); }
 114
 115        [ContextMenu("Instantiate 3 bots at player coordinates")]
 116        public void DebugBotsInstantiation()
 117        {
 0118            InstantiateBotsAtCoords("{ " +
 119                                    "\"amount\":3, " +
 120                                    "\"areaWidth\":15, " +
 121                                    "\"areaDepth\":15 " +
 122                                    "}");
 0123        }
 124#endif
 125    }
 126}