You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							88 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							88 lines
						
					
					
						
							2.8 KiB
						
					
					
				| #!/usr/bin/env bash | |
|  | |
| CONTAINER_NAME=${CONTAINER_NAME:-s3test-instance} | |
| CONF_FILE=${CONF_FILE:-s3tests.conf} | |
| WEED_BIN=${WEED_BIN:-../../../weed/weed} | |
| TEST_RAW_OUTPUT_FILE=${TEST_RAW_OUTPUT_FILE:-compat.raw.txt} | |
| TEST_PROCESSED_OUTPUT_FILE=${TEST_PROCESSED_OUTPUT_FILE:-compat.summary.txt} | |
| 
 | |
| # Set up debugging for this bash script if DEBUG is set | |
| if [ -n "${DEBUG}" ]; then | |
|     echo -e "DEBUG set [${DEBUG}], enabling debugging output..."; | |
|     set -ex | |
| fi | |
| 
 | |
| # Reset from possible previous test run | |
| killall -9 weed || echo "already stopped" | |
| rm -Rf tmp | |
| mkdir tmp | |
| docker stop $CONTAINER_NAME || echo "already stopped" | |
| 
 | |
| # Ensure ulimit is set to reasonable value | |
| ulimit -n 10000 | |
| 
 | |
| # Start weed w/ filer + s3 in the background | |
| $WEED_BIN server \ | |
|           -filer \ | |
|           -s3 \ | |
|           -volume.max 0 \ | |
|           -master.volumeSizeLimitMB 5 \ | |
|           -dir "$(pwd)/tmp" \ | |
|           1>&2>weed.log & | |
| 
 | |
| # Wait for master to start up | |
| echo -e "\n[info] waiting for master @ 9333..."; | |
| until curl --output /dev/null --silent --head --fail http://127.0.0.1:9333; do | |
|     printf '.'; | |
|     sleep 5; | |
| done | |
| sleep 3; | |
| 
 | |
| # Wait for s3 to start up | |
| echo -e "\n[info] waiting for S3 @ 8333..."; | |
| until curl --output /dev/null --silent --fail http://127.0.0.1:8333; do | |
|     printf '.'; | |
|     sleep 5; | |
| done | |
| sleep 3; | |
| 
 | |
| # Determine whether docker net | |
| DOCKER_NET_HOST_ARGS="" | |
| if [ -n "${DOCKER_NET_HOST}" ]; then | |
|     DOCKER_NET_HOST_ARGS="--net=host" | |
|     echo -e "\n[info] setting docker to het nost" | |
| fi | |
| 
 | |
| echo -e "\n[warn] You may have to run with UNFILTERED=y to disable output filtering, if you get the broken pipe error"; | |
| echo -e "\n[info] running tests with unfiltered output..."; | |
| docker run \ | |
|        --name $CONTAINER_NAME \ | |
|        --rm \ | |
|        ${DOCKER_NET_HOST_ARGS} \ | |
|        -e S3TEST_CONF=$CONF_FILE \ | |
|        -v "$(pwd)"/$CONF_FILE:/s3-tests/s3tests.conf \ | |
|        -it \ | |
|        s3tests \ | |
|        ./virtualenv/bin/nosetests \ | |
|        s3tests_boto3/functional/test_s3.py \ | |
|        -v \ | |
|        -a 'resource=object,!bucket-policy,!versioning,!encryption' \ | |
|     | tee ${TEST_RAW_OUTPUT_FILE} | |
| 
 | |
| # If the summary logs are present, process them | |
| if [ -f "${TEST_RAW_OUTPUT_FILE}" ]; then | |
|     cat ${TEST_RAW_OUTPUT_FILE} | sed -n -e '/botocore.hooks/!p;//q' | tee ${TEST_PROCESSED_OUTPUT_FILE} | |
|     echo -e "\n[info] ✅ Successfully wrote processed output @ [${TEST_PROCESSED_OUTPUT_FILE}]"; | |
|     if [ -z "${TEST_KEEP_RAW_OUTPUT}" ]; then | |
|         echo -e "\n[info] removing test raw output file @ [${TEST_RAW_OUTPUT_FILE}] (to disable this, set TEST_KEEP_RAW_OUTPUT=y)..."; | |
|         rm -rf ${TEST_RAW_OUTPUT_FILE}; | |
|     fi | |
| else | |
|     echo -e "\n[warn] failed to find raw output @ [${TEST_RAW_OUTPUT_FILE}]"; | |
| fi | |
| 
 | |
| echo -e "\n[info] stopping [${CONTAINER_NAME}] container..."; | |
| docker stop $CONTAINER_NAME || echo "[info] already stopped"; | |
| 
 | |
| echo -e "\n[info] stopping seaweedfs processes (all, via kill -9)..."; | |
| killall -9 weed;
 |