You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.2 KiB
85 lines
3.2 KiB
using NUnit.Framework;
|
|
using System;
|
|
using System.IO;
|
|
using UnityEditor;
|
|
using UnityEditor.Rendering;
|
|
using UnityEngine.Analytics;
|
|
|
|
namespace UnityEngine.Rendering.HighDefinition.Tests
|
|
{
|
|
class HDAnalyticsDefaults
|
|
{
|
|
const int k_MaxEventsPerHour = 10;
|
|
const int k_MaxNumberOfElements = 1000;
|
|
|
|
[Serializable]
|
|
internal struct DefaultsEventData : IAnalytic.IData
|
|
{
|
|
// Naming convention for analytics data
|
|
public string[] default_settings;
|
|
}
|
|
|
|
[AnalyticInfo(eventName: "uHDRPDefaults", vendorKey: "unity.hdrp", maxEventsPerHour: 10, maxNumberOfElements: 1000)]
|
|
internal class Analytic : IAnalytic
|
|
{
|
|
public Analytic(DefaultsEventData data) { m_Data = data; }
|
|
public bool TryGatherData(out IAnalytic.IData data, out Exception error)
|
|
{
|
|
data = m_Data;
|
|
error = null;
|
|
return true;
|
|
}
|
|
|
|
DefaultsEventData m_Data;
|
|
}
|
|
|
|
|
|
// We only need to send this event manually when we add new members or change values of the HDRP asset.
|
|
[MenuItem("internal:Edit/Rendering/Analytics/Generate HDRP default values analytics", priority = 1)]
|
|
static void GenerateDefaultValues()
|
|
{
|
|
if (!EditorAnalytics.enabled)
|
|
return;
|
|
|
|
var data = new DefaultsEventData()
|
|
{
|
|
default_settings = RenderPipelineSettings.NewDefault().ToNestedColumn()
|
|
};
|
|
|
|
Analytic analytic = new Analytic(data);
|
|
EditorAnalytics.SendAnalytic(analytic);
|
|
}
|
|
}
|
|
|
|
class HDAnalyticsTests
|
|
{
|
|
[Test]
|
|
public void ToNestedColumnsWithDefaultsReturnsTheCorrectValue()
|
|
{
|
|
var setting = new IntScalableSetting(new[] { 1, 2, 3 }, ScalableSettingSchemaId.With3Levels);
|
|
RenderPipelineSettings defaults = RenderPipelineSettings.NewDefault();
|
|
RenderPipelineSettings current = RenderPipelineSettings.NewDefault();
|
|
current.maximumLODLevel = setting;
|
|
current.supportDecals = false;
|
|
|
|
var diff = current.ToNestedColumnWithDefault(defaults, true);
|
|
Assert.AreEqual(new string[] { "{\"supportDecals\":\"False\"}", "{\"maximumLODLevel.m_Values\":\"[1,2,3]\"}" }, diff);
|
|
}
|
|
|
|
const string k_DefaultsDirectory = "Packages/com.unity.render-pipelines.high-definition/Tests/Editor/HDAnalyticsTests_Defaults.txt";
|
|
|
|
[Test]
|
|
public void CheckDefaultAnalyticsAreUpToDateOnBigQuery()
|
|
{
|
|
var currentDefaults = string.Join(",\n", RenderPipelineSettings.NewDefault().ToNestedColumn());
|
|
|
|
//File.WriteAllText(k_DefaultsDirectory, currentDefaults); // Uncomment this line to update the file
|
|
|
|
var defaultsFromFile = File.ReadAllText(k_DefaultsDirectory);
|
|
|
|
Assert.AreEqual(defaultsFromFile, currentDefaults, @$"Modifications where found on the {nameof(RenderPipelineSettings)}. Whenever you update the {nameof(HDRenderPipelineAsset)} you must:
|
|
- Update the default values on BigQuery (Edit/Rendering/Analytics/Generate HDRP default values analytics)
|
|
- Regenerate the file {k_DefaultsDirectory}.");
|
|
}
|
|
}
|
|
}
|