e2etest/GuestProxyAgentTest/Utilities/TestMapReader.cs (51 lines of code) (raw):
// Copyright (c) Microsoft Corporation
// SPDX-License-Identifier: MIT
using GuestProxyAgentTest.Settings;
using System.Reflection;
using GuestProxyAgentTest.Models;
namespace GuestProxyAgentTest.Utilities
{
public static class TestMapReader
{
static string TestMapFile(bool test_arm64 = false)
{
if (test_arm64)
{
if (Constants.IS_WINDOWS())
{
return "Test-Map-Arm64.yml";
}
else
{
return "Test-Map-Linux-Arm64.yml";
}
}
else
{
if (Constants.IS_WINDOWS())
{
return "Test-Map.yml";
}
else
{
return "Test-Map-Linux.yml";
}
}
}
/// <summary>
/// Read 'Test-Map.yml' and covert to a TestScenarioSetting list
/// </summary>
/// <returns></returns>
public static List<TestScenarioSetting> ReadFlattenTestScenarioSettingFromTestMap(bool test_arm64 = false)
{
var curFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
return YamlUtils.DeserializeYaml<TestMap>(Path.Combine(curFolder, "TestMap", TestMapFile(test_arm64)))
.TestGroupList.Select((x) => YamlUtils.DeserializeYaml<TestGroupDetails>(Path.Combine(curFolder, "TestMap", x.Include)))
.SelectMany(x => x.Scenarios, (group, ele) => new TestScenarioSetting
{
vmImageOffer = group.VmImageOffer,
vmImagePublisher = group.VmImagePublisher,
vmImageSku = group.VmImageSku,
vmImageVersion = group.VmImageVersion,
testGroupName = group.GroupName,
testScenarioClassName = ele.ClassName,
testScenarioName = ele.Name,
}).ToList();
}
}
}