From 6596629c43921e79f50f959c0676dd3dc099e0f1 Mon Sep 17 00:00:00 2001 From: Scott Zwierzynski Date: Mon, 19 Dec 2016 12:39:34 -0500 Subject: [PATCH] create regression test dirs Fixes FAB-1369. Regression tests have been developed in multiple languages for blackbox testing of various components of hyperledger fabric. The intent is to soon place many tests scripts and supporting infrastructure under folder fabric/bddtests/regression/ to store them close to the fabric code with which they correlate. Next we will be constructing jenkins automation test suites and run them and post results for the community. Change-Id: Ie78ddd833e3c9792ff622847c9195703bbe10222 Signed-off-by: Scott Zwierzynski --- bddtests/regression/README.md | 87 ++++++++++++ bddtests/regression/daily_test_suite.sh | 130 ++++++++++++++++++ bddtests/regression/go/README.md | 8 ++ bddtests/regression/go/tdk/CAT/README.md | 74 ++++++++++ bddtests/regression/go/tdk/README.md | 123 +++++++++++++++++ bddtests/regression/longrun_test_suite.sh | 113 +++++++++++++++ bddtests/regression/node/README.md | 10 ++ .../regression/node/performance/README.md | 33 +++++ bddtests/regression/results/README.md | 8 ++ 9 files changed, 586 insertions(+) create mode 100644 bddtests/regression/README.md create mode 100644 bddtests/regression/daily_test_suite.sh create mode 100644 bddtests/regression/go/README.md create mode 100644 bddtests/regression/go/tdk/CAT/README.md create mode 100644 bddtests/regression/go/tdk/README.md create mode 100644 bddtests/regression/longrun_test_suite.sh create mode 100644 bddtests/regression/node/README.md create mode 100644 bddtests/regression/node/performance/README.md create mode 100644 bddtests/regression/results/README.md diff --git a/bddtests/regression/README.md b/bddtests/regression/README.md new file mode 100644 index 00000000000..b4efaaf850f --- /dev/null +++ b/bddtests/regression/README.md @@ -0,0 +1,87 @@ +## regression +Regression Test Suites scripts, and folders for: execution results for +significant releases, and +configuration scripts and supporting files in a variety of languages: + +- [GO](https://github.com/hyperledger/fabric/bddtests/regression/go) + language test scripts +- [NODE](https://github.com/hyperledger/fabric/bddtests/regression/node) + language test scripts + Note: a flexible-use performance engine, which can be configured and used + for a variety of tests, is located in the + [node/performance](https://github.com/hyperledger/fabric/bddtests/regression/node/performance) + folder. For examples how to use it, check there, or look for examples in the + daily test suite and long-run test suite scripts. +- [results](https://github.com/hyperledger/fabric/bddtests/regression/results) + folder containing logfiles and results of running the Test Suites on + significant releases, for reference + + +### Continous Integration Setup +Continuous Integration team will execute the *daily test suite* each day when a +merge commit has been pushed to fabric repository. +We have configured Jenkins in vLaunch to execute the Daily Test Suite: +the jobs listed below are downstream jobs which are run after successfully +executing the upstream job. +After the build is successfully executed, Jenkins will post build results +back to **rel-criteria-build** slack channel, +and generate a test summary report, to be available for viewing for 30 days. +For significant releases, the results will be stored +in **bddtests/regression/results** folder. + + +### Daily Test Suite - daily_test_suite.sh +Expected total time duration is between 13 - 16 hours. + +* Consensus Acceptance Tests (CAT) - using chaincode example02, GO, gRPC + - Objective of CAT tests is to ensure the stability and resiliency of the + BFT Batch design. +* Large Networks Basic API And Consensus Tests - using chaincode example02, + GO, gRPC + - Objective of Basic gRPC API test is to ensure basic gRPC API functions + are working as expected +* Ledger Stress Tests (LST) for API and 20K runs with concurrency and + 1K payload - using chaincode addrecs, GO, gRPC +* Speed Tests for measuring turnaround performance of the communication path + and blockchain network processing - using chaincode addrecs, GO, gRPC +* Concurrency Tests - using chaincode addrecs, GO, gRPC + - Objective of Concurrency test is to ensure system is able to accept + multiple threads concurrently for specified number of mins. +* Complex Transactions Tests - using chaincode auction, node, gRPC + - Objective of this test is to send complex transactions using + auction chaincode +* Performance Tests, random sized payloads - using chaincodes example02 + and auction, node, gRPC + - CI performs below tests in Performance testing + * Invoke on chaincode_example02 using 4 peers and + 4 Threads for 180 secs + * Query on chaincode_example02 using 4 peers and + 4 Threads for 180 secs + * Invoke on auction chaincode using 4 peers and + 1000 Tx for each of the 4 Threads + * Query on auction chaincode using 4 peers and + 1000 Tx for each of the 4 Threads + * Invoke on auction chaincode using 4 peers and 4 Threads. + Each Invoke is followed by a Query on every Thread + * Invoke on example02 chaincode using 4 peers and 4 Threads. +Each Invoke is followed by a Query on every Thread + + +### LongRun Test Suite - longrun_test_suite.sh +Expected total time duration is 72 hours when executed from +Jenkins automation scripts, which run several parallel jobs. + +* Consensus peers restarts tests, 2 tests, each approximately 10 hours - + using chaincode example02, GO, gRPC +* Ledger Stress Test 1 Million transactions, approximately 36 hours - + using chaincode addrecs, GO, gRPC +* Ledger Stress Test, 72 hours - using chaincode addrecs, GO, gRPC + - Send parallel Invoke requests on all 4 peers +* Performance Tests, 72 hours, random sized payloads - using chaincode auction, + node, gRPC (includes variable traffic, concurrency, complex transactions) + - Invoke 1 Tx per sec on 1 peer for 72 hrs (1 Thread) + + +### Full Regression Test Suite +Execute both the Daily Test Suite AND the Long Run Test Suite. + diff --git a/bddtests/regression/daily_test_suite.sh b/bddtests/regression/daily_test_suite.sh new file mode 100644 index 00000000000..bc9e364b9e0 --- /dev/null +++ b/bddtests/regression/daily_test_suite.sh @@ -0,0 +1,130 @@ +#!/bin/bash +# +# Copyright IBM Corp. 2016 All Rights Reserved. +# +# Licensed 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. +# + +# DESCRIPTION: +# These are the tests in the Daily Test Suite. +# To run these tests, user may clone the fabric, make code changes if +# desired, build images, and run this script. + + +# Setup + +WORKDIR=`pwd` + + + + + +# Note to test developers: Many tests in the Daily Test Suite are +# specific tests that already contain the TEST OBJECTIVE and STEPS. +# However, in some cases, such as running a flexible test engine to +# perform different tests by using configuration parameters or +# environment variables, it must be provided here. +# For EACH of those test cases, before invoking the test, please +# provide a comment block like this: + +#----------------------------------------------------------------------- +# TEST OBJECTIVE : basic network setup, deploy, invoke, query all peers +# using gRPC interface, and exercise chaincode APIs +# SETUP STEPS: +# 1. Set environment variable: export TEST_NETWORK=LOCAL +# TEST DETAILS (Optional): +# 1. Setup local docker network with security with 4 peer nodes +# 2. Deploy chaincode example02 +# 3. Send Invoke Requests on all peers using go routines +# 4. Verify query results and chainheights match on all peers +#----------------------------------------------------------------------- + + + + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Consensus Acceptance Tests +######################################################################## + +cd $WORKDIR/go/tdk/CAT +#UNDER CONSTRUCTION... +#go run CAT_100_Startup_DIQ_API.go +#go run CAT_101_BasicConsensus_S1_R1_S2_S1_R1_R2.go +#go run CAT_102_S1_IQDQIQ.go + + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Transaction Speed Measurement +######################################################################## + +cd $WORKDIR/go/tdk/ledgerstresstest +#./run_speed_tests.sh + + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Ledger Stress Tests +######################################################################## + +cd $WORKDIR/go/tdk/ledgerstresstest +#go run BasicFuncExistingNetworkLST.go +#go run LST_1client1peer20K.go +#go run LST_2client1peer20K.go +#go run LST_2client2peer20K.go +#go run LST_4client1peer20K.go +#go run LST_4client4peer20K.go + + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Concurrency/Ledger +######################################################################## + +cd $WORKDIR/go/tdk/ledgerstresstest +#go run conc4p1min1000Thrd1TxPerLoop_LOCAL.go +#go run conc4p1min400Thrd_LOCAL.go + + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Concurrency with Auction +######################################################################## + +cd $WORKDIR/node/ + + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Complex Transactions with Auction +######################################################################## + +cd $WORKDIR/node/ + + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Performance engine Baseline tests +######################################################################## + +cd $WORKDIR/node/performance/ + + diff --git a/bddtests/regression/go/README.md b/bddtests/regression/go/README.md new file mode 100644 index 00000000000..0a7d896a91f --- /dev/null +++ b/bddtests/regression/go/README.md @@ -0,0 +1,8 @@ +## GO tests, scripts, and supporting files +(For all scripts added to this directory, add information below to +describe pre-requisites, setup steps, and usage examples.) + +## SETUP + +## USAGE + diff --git a/bddtests/regression/go/tdk/CAT/README.md b/bddtests/regression/go/tdk/CAT/README.md new file mode 100644 index 00000000000..8e8c388b1c5 --- /dev/null +++ b/bddtests/regression/go/tdk/CAT/README.md @@ -0,0 +1,74 @@ +## Consensus Acceptance Testcases (CAT) +Hyperledger Fabric Go language Test Development Kit (TDK) +tests can be executed on local fabric in vagrant environment with docker +containers. +Additional details (the date the tests were run, commit image, +test config parameters, the test steps, output summary and details, etc.) +are available in the GO_TEST files in this folder. + +### CAT test naming convention + +The testnames themselves indicate the steps performed. For example: + +``` + CAT_210_S2S1_IQ_R1_IQ.go Consensus Acceptance Test (CAT) suite, testcase number 210 + _S2S1 Stop Validating PEERs VP2 and VP1 at virtually the same time + _IQ Send some Invoke requests to all running peers, and Query all to validate A/B/ChainHeight results + _R1 Restart VP1 + _IQ Send some Invoke requests to all running peers, and Query all to validate A/B/ChainHeight results +``` + +### Test Coverage + +The objective of Consensus Acceptance Tests (CAT) is to ensure the +stability and resiliency of the +PBFT Batch design when Byzantine faults occur in a 4 peer network. +Test areas coverage: + +Stop 1 peer: the network continues to process deploys, invokes, and query +transactions. +Perform this operation on each peer in the fabric. +While exactly 3 peers are running, their ledgers will remain in synch. +(In a 4 peer network, 3 represents 2F+1, the minimum number required for +consensus.) +Restarting a 4th peer will cause it to join in the network operations again. +Note: when queried after having been restarted, the ledger on extra +peers ( additional nodes beyond 2(F+1) ) +may appear to lag for some time. It will catch up if another peer is +stopped (leaving it as one of exactly 2F+1 participating peers), OR, with +no further disruptions in the network, +it could catch up after huge numbers of transaction batches are processed. + +Stop 2 peers: the network should halt advancement, due to a lack of consensus. +Restarting 1 or 2 peers will cause the network to resume processing +transactions because enough nodes are available to reach consensus. This may +include processing transactions that were received and queued by any running +peers while consensus was halted. + +Stop 3 peers: the network should halt advancement due to a lack of consensus. +Restarting just one of the peers should not resume consensus. +Restarting 2 or 3 peers should cause the network to resume consensus. + +Deploys should be processed, or queued if appropriate, with any number of +running peers. + + +### RESULTS SUMMARY + +``` + Consensus - Failed Testcases Opened Bugs Description + + CAT_111_SnIQRnIQ_cycleDownLoop.go FAB-337 dup Tx + CAT_303_S0S1S2_IQ_R0R1R2_IQ.go FAB-333 lost Tx after restart 3 peers together + CAT_305_S1S2S3_IQ_R1R2R3_IQ.go FAB-333 lost Tx after restart 3 peers together + CAT_407_S0S1S2_D_I_R0R1_IQ.go FAB-911 lost Tx from vp0 after stop vp0/vp1/vp2, deploy, restart vp0/vp1, invokes + CAT_408_S0S1S2_D_I_R0R1R2_IQ.go FAB-335 deploy failed when restart 3 peers together + CAT_409_S1S2S3_D_I_R1R2_IQ.go FAB-334/FAB-912 lost Tx after all peers after stop vp1/vp2/vp3, deploy, restart vp1/vp2, invokes + CAT_410_S1S2S3_D_I_R1R2R3_IQ.go FAB-335 deploy failed when restart 3 peers together + CAT_412_S0S1S2_D_I_R1R2_IQ.go FAB-334/FAB-912 lost Tx after all peers after stop vp1/vp2/vp3, deploy, restart vp1/vp2, invokes + + CRT_502_StopAndRestart1or2_10Hrs.go FAB-331 acked Tx lost after stop/restart peers many times + + CAT_201_S2S1_IQDIQ.go (using Pauses) FAB-336 no http response from vp0, while peers vp1,vp2 docker paused +``` + diff --git a/bddtests/regression/go/tdk/README.md b/bddtests/regression/go/tdk/README.md new file mode 100644 index 00000000000..066b5f1f3df --- /dev/null +++ b/bddtests/regression/go/tdk/README.md @@ -0,0 +1,123 @@ +## tdk +Hyperledger Fabric Go language Test Development Kit (TDK): tests, scripts, and +supporting framework for testing hyperledger/fabric + +## SETUP + +###Obtain the TDK and test programs: +In v1.0, find them within hyperledger/fabric repository. + + $ cd .../fabric/bddtests/regression/go/tdk + $ git checkout master + +In v0.6, clone from private repo to the src directory where GO is +installed (use either $GOROOT/src or $GOPATH/src). + + $ cd $GOPATH/src + $ git clone https://github.ibm.com/IBM-Blockchain/release-criteria + $ cd release-criteria/fvt/consensus + $ git checkout v0.6 + +Bash scripts local_fabric_gerrit.sh and others will create docker containers +to run the peers. For more information on setting up a peer network, +[read these instructions] (https://github.com/rameshthoomu/fabric1/blob/tools/localpeersetup/local_Readme.md) + +## USAGE + +###How to execute the programs: +- If you wish to connect to an existing network, change the credentials in + NetworkCredentials.json as needed. +- Helpful shell scripts are located in the tdk/automation directory: +``` + ../automation/go_record.sh - execute this from any of the + test directories, to run go tests and record stdout logs in unique + GO_TEST* named files in the current working directory. +``` +- LOGFILES for all Peers can be saved in the automation directory by + uncommenting a few lines in the local_fabric_gerrit.sh script. (Search for + LOGFILE.) Execute go_record.sh (or local_fabric.sh or similar script) without + parameters to get help with the options to control the log detail level. +- Go to the test directories and execute the tests. Good luck! +``` + # Examples how you can preload some of the environment vars for local + # vagrant/docker network testing: + $ . ../automation/ENVVARS_LOCAL + $ . ../automation/ENVVARS_Z + # OR, for HSBN/BlueMix network: + $ . ../automation/ENVVARS_Z + $ export COMMIT= + + # To run a basic test to create a 4-peer network and exercise the + # REST API functionalities: + $ cd tdk/chcotest + $ go run BasicFuncNewNetwork.go + + # To run Consensus Acceptance Tests or two of the long-run tests: + $ cd tdk/CAT + $ ../automation/go_record.sh CAT*go + $ ../automation/go_record.sh CRT_501_StopAndRestartRandom_10Hrs.go + $ ../automation/go_record.sh CRT_502_StopAndRestart1or2_10Hrs.go + + # To run ledger stress tests: After first starting up a new network by + # running a test that creates and uses a networkcredentials file + # (which maps to tdk/util/NetworkCredentials.json), + # simply run these tests by: + $ cd tdk/CAT + $ go run testtemplate.go + $ cd tdk/ledgerstresstest + $ TEST_NETWORK=LOCAL go run LST_2Client2Peer20K.go + + # Or, here is the easiest way to run the basic API test and five + # concurrency testcases in this directory: + $ cd tdk/ledgerstresstest + $ ./run_LST_regression.sh + + # To run COMMIT=821a3c7, the v0.6 Sep 7th build, in local environment + # with one of these commands: + $ cd tdk/automation + $ ./local_fabric_gerrit.sh -c 821a3c7 -n 4 -f 1 -l error -m pbft -b 500 -s + $ export COMMIT=821a3c7; export REPOSITORY_SOURCE=GERRIT + $ go_record.sh ../CAT/testtemplate.go ../chcotest/BasicFuncNewNetwork.go +``` +###Running tests on remote network requires some tweaking to make things run. +- Put the IP address info of the peers into the util/NetworkCredentials.json; + use script update_z.py to help generate that file for BlueMix networks. +- Set environment variable TEST_NET_COMM_PROTOCOL to use HTTPS instead of + default HTTP; required for Ledger Stress Tests on Z network, and may also + be useful when running other tests in other networks that could use HTTPS, +- Define its own usernames/passwords (may need to edit threadutil/threadutil.go) +- (Ledger Stress Tests only): Set environment variable TEST_NETWORK to Z when + using the Z network and its usernames/passwords +- (Ledger Stress Tests only): set the correct chaincode name in lstutil/util.go + to change it from "mycc" (a special version of example02 that adds payloads + records the ledger, instead of just changing the values of A and B) to + whatever is deployed on the actual Z network you are using. Before running + any tests, rebuild: "cd ledgerstresstest; ../automation/go_build_all.sh" +``` + # For example: + + $ cd ../CAT; TEST_NET_COMM_PROTOCOL=HTTPS go run CAT_101*.go + + # To run tests with example02 in BlueMix network on + # v.5 (COMMIT=3e0e80a) or v.6 (COMMIT=821a3c7), + # download the ServiceCredentials from BlueMix and run script + # update_z.py to generate the networkcredentials file for the + # Z or Starter or HSBN network; then try one of: + + $ ./update_z.py -b -f + $ cp networkcredentials ../util/NetworkCredentials.json + $ export TEST_NET_COMM_PROTOCOL=HTTPS; export TEST_NETWORK=Z + $ export COMMIT=821a3c7; export REPOSITORY_SOURCE=GERRIT + # OR + $ export COMMIT=3e0e80a; export REPOSITORY_SOURCE=GITHUB + $ go run ../chcotest/BasicFuncExistingNetwork.go; + $ go_record.sh ../CAT/testtemplate.go + + # To run ledger stress tests with a different chaincode named + # example02_addrecs, which is a modified version of example02, + # in BlueMix network on v05 or v06: + $ cd ../ledgerstresstest + $ export TEST_NETWORK=Z ; export TEST_NET_COMM_PROTOCOL=HTTPS + $ go run BasicFuncExistingNetworkLST.go + $ go run LST_1Client1Peer20K.go +``` diff --git a/bddtests/regression/longrun_test_suite.sh b/bddtests/regression/longrun_test_suite.sh new file mode 100644 index 00000000000..86a15aa46db --- /dev/null +++ b/bddtests/regression/longrun_test_suite.sh @@ -0,0 +1,113 @@ +#!/bin/bash +# +# Copyright IBM Corp. 2016 All Rights Reserved. +# +# Licensed 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. +# + +# DESCRIPTION: +# These are the tests in the Daily Test Suite. +# To run these tests, user may clone the fabric, make code changes if +# desired, build images, and run any of these scripts - each of which +# may take between 12 hours and 3 days to complete. + +# SETUP + +WORKDIR=`pwd` + + + + + +# Note to test developers: Many tests in the Daily Test Suite are +# specific tests that already contain the TEST OBJECTIVE and STEPS. +# However, in some cases, such as running a flexible test engine to +# perform different tests by using configuration parameters or +# environment variables, it must be provided here. +# For EACH of those test cases, before invoking the test, please +# provide a comment block like this: + +#----------------------------------------------------------------------- +# TEST OBJECTIVE : basic network setup, deploy, invoke, query all peers +# using gRPC interface, and exercise chaincode APIs +# SETUP STEPS: +# 1. Set environment variable: export TEST_NETWORK=LOCAL +# TEST DETAILS (Optional): +# 1. Setup local docker network with security with 4 peer nodes +# 2. Deploy chaincode example02 +# 3. Send Invoke Requests on all peers using go routines +# 4. Verify query results and chainheights match on all peers +#----------------------------------------------------------------------- + + + + +#UNDER CONSTRUCTION... + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Consensus Regression Tests +######################################################################## + +cd $WORKDIR/go/tdk/CAT +#go run CRT_501_StopAndRestartRandom_10Hrs.go +#go run CRT_502_StopAndRestart1or2_10Hrs.go +## run_largeNetworksBasicApiAndConsensus.sh: +#go run CRT_504_Npeers_Sf_S_R_Rf.go + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Ledger Stress Tests +######################################################################## + +cd $WORKDIR/go/tdk/ledgerstresstest +## release-criteria/fvt/consensus/tdk/automation/run_LST_3M.sh +#go run LST_4client1peer1M.go +#go run LST_4client4peer3M.go +## release-criteria/svt/longruns/run_long_run_72hour_LOCAL.sh +#go run LongRun72hrAuto.go + + +######################################################################## +# Language API Functional Area +# GO TDK gRPC Concurrency/Ledger +######################################################################## + +cd $WORKDIR/go/tdk/ledgerstresstest + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Concurrency with Auction +######################################################################## + +cd $WORKDIR/node/ + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Complex Transactions with Auction +######################################################################## + +cd $WORKDIR/node/ + + +######################################################################## +# Language API Functional Area +# Node.js gRPC Performance engine tests +######################################################################## + +cd $WORKDIR/node/performance/ + + diff --git a/bddtests/regression/node/README.md b/bddtests/regression/node/README.md new file mode 100644 index 00000000000..d32ff181536 --- /dev/null +++ b/bddtests/regression/node/README.md @@ -0,0 +1,10 @@ +## NODE tests, scripts, and supporting files +This folder is for black box tests that happen to be written using the +NODE language. +Testscripts for testing the API of the Node SDK and hyperledger/fabric +unit tests belong elsewhere, in their own repository. + +## SETUP + +## USAGE + diff --git a/bddtests/regression/node/performance/README.md b/bddtests/regression/node/performance/README.md new file mode 100644 index 00000000000..39bb602fc73 --- /dev/null +++ b/bddtests/regression/node/performance/README.md @@ -0,0 +1,33 @@ +## Performance test engine, scripts, and supporting files +Overview. + +## SETUP + +## USAGE + + +### Examples + + +### Examples - Daily Performance Tests: + +Stress tests: example02 chaincode, node, gRPC + +1. send invokes to all 4 peers for 3 min, each thread sends invokes to each of + the 4 peers +2. send queries to all 4 peers for 3 min, each thread sends queries to each of + the 4 peers + +Concurrency tests: auction chaincode, node, gRPC + +1. send 4000 concurrnt invokes with 1kb-2kb random payload, each thread sends + 1000 invokes to each of the 4 peers +2. send 4000 concurrnt queries, each thread sends 1000 queries to each of + the 4 peers + +### Examples - Long Run Performance Tests: + +1. send 1 invoke with 1kb-2kb random payload per second use auction chaincode + for 72 hours +2. still to add another test: mix (invoke followed by query)... + diff --git a/bddtests/regression/results/README.md b/bddtests/regression/results/README.md new file mode 100644 index 00000000000..c105ba9c7fd --- /dev/null +++ b/bddtests/regression/results/README.md @@ -0,0 +1,8 @@ +## regression_results +Automation results and logfiles for Regression Test Suites, for major releases. + +Standard naming format to use for folders: +``` + __ + v061_abc0def_20161129 +```