github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/bin/run_tests (about) 1 #!/bin/bash 2 # 3 # Copyright 2017 Intel Corporation 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 # ------------------------------------------------------------------------------ 17 18 # MODULE_LIST determines the order in which modules are run. 19 # Quicker tests should run before slower ones. 20 MODULE_LIST=" 21 signing 22 cli 23 rest_api 24 poet 25 settings 26 identity 27 block_info 28 validator 29 python_sdk 30 rust_sdk 31 integration 32 " 33 34 usage() { 35 echo "Usage:" 36 echo " $0 [-m Module] [-x Module] [-i Module]" 37 echo " (-m, -x and -i can be passed multiple times)" 38 echo "" 39 echo "Options:" 40 echo " -h print usage and exit" 41 echo " -m Module only run tests of specified module" 42 echo " -x Module exclude the tests of specified module" 43 echo " -i Module include the tests of specified module" 44 echo "" 45 echo "Current modules: $MODULE_LIST" 46 } 47 48 # Exit on non-zero exit code from subcommand 49 set -e 50 # Set sawtooth-core project directory relative to this file 51 PROJECT_DIR=$(cd $(dirname $(dirname $0)) && pwd) 52 53 # Make sawtooth scripts accessible 54 PATH=$PROJECT_DIR/bin:$PATH 55 56 if [ ! -d "$PROJECT_DIR/coverage" ]; then 57 mkdir $PROJECT_DIR/coverage 58 fi 59 60 # Default args 61 MODULES="" 62 EXCLUDE="" 63 INCLUDE="" 64 65 while getopts i:x:m:h opt 66 do 67 case $opt in 68 h) 69 usage 70 exit 0 71 ;; 72 m) 73 MODULES="$MODULES $OPTARG" 74 ;; 75 x) 76 EXCLUDE="$EXCLUDE $OPTARG" 77 ;; 78 i) 79 INCLUDE="$INCLUDE $OPTARG" 80 ;; 81 82 \?) 83 echo "Invalid option: -$OPTARG" >&2 84 exit 2 85 ;; 86 esac 87 done 88 89 # If no '-m' flags are passed, run these modules 90 if [[ $MODULES = "" ]] 91 then 92 MODULES=$MODULE_LIST 93 fi 94 95 MODULES="$INCLUDE $MODULES" 96 97 main() { 98 99 # Start in project directory 100 cd $PROJECT_DIR 101 102 for module in $MODULES 103 do 104 105 # Check if we are skipping this module 106 skip=0 107 for exclude in $EXCLUDE 108 do 109 if [[ $module == $exclude ]] 110 then 111 skip=1 112 break 113 fi 114 done 115 116 if [[ $skip == 1 ]] 117 then 118 echo "[---Skipping $module tests---]" 119 else 120 echo "[---Running $module tests---]" 121 case $module in 122 signing) 123 test_signing 124 ;; 125 cli) 126 test_cli 127 ;; 128 rest_api) 129 test_rest_api 130 ;; 131 poet) 132 test_poet_cli 133 test_poet_common 134 test_poet_core 135 test_poet_simulator 136 test_poet_families 137 test_ias 138 ;; 139 poet_cli) 140 test_poet_cli 141 ;; 142 poet_common) 143 test_poet_common 144 ;; 145 poet_core) 146 test_poet_core 147 ;; 148 poet_simulator) 149 test_poet_simulator 150 ;; 151 poet_families) 152 test_poet_families 153 ;; 154 ias) 155 test_ias 156 ;; 157 settings) 158 test_settings 159 ;; 160 identity) 161 test_identity 162 ;; 163 block_info) 164 test_block_info 165 ;; 166 validator) 167 test_validator 168 ;; 169 go_sdk) 170 test_go_sdk 171 ;; 172 java_sdk) 173 test_java_sdk 174 ;; 175 javascript_sdk) 176 test_javascript_sdk 177 ;; 178 python_sdk) 179 test_python_sdk 180 ;; 181 rust_sdk) 182 test_rust_sdk 183 ;; 184 integration) 185 test_integration 186 ;; 187 deployment) 188 test_deployment 189 ;; 190 *) 191 echo "Module '$module' not found." 192 ;; 193 esac 194 fi 195 done 196 } 197 198 test_signing() { 199 run_docker_test ./signing/tests/unit_signing.yaml 200 copy_coverage .coverage.signing 201 } 202 203 test_cli() { 204 run_docker_test ./cli/tests/unit_cli.yaml 205 copy_coverage .coverage.cli 206 run_docker_test test_peer_list 207 copy_coverage .coverage.peer_list 208 run_docker_test ./adm/unit_sawadm.yaml 209 } 210 211 test_rest_api() { 212 run_docker_test ./rest_api/tests/unit_rest_api.yaml 213 copy_coverage .coverage.rest_api 214 } 215 216 test_poet_cli() { 217 run_docker_test ./consensus/poet/cli/tests/unit_poet_cli.yaml 218 copy_coverage .coverage.poet_cli 219 } 220 221 test_poet_common() { 222 run_docker_test ./consensus/poet/common/tests/unit_poet_common.yaml 223 copy_coverage .coverage.poet_common 224 } 225 226 test_poet_core() { 227 run_docker_test ./consensus/poet/core/tests/unit_poet_core.yaml 228 copy_coverage .coverage.poet_core 229 } 230 231 test_poet_simulator() { 232 run_docker_test ./consensus/poet/simulator/tests/unit_poet_simulator.yaml 233 copy_coverage .coverage.poet_simulator 234 } 235 236 test_poet_families() { 237 run_docker_test ./consensus/poet/families/tests/test_tp_validator_registry.yaml 238 copy_coverage .coverage.poet_families 239 } 240 241 test_ias() { 242 run_docker_test ./utility/ias_client/tests/unit_ias_client.yaml 243 copy_coverage .coverage.ias 244 } 245 246 test_settings() { 247 run_docker_test ./families/settings/tests/test_tp_settings.yaml 248 copy_coverage .coverage.config 249 run_docker_test test_config_smoke 250 copy_coverage .coverage.test_config_smoke 251 } 252 253 test_identity() { 254 run_docker_test ./families/identity/tests/test_tp_identity.yaml 255 copy_coverage .coverage.identity 256 } 257 258 test_block_info() { 259 run_docker_test ./families/block_info/tests/test_tp_block_info.yaml 260 copy_coverage .coverage.block_info 261 run_docker_test test_block_info_injector 262 copy_coverage .coverage.block_info_injector 263 } 264 265 test_validator() { 266 run_docker_test ./validator/tests/unit_validator.yaml 267 copy_coverage .coverage.validator 268 run_docker_test test_events_and_receipts 269 copy_coverage .coverage.test_events_and_receipts 270 run_docker_test test_namespace_restriction 271 copy_coverage .coverage.namespace_restriction 272 run_docker_test test_state_verifier --timeout 30 273 run_docker_test ./validator/tests/unit_rust_validator.yaml 274 } 275 276 test_go_sdk() { 277 run_docker_test ./sdk/go/tests/unit_go_client.yaml 278 run_docker_test ./sdk/examples/intkey_python/tests/test_tp_intkey_go.yaml 279 run_docker_test ./sdk/examples/xo_python/tests/test_tp_xo_go.yaml 280 copy_coverage .coverage.go_sdk 281 run_docker_test test_xo_smoke_go 282 copy_coverage .coverage.test_xo_smoke_go 283 run_docker_test test_intkey_smoke_go 284 copy_coverage .coverage.test_intkey_smoke_go 285 } 286 287 test_java_sdk() { 288 run_docker_test ./sdk/examples/intkey_python/tests/test_tp_intkey_java.yaml 289 copy_coverage .coverage.java_sdk 290 run_docker_test test_intkey_smoke_java 291 copy_coverage .coverage.test_intkey_smoke_java 292 run_docker_test ./sdk/examples/xo_python/tests/test_tp_xo_java.yaml 293 copy_coverage .coverage.test_tp_xo_java 294 run_docker_test test_xo_smoke_java 295 copy_coverage .coverage.test_xo_java_smoke 296 } 297 298 test_javascript_sdk() { 299 run_docker_test ./sdk/examples/intkey_python/tests/test_tp_intkey_javascript.yaml 300 copy_coverage .coverage.test_tp_intkey_javascript 301 run_docker_test test_intkey_smoke_javascript 302 copy_coverage .coverage.test_intkey_smoke_javascript 303 run_docker_test ./sdk/examples/xo_python/tests/test_tp_xo_javascript.yaml 304 copy_coverage .coverage.test_tp_xo_javascript 305 run_docker_test test_xo_smoke_javascript 306 copy_coverage .coverage.test_xo_smoke_javascript 307 } 308 309 test_python_sdk() { 310 run_docker_test ./sdk/python/tests/unit_python_sdk.yaml 311 copy_coverage .coverage.test_python_sdk 312 run_docker_test ./sdk/examples/intkey_python/tests/test_tp_intkey_python.yaml 313 copy_coverage .coverage.test_tp_intkey_python 314 run_docker_test ./sdk/examples/xo_python/tests/test_tp_xo_python.yaml 315 copy_coverage .coverage.test_tp_xo_python 316 run_docker_test test_intkey_smoke_python 317 copy_coverage .coverage.test_intkey_smoke_python 318 run_docker_test test_workload 319 copy_coverage .coverage.workload 320 run_docker_test test_xo_smoke_python 321 copy_coverage .coverage.test_xo_smoke_python 322 run_docker_test test_two_families 323 copy_coverage .coverage.two_families 324 run_docker_test test_intkey_cli 325 copy_coverage .coverage.intkey_cli 326 } 327 328 test_rust_sdk() { 329 run_docker_test ./sdk/rust/unit_rust_sdk.yaml 330 run_docker_test ./perf/sawtooth_workload/unit_perf_workload.yaml 331 run_docker_test ./perf/intkey_workload/unit_intkey_workload.yaml 332 run_docker_test ./perf/smallbank_workload/unit_smallbank_workload.yaml 333 run_docker_test ./perf/sawtooth_perf/unit_sawtooth_perf.yaml 334 run_docker_test ./sdk/examples/intkey_python/tests/test_tp_intkey_rust.yaml 335 run_docker_test ./sdk/examples/xo_python/tests/test_tp_xo_rust.yaml 336 run_docker_test test_intkey_smoke_rust 337 } 338 339 test_integration() { 340 run_docker_test test_dynamic_network --timeout 600 341 copy_coverage .coverage.test_dynamic_network 342 run_docker_test test_basic_auth_proxy 343 copy_coverage .coverage.test_basic_auth_proxy 344 run_docker_test test_transactor_permissioning 345 copy_coverage .coverage.test_transactor_permissioning 346 run_docker_test test_poet_liveness 347 copy_coverage .coverage.test_poet_liveness 348 } 349 350 test_deployment() { 351 run_docker_test test_systemd_services 352 } 353 354 copy_coverage() { 355 mv -f .coverage $PROJECT_DIR/coverage/$1 356 } 357 358 main