blob: aaf30db910362a3547aa4e0df93342bee90daa28 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package openwhisk
import (
"fmt"
"path/filepath"
)
/**
The _test/build.sh script builds some binaries that are used to actually run tests.
Tests basically submit various binaries to the handler, simulating the init of the runtime.
**/
func Example_json_init() {
fmt.Println(initCode("", ""))
fmt.Println(initCode("_test/etc", ""))
fmt.Println(initCode("_test/etc", "world"))
fmt.Println(initBinary("_test/etc", ""))
fmt.Println(initBinary("_test/etc", "hello"))
// Output:
// {"value":{}}
// {"value":{"code":"1\n"}}
// {"value":{"code":"1\n","main":"world"}}
// {"value":{"code":"MQo=","binary":true}}
// {"value":{"code":"MQo=","binary":true,"main":"hello"}}
}
func Example_bininit_nocompiler() {
ts, cur, log := startTestServer("")
doRun(ts, "")
doInit(ts, initBinary("_test/hello_message", ""))
doRun(ts, "")
doInit(ts, initBinary("_test/hello_greeting", ""))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"message":"Hello, Mike!"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
func Example_zipinit_nocompiler() {
ts, cur, log := startTestServer("")
doRun(ts, "")
doInit(ts, initBinary("_test/hello_greeting.zip", ""))
doRun(ts, "")
doInit(ts, initBinary("_test/hello_message.zip", ""))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// 200 {"ok":true}
// 200 {"message":"Hello, Mike!"}
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
/* commented out test for timing problems*/
func Example_shell_nocompiler() {
ts, cur, log := startTestServer("")
doRun(ts, "")
doInit(ts, initBinary("_test/hello.sh", ""))
doRun(ts, "")
doRun(ts, `{"name":"*"}`)
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"hello": "Mike"}
// 400 {"error":"command exited"}
// 400 {"error":"no action defined yet"}
// msg=hello Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// Goodbye!
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
} /**/
func Example_main_nocompiler() {
ts, cur, log := startTestServer("")
doRun(ts, "")
doInit(ts, initBinary("_test/hello_message", "message"))
doRun(ts, "")
doInit(ts, initBinary("_test/hello_greeting", "greeting"))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"message":"Hello, Mike!"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
func Example_main_zipinit_nocompiler() {
ts, cur, log := startTestServer("")
doRun(ts, "")
doInit(ts, initBinary("_test/hello_greeting.zip", "greeting"))
doInit(ts, initBinary("_test/hello_greeting1.zip", "greeting"))
doRun(ts, "")
doInit(ts, initBinary("_test/hello_message.zip", "message"))
doInit(ts, initBinary("_test/hello_message1.zip", "message"))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 400 {"error":"cannot start action: command exited"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// 400 {"error":"cannot start action: command exited"}
// 200 {"ok":true}
// 200 {"message":"Hello, Mike!"}
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
func Example_compile_simple() {
comp, _ := filepath.Abs("../common/gobuild.sh")
ts, cur, log := startTestServer(comp)
doRun(ts, "")
doInit(ts, initCode("_test/hello.src", ""))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"message":"Hello, Mike!"}
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
func Example_compile_withMain() {
comp, _ := filepath.Abs("../common/gobuild.sh")
ts, cur, log := startTestServer(comp)
sys("_test/build.sh")
doRun(ts, "")
doInit(ts, initCode("_test/hello1.src", ""))
doInit(ts, initCode("_test/hello1.src", "hello"))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 400 {"error":"cannot start action: command exited"}
// 200 {"ok":true}
// 200 {"hello":"Hello, Mike!"}
// name=Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
func Example_compile_withZipSrc() {
comp, _ := filepath.Abs("../common/gobuild.sh")
ts, cur, log := startTestServer(comp)
doRun(ts, "")
doInit(ts, initBinary("_test/action.zip", ""))
doRun(ts, "")
doInit(ts, initBinary("_test/action.zip", "hello"))
doRun(ts, "")
stopTestServer(ts, cur, log)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// 200 {"ok":true}
// 200 {"greetings":"Hello, Mike"}
// Main:
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// Hello, Mike
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
/*
func Example_compile_withZipSrcDefault() {
sys("_test/zips.sh")
comp, _ := filepath.Abs("../common/gobuild.sh")
ts, cur := startTestServer(comp)
doRun(ts, "")
doInit(ts, initBinary("_test/action.zip", ""))
doRun(ts, "")
stopTestServer(ts, cur)
// Output:
// 400 {"error":"no action defined yet"}
// 200 {"ok":true}
// name=Mike
// 200 {"hello":"Hello, Mike!"}
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
// XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX
}
/**/