summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2017-07-05 16:13:45 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-07-08 09:05:13 +0000
commitf7fefed2ea370073ff0828baf2c42cab894e1bd0 (patch)
tree6b0e3f2750b6803cd5638fc4e851bad483bc915b /tests
parent74e9a113864106500a8bb39cfd6c4e6eb76d1c58 (diff)
Add parameters to QShaderNode
This will allow to create nodes having an entry point for tuning, still need to be exploited by the loaders and the shader generator. Coming in further commits. Change-Id: I8384b0f528c9919e9f8d35102adde2b307f08b80 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/gui/util/qshadernodes/tst_qshadernodes.cpp49
1 files changed, 47 insertions, 2 deletions
diff --git a/tests/auto/gui/util/qshadernodes/tst_qshadernodes.cpp b/tests/auto/gui/util/qshadernodes/tst_qshadernodes.cpp
index 9d7139c880..0280f6559b 100644
--- a/tests/auto/gui/util/qshadernodes/tst_qshadernodes.cpp
+++ b/tests/auto/gui/util/qshadernodes/tst_qshadernodes.cpp
@@ -70,7 +70,7 @@ private slots:
void shouldVerifyPortsEquality_data();
void shouldVerifyPortsEquality();
- void shouldManipulateNodeUuidPortsAndRules();
+ void shouldManipulateNodeMembers();
void shouldHandleNodeRulesSupportAndOrder();
};
@@ -336,7 +336,7 @@ void tst_QShaderNodes::shouldVerifyPortsEquality()
QCOMPARE(notEqual, !expected);
}
-void tst_QShaderNodes::shouldManipulateNodeUuidPortsAndRules()
+void tst_QShaderNodes::shouldManipulateNodeMembers()
{
// GIVEN
const auto openGLES2 = createFormat(QShaderFormat::OpenGLES, 2, 0);
@@ -352,6 +352,7 @@ void tst_QShaderNodes::shouldManipulateNodeUuidPortsAndRules()
QCOMPARE(node.type(), QShaderNode::Invalid);
QVERIFY(node.uuid().isNull());
QVERIFY(node.ports().isEmpty());
+ QVERIFY(node.parameterNames().isEmpty());
QVERIFY(node.availableFormats().isEmpty());
// WHEN
@@ -395,6 +396,50 @@ void tst_QShaderNodes::shouldManipulateNodeUuidPortsAndRules()
QCOMPARE(node.ports().at(0), secondPort);
QVERIFY(node.availableFormats().isEmpty());
+ // WHEN
+ node.setParameter(QStringLiteral("baz"), 42);
+
+ // THEN
+ QCOMPARE(node.type(), QShaderNode::Input);
+ QCOMPARE(node.ports().size(), 1);
+ QCOMPARE(node.ports().at(0), secondPort);
+ auto parameterNames = node.parameterNames();
+ parameterNames.sort();
+ QCOMPARE(parameterNames.size(), 1);
+ QCOMPARE(parameterNames.at(0), QStringLiteral("baz"));
+ QCOMPARE(node.parameter(QStringLiteral("baz")), QVariant(42));
+ QVERIFY(node.availableFormats().isEmpty());
+
+ // WHEN
+ node.setParameter(QStringLiteral("bleh"), QStringLiteral("value"));
+
+ // THEN
+ QCOMPARE(node.type(), QShaderNode::Input);
+ QCOMPARE(node.ports().size(), 1);
+ QCOMPARE(node.ports().at(0), secondPort);
+ parameterNames = node.parameterNames();
+ parameterNames.sort();
+ QCOMPARE(parameterNames.size(), 2);
+ QCOMPARE(parameterNames.at(0), QStringLiteral("baz"));
+ QCOMPARE(parameterNames.at(1), QStringLiteral("bleh"));
+ QCOMPARE(node.parameter(QStringLiteral("baz")), QVariant(42));
+ QCOMPARE(node.parameter(QStringLiteral("bleh")), QVariant(QStringLiteral("value")));
+ QVERIFY(node.availableFormats().isEmpty());
+
+ // WHEN
+ node.clearParameter(QStringLiteral("baz"));
+
+ // THEN
+ QCOMPARE(node.type(), QShaderNode::Input);
+ QCOMPARE(node.ports().size(), 1);
+ QCOMPARE(node.ports().at(0), secondPort);
+ parameterNames = node.parameterNames();
+ parameterNames.sort();
+ QCOMPARE(parameterNames.size(), 1);
+ QCOMPARE(parameterNames.at(0), QStringLiteral("bleh"));
+ QCOMPARE(node.parameter(QStringLiteral("baz")), QVariant());
+ QCOMPARE(node.parameter(QStringLiteral("bleh")), QVariant(QStringLiteral("value")));
+ QVERIFY(node.availableFormats().isEmpty());
// WHEN
node.addRule(openGLES2, es2Rule);