Exemplo n.º 1
0
        // ------------------------------------------------------------------------------------
        // Setting/Getting current baseline set

        public void SetCurrentPlatformAPI(string platform, string api)
        {
            if (_altBaselineSettings == null || platform != _altBaselineSettings.Platform || api != _altBaselineSettings.API)
            {
                _altBaselineSettings = new AltBaselineSettings(platform, api);
                if (platform != GetSystemData().Platform || api != GetSystemData().API)
                {
                    if (_sqlMode == SQLmode.Live)
                    {
                        _sqlMode = SQLmode.Disabled;
                    }
                    else if (_sqlMode == SQLmode.Staging)
                    {
                        _sqlMode = SQLmode.DisabledStaging;
                    }
                }
                else
                {
                    {
                        if (_sqlMode == SQLmode.Disabled)
                        {
                            _sqlMode = SQLmode.Live;
                        }
                        else if (_sqlMode == SQLmode.DisabledStaging)
                        {
                            _sqlMode = SQLmode.Staging;
                        }
                    }
                }
                BroadcastBaselineChange();
            }
        }
Exemplo n.º 2
0
        /// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// Initial checks
        /// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        /// <summary>
        /// Query if specific baseline exists
        /// </summary>
        /// <returns><c>true</c>, if baseline exists, <c>false</c> if not.</returns>
        /// <param name="suiteName">Suite name.</param>
        /// <param name="pipeline">Pipeline.</param>
        /// <param name="testType">Test type.</param>
        /// <param name="sceneName">Scene name.</param>
        /// <param name="testName">Test name.</param>
        public bool BaselineExists(string suiteName, string pipeline, string testType, string sceneName, string testName)
        {
            AltBaselineSettings curBaselineData = Master.Instance.GetCurrentPlatformAPI();

            //check local file for current platform/api baseline
            foreach (SuiteBaselineData SBD in _suiteBaselineData)
            {
                if (SBD.suiteName == suiteName)
                {
                    //Suite exists
                    if (SBD.platform == curBaselineData.Platform)
                    {
                        //Platform exists
                        if (SBD.api == curBaselineData.API)
                        {
                            //API matches
                            if (SBD.pipeline == pipeline)
                            {
                                //pipeline exists
                                foreach (SuiteData SD in SBD._suiteData)
                                {
                                    if (SD.testType == testType && SD.sceneName == sceneName && SD.testName == testName)
                                    {
                                        return(true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(false);
        }
Exemplo n.º 3
0
        // Update is called once per frame
        public void UpdateInformation()
        {
            sysCommonData = Common.GetCommonResultsData();
            foreach (InformationEntry ie in informationEntries)
            {
                switch (ie.source)
                {
                case InformationSource.SystemData:
                {
                    PopulateInfo(ie.text, FetchInfo(ie.fields, ie.split, ie.splitIndex));
                    break;
                }

                case InformationSource.CommonData:
                {
                    PopulateInfo(ie.text, FetchInfo(ie.fields, ie.split, ie.splitIndex));
                    break;
                }

                case InformationSource.AlternativeBaseline:
                {
                    AltBaselineSettings altSettings = Master.Instance.GetCurrentPlatformAPI();
                    if (ie.fields == CommonFields.Platform)
                    {
                        ie.text.text = altSettings.Platform;
                        if (altSettings.Platform != sysCommonData.Platform)
                        {
                            ie.text.color = Color.yellow;
                        }
                        else
                        {
                            ie.text.color = Color.white;
                        }
                    }
                    else if (ie.fields == CommonFields.API)
                    {
                        ie.text.text = altSettings.API;
                        if (altSettings.API != sysCommonData.API)
                        {
                            ie.text.color = Color.yellow;
                        }
                        else
                        {
                            ie.text.color = Color.white;
                        }
                    }
                    else
                    {
                        ie.text.text  = "N/A";
                        ie.text.color = Color.red;
                    }
                    break;
                }
                }
            }
        }
Exemplo n.º 4
0
        // Logic for creating results data (mandatory override)
        public override IEnumerator ProcessResult()
        {
            var typedSettings = (FrameComparisonSettings)model.settings; // Set settings to local type

            if (!typedSettings.useBackBuffer)
            {
                typedSettings.captureCamera.targetTexture = temporaryRt; // Set capture cameras target texture to temporary RT (logic specific)
                dummyCamera.enabled = true;
            }
            else
            {
                ProgressScreen.Instance.progressObject.SetActive(false); // Hide the UI breifly to do the capture
                menuCamera.enabled = false;
            }
            var m_TempData = (FrameComparisonResults)GetResultsStruct(); // Get a results struct (mandatory)

            yield return(WaitForTimer());                                // Wait for timer

            if (typedSettings.useBackBuffer)
            {
                if (Debug.developerConsoleVisible)
                {
                    Debug.ClearDeveloperConsole(); // Clear the dev console if it's visible before capturing the backbuffer.
                }
                BackBufferCapture();
            }
            else
            {
                doCapture = true; // Perform OnRenderImage logic (logic specific)
            }
            do
            {
                yield return(null);
            } while (resultsTexture == null);                                                                                                                                                   // Wait for OnRenderImage logic to complete (logic specific)
            m_TempData.resultFrame = Common.ConvertTextureToString(resultsTexture, typedSettings.imageQuality);                                                                                 // Convert results texture to Base64 String and save to results data
            if (baselineExists)                                                                                                                                                                 // Comparison (mandatory)
            {
                AltBaselineSettings    altBaselineSettings = Master.Instance.GetCurrentPlatformAPI();                                                                                           // current chosen API/plafrom
                ResultsDataCommon      m_BaselineData      = m_TempData.common.SwitchPlatformAPI(altBaselineSettings.Platform, altBaselineSettings.API);                                        // makes new ResultsDataCommon to grab baseline
                FrameComparisonResults referenceData       = (FrameComparisonResults)DeserializeResults(ResultsIO.Instance.RetrieveEntry(suiteName, testTypeName, m_BaselineData, true, true)); // Deserialize baseline data (mandatory)
                m_TempData.common.PassFail = GetComparisonResult(m_TempData, referenceData);                                                                                                    // Get comparison results
            }
            if (typedSettings.useBackBuffer)
            {
                ProgressScreen.Instance.progressObject.SetActive(true); // Show progress screen again
                menuCamera.enabled = true;
            }
            else
            {
                dummyCamera.enabled = false;
            }
            Cleanup();                      // Cleanup (logic specific)
            BuildResultsStruct(m_TempData); // Submit (mandatory)
        }
Exemplo n.º 5
0
        // Update is called once per frame
        void UpdateData()
        {
            _altBaseline     = Master.Instance.GetCurrentPlatformAPI();
            _altBaselineSets = Master.GetAltBaselines();
            int platIndex = UpdatePlatformDropdown();

            _platformDropdown.value = platIndex;
            int apiIndex = UpdateAPIDropdown(_altBaseline.Platform);

            _apiDropdown.value = apiIndex;
        }
Exemplo n.º 6
0
        // ------------------------------------------------------------------------------------
        // Comparison Methods

        // Get comparison data
        public object ProcessComparison(ResultsBase resultsData)
        {
            AltBaselineSettings altBaselineSettings = Master.Instance.GetCurrentPlatformAPI();                                                     // current chosen API/plafrom
            ResultsDataCommon   m_BaselineData      = resultsData.common.SwitchPlatformAPI(altBaselineSettings.Platform, altBaselineSettings.API); // makes new ResultsDataCommon to grab baseline
            ResultsIOData       baselineFetch       = ResultsIO.Instance.RetrieveEntry(suiteName, testTypeName, m_BaselineData, true, true);       // Get baseline data

            if (baselineFetch != null)                                                                                                             // If successful
            {
                ResultsBase baselineData = (ResultsBase)DeserializeResults(baselineFetch);                                                         // Convert to results class
                return(ProcessComparison(baselineData, resultsData));                                                                              // Process comparison
            }
            else
            {
                return(null); // Return fail
            }
        }
Exemplo n.º 7
0
        // Logic for creating results data
        public override IEnumerator ProcessResult()
        {
            var m_TempData = (ExampleResults)GetResultsStruct();                                                                                                                        // Must get results struct and cast to this logics results type (mandatory)

            yield return(WaitForTimer());                                                                                                                                               // Wait for timer

            var typedSettings = (ExampleSettings)model.settings;                                                                                                                        // Set settings to local type (mandatory)

            m_TempData = GetDummyData(m_TempData.common);                                                                                                                               // Just get some dummy data for the example (logic specific)
            if (baselineExists)                                                                                                                                                         // Comparison (mandatory)
            {
                AltBaselineSettings altBaselineSettings = Master.Instance.GetCurrentPlatformAPI();                                                                                      // current chosen API/plafrom
                ResultsDataCommon   m_BaselineData      = m_TempData.common.SwitchPlatformAPI(altBaselineSettings.Platform, altBaselineSettings.API);                                   // makes new ResultsDataCommon to grab baseline
                ExampleResults      referenceData       = (ExampleResults)DeserializeResults(ResultsIO.Instance.RetrieveEntry(suiteName, testTypeName, m_TempData.common, true, true)); // Deserialize baseline data (mandatory)
                m_TempData.common.PassFail = GetComparisonResult(m_TempData, referenceData);                                                                                            // Get comparison results
            }
            BuildResultsStruct(m_TempData);                                                                                                                                             // Submit (mandatory)
        }
Exemplo n.º 8
0
        // ------------------------------------------------------------------------------------
        // Execution Overrides

        // Logic for creating results data (mandatory override)
        public override IEnumerator ProcessResult()
        {
            var m_TempData    = (AverageFrameTimeResults)GetResultsStruct(); // Get a results struct (mandatory)
            var typedSettings = (AverageFrameTimeSettings)model.settings;    // Set settings to local type

            yield return(WaitForTimer());                                    // Wait for timer

            Timestamp(false);                                                // Perform a timestamp (logic specific)
            for (int i = 0; i < typedSettings.sampleFrames; i++)             // Wait for requested sample frame count (logic specific)
            {
                yield return(new WaitForEndOfFrame());
            }
            m_TempData.avgFrameTime = Timestamp(true);                                                                                                                                            // Perform a timestamp (logic specific)
            if (baselineExists)                                                                                                                                                                   // Comparison (mandatory)
            {
                AltBaselineSettings     altBaselineSettings = Master.Instance.GetCurrentPlatformAPI();                                                                                            // current chosen API/plafrom
                ResultsDataCommon       m_BaselineData      = m_TempData.common.SwitchPlatformAPI(altBaselineSettings.Platform, altBaselineSettings.API);                                         // makes new ResultsDataCommon to grab baseline
                AverageFrameTimeResults referenceData       = (AverageFrameTimeResults)DeserializeResults(ResultsIO.Instance.RetrieveEntry(suiteName, testTypeName, m_BaselineData, true, true)); // Deserialize baseline data (mandatory)
                m_TempData.common.PassFail = GetComparisonResult(m_TempData, referenceData);                                                                                                      // Get comparison result
            }
            BuildResultsStruct(m_TempData);                                                                                                                                                       // Submit (mandatory)
        }