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