Definitely yes :) thx!!! -- Michele Sciabarra [email protected]
----- Original message ----- From: Rodric Rabbah <[email protected]> To: [email protected] Subject: Re: A problem in changing the signature of the action for the Golang runtime Date: Sat, 1 Sep 2018 05:31:57 -0400 Hey Michele The particular test you mention has a bypass feature for languages which prevent you from returning invalid json (statically typed ones). You can set the skip flag for the test and you’re done. The swift runtime does this for example. In java I also skipped this test but added a second explicit test where I returned null and checked the error handling accordingly. See here for swift test bypass https://github.com/apache/incubator-openwhisk-runtime-swift/blob/2b9bad5b2cc1e273fc61109a6d96c742578cbf1a/tests/src/test/scala/runtime/actionContainers/SwiftActionContainerTests.scala#L48 And here for java null test https://.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317 https://g://ithub.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317ahttps://github.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317che/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317 https://github.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317 Does this help? -r > On Sep 1, 2018, at 5:24 AM, Michele Sciabarra <[email protected]> wrote: > > Hello, I am in the process of cleaning the Golang runtime, and I am > implementing the tests in the trait BasicActionRunnerTests. > > In the process, I am cleaning a number of things. > I have now a "stupid" problem. > > I would like to change (as suggested by Carlos) the signature of an action > from the current > > func Main(event json.RawMessage) (json.RawMessage, error) > > to > > func Main(event map[string]interface{}) map[string]interface{} > > this express better the fact the input and the output are expected to be > object, and is also saves a "json.Marshal" and "json.Unmarshal" in the main. > It is helpful for simple cases. > > However, I cannot do it! Because of this (mandatory) test for runtimes: > "testNotReturningJson" > > The test checks that the runtime can reject an action that returns something > like a simple string and not a json object ( BTW, a string IS valid JSON, so > test is not named properly: should be: testNotRetuningObjectJson) > > In any case changing the signature I do not have any more any way to have a > misbehaving action that produces something that is not valid object, because > if I force the action to return a map of strings, it will be always > serialized back to a json object. > > Hence I have no way to pass this test! What I can do? > > -- > Michele Sciabarra > [email protected]
