Skip to content

Commit 0763e36

Browse files
Expand SettingsFile test for VK_INSTANCE_LAYERS
Adds another layer so that the correct behavior occurs even when more layers are present, testing the implementation more thoroughly.
1 parent f794b30 commit 0763e36

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

tests/loader_settings_tests.cpp

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,13 +1357,20 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
13571357
ManifestLayer::LayerDescription{}.set_name(explicit_layer_name2).set_lib_path(TEST_LAYER_PATH_EXPORT_VERSION_2)),
13581358
"explicit_test_layer2.json"});
13591359

1360+
const char* explicit_layer_name3 = "VK_LAYER_Regular_TestLayer3";
1361+
env.add_explicit_layer(TestLayerDetails{
1362+
ManifestLayer{}.add_layer(
1363+
ManifestLayer::LayerDescription{}.set_name(explicit_layer_name3).set_lib_path(TEST_LAYER_PATH_EXPORT_VERSION_2)),
1364+
"explicit_test_layer3.json"});
1365+
13601366
EnvVarWrapper vk_instance_layers{"VK_INSTANCE_LAYERS"};
13611367
vk_instance_layers.add_to_list(explicit_layer_name2);
13621368
vk_instance_layers.add_to_list(explicit_layer_name1);
13631369
{
1364-
auto layer_props = env.GetLayerProperties(2);
1370+
auto layer_props = env.GetLayerProperties(3);
13651371
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name1));
13661372
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name2));
1373+
ASSERT_TRUE(string_eq(layer_props.at(2).layerName, explicit_layer_name3));
13671374

13681375
InstWrapper inst{env.vulkan_functions};
13691376
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1381,10 +1388,15 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
13811388
LoaderSettingsLayerConfiguration{}
13821389
.set_name(explicit_layer_name2)
13831390
.set_control("off")
1384-
.set_path(env.get_shimmed_layer_manifest_path(1))}));
1391+
.set_path(env.get_shimmed_layer_manifest_path(1)),
1392+
LoaderSettingsLayerConfiguration{}
1393+
.set_name(explicit_layer_name3)
1394+
.set_control("auto")
1395+
.set_path(env.get_shimmed_layer_manifest_path(2))}));
13851396
env.update_loader_settings(env.loader_settings);
13861397
{
1387-
ASSERT_NO_FATAL_FAILURE(env.GetLayerProperties(0));
1398+
auto layer_props = env.GetLayerProperties(1);
1399+
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name3));
13881400

13891401
InstWrapper inst{env.vulkan_functions};
13901402
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1395,8 +1407,9 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
13951407
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(0).control = "auto";
13961408
env.update_loader_settings(env.loader_settings);
13971409
{
1398-
auto layer_props = env.GetLayerProperties(1);
1410+
auto layer_props = env.GetLayerProperties(2);
13991411
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name1));
1412+
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name3));
14001413

14011414
InstWrapper inst{env.vulkan_functions};
14021415
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1408,8 +1421,9 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
14081421
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(0).control = "on";
14091422
env.update_loader_settings(env.loader_settings);
14101423
{
1411-
auto layer_props = env.GetLayerProperties(1);
1424+
auto layer_props = env.GetLayerProperties(2);
14121425
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name1));
1426+
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name3));
14131427

14141428
InstWrapper inst{env.vulkan_functions};
14151429
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1421,8 +1435,9 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
14211435
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(1).control = "auto";
14221436
env.update_loader_settings(env.loader_settings);
14231437
{
1424-
auto layer_props = env.GetLayerProperties(1);
1438+
auto layer_props = env.GetLayerProperties(2);
14251439
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name2));
1440+
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name3));
14261441

14271442
InstWrapper inst{env.vulkan_functions};
14281443
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1434,21 +1449,22 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
14341449
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(1).control = "on";
14351450
env.update_loader_settings(env.loader_settings);
14361451
{
1437-
auto layer_props = env.GetLayerProperties(1);
1452+
auto layer_props = env.GetLayerProperties(2);
14381453
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name2));
1454+
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name3));
14391455

14401456
InstWrapper inst{env.vulkan_functions};
14411457
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
14421458
inst.CheckCreate();
14431459
auto layers = inst.GetActiveLayers(inst.GetPhysDev(), 1);
14441460
ASSERT_TRUE(string_eq(layers.at(0).layerName, explicit_layer_name2));
14451461
}
1446-
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(0).control = "auto";
1462+
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(1).control = "auto";
14471463
env.update_loader_settings(env.loader_settings);
14481464
{
14491465
auto layer_props = env.GetLayerProperties(2);
1450-
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name1));
1451-
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name2));
1466+
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name2));
1467+
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name3));
14521468

14531469
InstWrapper inst{env.vulkan_functions};
14541470
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
@@ -1459,9 +1475,10 @@ TEST(SettingsFile, EnvVarsWork_VK_INSTANCE_LAYERS_multiple_layers) {
14591475
env.loader_settings.app_specific_settings.at(0).layer_configurations.at(0).control = "on";
14601476
env.update_loader_settings(env.loader_settings);
14611477
{
1462-
auto layer_props = env.GetLayerProperties(2);
1478+
auto layer_props = env.GetLayerProperties(3);
14631479
ASSERT_TRUE(string_eq(layer_props.at(0).layerName, explicit_layer_name1));
14641480
ASSERT_TRUE(string_eq(layer_props.at(1).layerName, explicit_layer_name2));
1481+
ASSERT_TRUE(string_eq(layer_props.at(2).layerName, explicit_layer_name3));
14651482

14661483
InstWrapper inst{env.vulkan_functions};
14671484
FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);

0 commit comments

Comments
 (0)