diff --git a/src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp b/src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp index 8d87988a3..2385e2612 100644 --- a/src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp +++ b/src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp @@ -178,6 +178,7 @@ struct AbstractConverterTest: TestSuite::Tester { void debugFeature(); void debugFeatures(); + void debugFeaturesSupersets(); void debugFlag(); void debugFlags(); void debugFormat(); @@ -317,6 +318,7 @@ AbstractConverterTest::AbstractConverterTest() { &AbstractConverterTest::debugFeature, &AbstractConverterTest::debugFeatures, + &AbstractConverterTest::debugFeaturesSupersets, &AbstractConverterTest::debugFlag, &AbstractConverterTest::debugFlags, &AbstractConverterTest::debugFormat}); @@ -3415,6 +3417,29 @@ void AbstractConverterTest::debugFeatures() { CORRADE_COMPARE(out.str(), "ShaderTools::ConverterFeature::ValidateData|ShaderTools::ConverterFeature::ConvertFile ShaderTools::ConverterFeatures{}\n"); } +void AbstractConverterTest::debugFeaturesSupersets() { + /* ValidateData is a superset of ValidateFile, so only one should be + printed */ + { + std::ostringstream out; + Debug{&out} << (ConverterFeature::ValidateData|ConverterFeature::ValidateFile); + CORRADE_COMPARE(out.str(), "ShaderTools::ConverterFeature::ValidateData\n"); + + /* ConvertData is a superset of ConvertFile, so only one should be + printed */ + } { + std::ostringstream out; + Debug{&out} << (ConverterFeature::ConvertData|ConverterFeature::ConvertFile); + CORRADE_COMPARE(out.str(), "ShaderTools::ConverterFeature::ConvertData\n"); + + /* LinkData is a superset of LinkFile, so only one should be printed */ + } { + std::ostringstream out; + Debug{&out} << (ConverterFeature::LinkData|ConverterFeature::LinkFile); + CORRADE_COMPARE(out.str(), "ShaderTools::ConverterFeature::LinkData\n"); + } +} + void AbstractConverterTest::debugFlag() { std::ostringstream out; diff --git a/src/Magnum/Trade/Test/AbstractImageConverterTest.cpp b/src/Magnum/Trade/Test/AbstractImageConverterTest.cpp index ce066f722..3bf7729d8 100644 --- a/src/Magnum/Trade/Test/AbstractImageConverterTest.cpp +++ b/src/Magnum/Trade/Test/AbstractImageConverterTest.cpp @@ -141,6 +141,7 @@ struct AbstractImageConverterTest: TestSuite::Tester { void debugFeature(); void debugFeatures(); + void debugFeaturesSupersets(); void debugFlag(); void debugFlags(); }; @@ -240,6 +241,7 @@ AbstractImageConverterTest::AbstractImageConverterTest() { &AbstractImageConverterTest::debugFeature, &AbstractImageConverterTest::debugFeatures, + &AbstractImageConverterTest::debugFeaturesSupersets, &AbstractImageConverterTest::debugFlag, &AbstractImageConverterTest::debugFlags}); @@ -1726,6 +1728,23 @@ void AbstractImageConverterTest::debugFeatures() { CORRADE_COMPARE(out.str(), "Trade::ImageConverterFeature::Convert2DToData|Trade::ImageConverterFeature::ConvertCompressed2DToFile Trade::ImageConverterFeatures{}\n"); } +void AbstractImageConverterTest::debugFeaturesSupersets() { + /* Convert*DToData is a superset of Convert*DToFile, so only one should be + printed */ + { + std::ostringstream out; + Debug{&out} << (ImageConverterFeature::Convert2DToData|ImageConverterFeature::Convert2DToFile); + CORRADE_COMPARE(out.str(), "Trade::ImageConverterFeature::Convert2DToData\n"); + + /* ConvertCompressed*DToData is a superset of ConvertCompressed*DToFile, so + only one should be printed */ + } { + std::ostringstream out; + Debug{&out} << (ImageConverterFeature::ConvertCompressed1DToData|ImageConverterFeature::ConvertCompressed1DToFile); + CORRADE_COMPARE(out.str(), "Trade::ImageConverterFeature::ConvertCompressed1DToData\n"); + } +} + void AbstractImageConverterTest::debugFlag() { std::ostringstream out; diff --git a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp index 6aca0b7ba..dcf423b97 100644 --- a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp +++ b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp @@ -75,6 +75,7 @@ struct AbstractSceneConverterTest: TestSuite::Tester { void debugFeature(); void debugFeatures(); + void debugFeaturesSupersets(); void debugFlag(); void debugFlags(); }; @@ -110,6 +111,7 @@ AbstractSceneConverterTest::AbstractSceneConverterTest() { &AbstractSceneConverterTest::debugFeature, &AbstractSceneConverterTest::debugFeatures, + &AbstractSceneConverterTest::debugFeaturesSupersets, &AbstractSceneConverterTest::debugFlag, &AbstractSceneConverterTest::debugFlags}); @@ -549,6 +551,16 @@ void AbstractSceneConverterTest::debugFeatures() { CORRADE_COMPARE(out.str(), "Trade::SceneConverterFeature::ConvertMesh|Trade::SceneConverterFeature::ConvertMeshToFile Trade::SceneConverterFeatures{}\n"); } +void AbstractSceneConverterTest::debugFeaturesSupersets() { + /* ConvertMeshToData is a superset of ConvertMeshToFile, so only one should + be printed */ + { + std::ostringstream out; + Debug{&out} << (SceneConverterFeature::ConvertMeshToData|SceneConverterFeature::ConvertMeshToFile); + CORRADE_COMPARE(out.str(), "Trade::SceneConverterFeature::ConvertMeshToData\n"); + } +} + void AbstractSceneConverterTest::debugFlag() { std::ostringstream out;