Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Improve error handling
Tom Scavo committed Jun 10, 2017
1 parent 92b0713 commit 50b3f82
Showing 1 changed file with 35 additions and 18 deletions.
53 changes: 35 additions & 18 deletions 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,24 +385,26 @@ 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 () {

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,35 +414,52 @@ 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
print_log_message -D "$script_name comparing compressed and uncompressed content"
/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

0 comments on commit 50b3f82

Please sign in to comment.