#!/bin/bash ## ## Copyright contributors to Hyperledger Besu. ## ## 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. ## ## SPDX-License-Identifier: Apache-2.0 ## export TEST_PATH=./tests export GOSS_PATH=$TEST_PATH/goss-linux-${architecture} export GOSS_OPTS="$GOSS_OPTS --format junit" export GOSS_FILES_STRATEGY=cp DOCKER_IMAGE=$1 DOCKER_FILE="${2:-$PWD/Dockerfile}" i=0 ## Checks on the Dockerfile GOSS_FILES_PATH=$TEST_PATH/00 \ bash $TEST_PATH/dgoss dockerfile $DOCKER_IMAGE $DOCKER_FILE \ > ./reports/00.xml || i=`expr $i + 1` # fail fast if we dont pass static checks if [[ $i != 0 ]]; then exit $i; fi # Test for normal startup with ports opened # we test that things listen on the right interface/port, not what interface the advertise # hence we dont set p2p-host=0.0.0.0 because this sets what its advertising to devp2p; the important piece is that it defaults to listening on all interfaces GOSS_FILES_PATH=$TEST_PATH/01 \ bash $TEST_PATH/dgoss run --sysctl net.ipv6.conf.all.disable_ipv6=1 $DOCKER_IMAGE \ --network=dev \ --rpc-http-enabled \ --rpc-ws-enabled \ --graphql-http-enabled \ > ./reports/01.xml || i=`expr $i + 1` if [[ $i != 0 ]]; then exit $i; fi # Test for directory permissions GOSS_FILES_PATH=$TEST_PATH/02 \ bash $TEST_PATH/dgoss run --sysctl net.ipv6.conf.all.disable_ipv6=1 -v besu-data:/var/lib/besu $DOCKER_IMAGE --data-path=/var/lib/besu \ --network=dev \ > ./reports/02.xml || i=`expr $i + 1` exit $i