openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rodric Rabbah <rod...@gmail.com>
Subject Re: A problem in changing the signature of the action for the Golang runtime
Date Sat, 01 Sep 2018 09:31:57 GMT
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 <michele@sciabarra.com> 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
>  michele@sciabarra.com

Mime
  • Unnamed multipart/alternative (inline, 7-Bit, 0 bytes)
View raw message