This is an automated email from the ASF dual-hosted git repository. mrutkowski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-wskdeploy.git
The following commit(s) were added to refs/heads/master by this push: new 2a5fe55 Add sequence validation tests (#483) 2a5fe55 is described below commit 2a5fe551e35f2e299a18f1b6ea07c74789ec96a9 Author: Ying Chun Guo <guoyi...@cn.ibm.com> AuthorDate: Fri Sep 15 05:33:57 2017 +0800 Add sequence validation tests (#483) * add sequence tests * Update function.js * Update validateSequencesCreation_test.go * Update validateSequencesCreation_test.go --- .../validateSequencesCreation/actions/function.js | 15 +++ .../validateSequencesCreation_test.go | 110 +++++++++++++++++++++ 2 files changed, 125 insertions(+) diff --git a/tests/src/integration/validateSequencesCreation/actions/function.js b/tests/src/integration/validateSequencesCreation/actions/function.js new file mode 100644 index 0000000..7a61159 --- /dev/null +++ b/tests/src/integration/validateSequencesCreation/actions/function.js @@ -0,0 +1,15 @@ +/** + * Return a simple string to + * confirm this function has been visited. + * + * @param visited the visited function list + */ +function main(params) { + functionID = params.functionID || 'X' + if (params.visited == null) { + params.visited = 'function'+functionID; + } else { + params.visited = params.visited + ', function'+functionID; + } + return {"visited":params.visited}; +} diff --git a/tests/src/integration/validateSequencesCreation/validateSequencesCreation_test.go b/tests/src/integration/validateSequencesCreation/validateSequencesCreation_test.go new file mode 100644 index 0000000..0bc6679 --- /dev/null +++ b/tests/src/integration/validateSequencesCreation/validateSequencesCreation_test.go @@ -0,0 +1,110 @@ +// +build integration + +/* + * 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 tests + +import ( + "github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/common" + "github.com/stretchr/testify/assert" + "os" + "io/ioutil" + "strconv" + "fmt" + "strings" + "testing" +) + +var wskprops = common.GetWskprops() + +func composeDeployFiles(count int) (manifestStr string, deploymentStr string) { + manifestStr = `package: + name: TestSequencesCreation + actions: +` + deploymentStr = `application: + name: TestSequencesCreationApp + packages: + TestSequencesCreation: + actions: +` + sequenceStr :=` sequences: + validate-sequence: + actions: ` + + for i := 1; i < count+1; i++ { + manifestStr = manifestStr + " func"+strconv.Itoa(i)+":"+ +` + function: actions/function.js + runtime: nodejs:6 + inputs: + functionID: string + visited: string + outputs: + visited: string +` + sequenceStr = sequenceStr + "func"+strconv.Itoa(i)+"," + deploymentStr = deploymentStr + " func"+strconv.Itoa(i)+":"+ +` + inputs: + functionID: `+strconv.Itoa(i)+ +` + visited: +` + } + manifestStr = manifestStr + strings.TrimRight(sequenceStr,",") + return +} + +func _createTmpfile(data string, filename string) (f *os.File, err error) { + dir, _ := os.Getwd() + tmpfile, err := ioutil.TempFile(dir, filename) + if err != nil { + return nil, err + } + _, err = tmpfile.Write([]byte(data)) + if err != nil { + return tmpfile, err + } + return tmpfile, nil +} + +func TestValidateSequenceCreation(t *testing.T) { + count := 10 + wskdeploy := common.NewWskdeploy() + for i := 1; i < count+1; i++ { + maniData,deplyData := composeDeployFiles(i+1) + tmpManifile, err := _createTmpfile(maniData, "sequence_test_mani_") + tmpDeplyfile, err := _createTmpfile(deplyData, "sequence_test_deply_") + if err != nil { + assert.Fail(t, "Failed to create temp file") + } + + fmt.Printf("Deploying sequence %d\n:",i) + _, err = wskdeploy.Deploy(tmpManifile.Name(), tmpDeplyfile.Name()) + assert.Equal(t, nil, err, "Failed to deploy sequence.") + _, err = wskdeploy.Undeploy(tmpManifile.Name(), tmpDeplyfile.Name()) + assert.Equal(t, nil, err, "Failed to undeploy sequence.") + + tmpManifile.Close() + tmpDeplyfile.Close() + os.Remove(tmpManifile.Name()) + os.Remove(tmpDeplyfile.Name()) + } +} + -- To stop receiving notification emails like this one, please contact ['"commits@openwhisk.apache.org" <commits@openwhisk.apache.org>'].