diff --git a/bin/test_compressed_resources.sh b/bin/test_compressed_resources.sh index b225107..81c96da 100755 --- a/bin/test_compressed_resources.sh +++ b/bin/test_compressed_resources.sh @@ -318,9 +318,13 @@ get_compressed_response () { /usr/bin/curl $curl_opts --compressed --dump-header $header_file $location > $compressed_content status_code=$? if [ $status_code -ne 0 ]; then + success=false + message="Request for compressed content failed" print_log_message -E "$script_name: curl failed ($status_code) on resource: $location" - clean_up_and_exit -d "$tmp_dir" $status_code + return 3 fi + + return 0 } parse_compressed_response () { @@ -333,7 +337,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_response_code failed ($status_code) to parse response code" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the Date response header @@ -342,7 +345,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the Last-Modified response header @@ -351,7 +353,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the ETag response header @@ -360,7 +361,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the Content-Length response header @@ -369,7 +369,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the Content-Type response header @@ -378,7 +377,6 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi # get the Content-Encoding response header @@ -387,8 +385,9 @@ parse_compressed_response () { status_code=$? if [ $status_code -ne 0 ]; then print_log_message -E "$script_name: get_header_value failed ($status_code) to parse response header: $header_name" - clean_up_and_exit -d "$tmp_dir" $status_code fi + + return 0 } test_compressed_response () { @@ -396,15 +395,16 @@ test_compressed_response () { local status_code # was the response actually compressed? - success=true if [ "$response_code" -ne 200 ]; then - print_log_message -E "$script_name: unexpected response ($response_code) on resource: $location" + success=false message="Unexpected response code: $response_code" - return + print_log_message -E "$script_name: unexpected response ($response_code) on resource: $location" + return 0 elif [ -z "$content_encoding" ]; then - print_log_message -E "$script_name: Content-Encoding response header not found" + success=false message="Content-Encoding response header not found" - return + print_log_message -E "$script_name: Content-Encoding response header not found" + return 0 fi # TODO: Check the cached resource for Content-Encoding response header @@ -414,12 +414,16 @@ test_compressed_response () { status_code=$? if [ $status_code -eq 1 ]; then # metadata must be cached + success=false + message="Uncompressed content not found" print_log_message -E "$script_name: metadata file not cached: $location" - clean_up_and_exit -d "$tmp_dir" 1 + return 0 fi if [ $status_code -gt 1 ]; then + success=false + message="Request for uncompressed content failed" print_log_message -E "$script_name: conditional_get failed ($status_code) on location: $location" - clean_up_and_exit -d "$tmp_dir" $status_code + return 0 fi # compare the compressed and uncompressed content @@ -427,22 +431,35 @@ test_compressed_response () { /usr/bin/diff -q $compressed_content $uncompressed_content status_code=$? if [ $status_code -ne 0 ]; then + success=false + message="Integrity of compressed metadata NOT confirmed" print_log_message -C "$script_name: diff failed ($status_code) on resource: $location" - clean_up_and_exit -d "$tmp_dir" 3 + return 0 fi + print_log_message -D "$script_name: compressed and uncompressed resources are identical" + + # success message="Integrity of compressed metadata confirmed" + return 0 } print_output_file () { + local status_code + # begin output list printf "[\n" while true; do + success=true + get_compressed_response "$1" - parse_compressed_response - test_compressed_response + status_code=$? + if [ $status_code -eq 0 ]; then + parse_compressed_response + test_compressed_response + fi append_json_object shift; (( "$#" )) || break