From 89db66bb9151b873a18c114a83e14015da7b7d68 Mon Sep 17 00:00:00 2001 From: Lachlan Dowding Date: Wed, 29 Aug 2018 09:09:34 +1000 Subject: [PATCH] Fix tundra:test implementation to work correctly by fixing .gitignore to not ignore the implementation service --- .gitignore | 4 +- code/jars/Tundra.jar | Bin 720130 -> 720329 bytes ns/tundra/support/test/execute/java.frag | 13 + ns/tundra/support/test/execute/node.ndf | 428 +++++++++++++++++++++++ ns/tundra/support/test/node.idf | 17 + 5 files changed, 461 insertions(+), 1 deletion(-) create mode 100644 ns/tundra/support/test/execute/java.frag create mode 100644 ns/tundra/support/test/execute/node.ndf create mode 100644 ns/tundra/support/test/node.idf diff --git a/.gitignore b/.gitignore index f2d7acc8c..59459e8c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ *.bak Thumbs.db .DS_Store -ns/tundra/support/test +ns/tundra/support/test/* +!ns/tundra/support/test/node.idf +!ns/tundra/support/test/execute diff --git a/code/jars/Tundra.jar b/code/jars/Tundra.jar index c4e2bff93fdcd5fd93db3a4adee5544aae11f286..9098f0b7e351236e96062d8850fe00777db19304 100644 GIT binary patch delta 26505 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 Mj78ntp*Sl19|lqFi2wiq delta 25463 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 diff --git a/ns/tundra/support/test/execute/java.frag b/ns/tundra/support/test/execute/java.frag new file mode 100644 index 000000000..828c0a33c --- /dev/null +++ b/ns/tundra/support/test/execute/java.frag @@ -0,0 +1,13 @@ + + + + execute + true + SURhdGFDdXJzb3IgY3Vyc29yID0gcGlwZWxpbmUuZ2V0Q3Vyc29yKCk7Cgp0cnkgewogICAgU3Ry +aW5nIHBhY2thZ2VOYW1lID0gSURhdGFIZWxwZXIuZ2V0KGN1cnNvciwgIiRwYWNrYWdlIiwgU3Ry +aW5nLmNsYXNzLCB0cnVlKTsKICAgIGludCBjb25jdXJyZW5jeSA9IElEYXRhSGVscGVyLmdldE9y +RGVmYXVsdChjdXJzb3IsICIkY29uY3VycmVuY3kiLCBJbnRlZ2VyLmNsYXNzLCAxKTsKICAgIElE +YXRhSGVscGVyLnB1dChjdXJzb3IsICIkcmVzdWx0IiwgVGVzdEhlbHBlci5leGVjdXRlKFBhY2th +Z2VIZWxwZXIuZ2V0UGFja2FnZShwYWNrYWdlTmFtZSksIGNvbmN1cnJlbmN5KSk7Cn0gZmluYWxs +eSB7CiAgICBjdXJzb3IuZGVzdHJveSgpOwp9 + diff --git a/ns/tundra/support/test/execute/node.ndf b/ns/tundra/support/test/execute/node.ndf new file mode 100644 index 000000000..63dc0e453 --- /dev/null +++ b/ns/tundra/support/test/execute/node.ndf @@ -0,0 +1,428 @@ + + + + java + unknown + java 3.5 + + + record + false + record + 0 + true + false + false + + + record + + + + false + false + + false + $package + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + string + + + + false + false + false + + + record + + + + false + false + + false + $concurrency + string + 0 + true + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + positiveInteger + + + + true + false + false + + + true + + + record + false + record + 0 + true + false + false + + + record + + + false + false + + false + $result + record + 0 + true + true + false + false + + + record + + + + false + false + + false + package + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + string + + + + false + false + false + + + record + + + + false + false + + false + passed? + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + boolean + + + + false + false + false + + + record + + + false + false + + false + counts + record + 0 + true + false + false + + + record + + + + false + false + + false + total + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + nonNegativeInteger + + + + false + false + false + + + record + + + + false + false + + false + passed + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + nonNegativeInteger + + + + false + false + false + + + record + + + + false + false + + false + failed + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + nonNegativeInteger + + + + false + false + false + + + true + true + + + record + + + false + false + + false + cases + record + 1 + true + true + false + false + false + + + record + + + + false + false + + false + description + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + string + + + + false + false + false + + + record + + + + false + false + + false + passed? + string + 0 + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + boolean + + + + false + false + false + + + record + + + + false + false + + false + message + string + 0 + true + + 1 + reference + dtVersion2 + + + http://www.w3.org/2001/XMLSchema + string + + + + true + false + false + + + true + true + + + true + true + + + true + + + ### tundra.support.test:execute + +Runs all *test*:should* services in the given package, returning the +test results, where a test case passes if no exceptions are thrown. + +Supports optional :setup and :teardown sibling services, which are +invoked before and after each test case service respectively. + +#### Inputs: + +* $package is the name of the package which contains the test cases + to be executed. +* $concurrency is an optional number of threads to use when + executing the test cases. Defaults to 1. + +#### Outputs: + +* $result is a document containing the test results from executing + all the *test*:should* services in the given $package. + * package is the name of package the test results relate to. + * passed? is a boolean indicating if all test cases executed + passed. + * counts is a document containing the test result counts. + * total is the total number of test case services executed. + * passed is the number of test case services which passed (did + not throw an exception). + * failed is the number of test case services which failed (threw + an exception). + * cases is a list of the test case services which were executed. + * description is the fully-qualified name of the test case + service. + * passed? is a boolean indicating if the test case service passed + (did not throw an exception). + * message is an optional description returned if the test case + service failed, which describes why the test case failed. + + no + no + no + 15 + 1 + html + off + no + $null + no + 0 + 0 + default + default + 0 + + + + 0 + false + false + true + + 1 + + true + false + diff --git a/ns/tundra/support/test/node.idf b/ns/tundra/support/test/node.idf new file mode 100644 index 000000000..78ebbe922 --- /dev/null +++ b/ns/tundra/support/test/node.idf @@ -0,0 +1,17 @@ + + + + interface + tundra.support.test + false + true + + + + + + permafrost.tundra.data.IDataHelper + permafrost.tundra.server.PackageHelper + permafrost.tundra.server.TestHelper + +