You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/03/12 10:39:12 UTC

[plc4x] branch develop updated: plc4go: added parameter parsing to DriverTestRunner.go

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6681ae1  plc4go: added parameter parsing to DriverTestRunner.go
6681ae1 is described below

commit 6681ae1087e2d48d670db221cdd0f986237dca33
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Mar 12 11:38:32 2021 +0100

    plc4go: added parameter parsing to DriverTestRunner.go
---
 .../plc4go/spi/testutils/DriverTestRunner.go       | 29 +++++++++++++++++-----
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go b/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
index 002ed40..00835ff 100644
--- a/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
+++ b/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
@@ -400,6 +400,7 @@ func ParseDriverTestsuite(node xmldom.Node) (*DriverTestsuite, error) {
 	}
 	var testsuiteName string
 	var driverName string
+	driverParameters := make(map[string]string)
 	var setupSteps []TestStep
 	var teardownSteps []TestStep
 	var testcases []Testcase
@@ -409,6 +410,21 @@ func ParseDriverTestsuite(node xmldom.Node) (*DriverTestsuite, error) {
 			testsuiteName = child.Text
 		} else if child.Name == "driver-name" {
 			driverName = child.Text
+		} else if child.Name == "driver-parameters" {
+			parameterList := child.FindByName("parameter")
+			for _, parameter := range parameterList {
+				nameElement := parameter.FindOneByName("name")
+				valueElement := parameter.FindOneByName("value")
+				if nameElement == nil || valueElement == nil {
+					return nil, errors.New("invalid parameter found: no present")
+				}
+				name := nameElement.Text
+				value := valueElement.Text
+				if name == "" || value == "" {
+					return nil, errors.New("invalid parameter found: empty")
+				}
+				driverParameters[name] = value
+			}
 		} else if child.Name == "setup" {
 			steps, err := ParseDriverTestsuiteSteps(child)
 			if err != nil {
@@ -434,16 +450,17 @@ func ParseDriverTestsuite(node xmldom.Node) (*DriverTestsuite, error) {
 			}
 			testcases = append(testcases, testcase)
 		} else {
-			return nil, errors.New("invalid document structure")
+			return nil, errors.New("invalid document structure. Unhandled element " + child.Name)
 		}
 	}
 
 	return &DriverTestsuite{
-		name:          testsuiteName,
-		driverName:    driverName,
-		setupSteps:    setupSteps,
-		teardownSteps: teardownSteps,
-		testcases:     testcases,
+		name:             testsuiteName,
+		driverName:       driverName,
+		driverParameters: driverParameters,
+		setupSteps:       setupSteps,
+		teardownSteps:    teardownSteps,
+		testcases:        testcases,
 	}, nil
 }