Index: upload_symbols |
diff --git a/upload_symbols b/upload_symbols |
index 84de9ca561369d1b2125894dc74c94f2c60edb97..2f48aea4f218eca9d9dfd3eab900359e67e9b76f 100755 |
--- a/upload_symbols |
+++ b/upload_symbols |
@@ -30,6 +30,7 @@ DUMP_SYMS="dump_syms.i386" |
SYM_UPLOAD="sym_upload.i386" |
CUMULATIVE_SIZE=0 |
+ANY_ERRORS=0 |
SYM_FILE=$(mktemp "/tmp/sym.XXXX") |
ERR_FILE=$(mktemp "/tmp/err.XXXX") |
@@ -80,6 +81,9 @@ function really_upload { |
return 0 |
} |
+# Dump given debug and text file to SYM_FILE. Returns 1 if any errors, even |
+# if they can be ignored, but only sets ANY_ERRORS if the error should not |
+# be ignored (and we should not proceed to upload). |
function dump_file { |
local debug_file="$1" |
local text_file="$2" |
@@ -90,10 +94,11 @@ function dump_file { |
# not consider such occurrences as errors. |
if grep -q "file contains no debugging information" "${ERR_FILE}"; then |
warn "No symbols found for ${text_file}" |
- return 0 |
+ return 1 |
fi |
error "Unable to dump symbols for ${text_file}:" |
cat "${ERR_FILE}" |
+ ANY_ERRORS=1 |
return 1 |
fi |
if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then |
@@ -110,6 +115,7 @@ function dump_file { |
if ! diff "${installed_sym}" "${SYM_FILE}"; then |
error "${installed_sym} differ from current sym file:" |
diff "${installed_sym}" "${SYM_FILE}" |
+ ANY_ERRORS=1 |
return 1 |
fi |
fi |
@@ -125,6 +131,7 @@ function upload_file { |
2> "${ERR_FILE}"; then |
error "Unable to upload symbols in ${SYM_FILE}:" |
cat "${ERR_FILE}" |
+ ANY_ERRORS=1 |
return 1 |
fi |
if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then |
@@ -134,7 +141,8 @@ function upload_file { |
return 0 |
} |
-# Convert and then upload the given debug file to the given URL. |
+# Convert and then upload the given debug file to the given URL. No |
+# return value. |
function process_file { |
local debug_file="$1" |
local upload_url="$2" |
@@ -162,7 +170,7 @@ function process_file { |
return 0 |
fi |
- dump_file "${debug_file}" "${text_file}" || return 1 |
+ dump_file "${debug_file}" "${text_file}" || return 0 |
[ ${FLAGS_dryrun} -eq ${FLAGS_TRUE} ] && return 0 |
@@ -200,15 +208,12 @@ function main() { |
AUTOTEST_ROOT="${SYSROOT}/usr/local/autotest" |
CUMULATIVE_SIZE=0 |
- local any_errors=0 |
if [ -z "${FLAGS_ARGV}" ]; then |
if [ ${FLAGS_dryrun} -eq ${FLAGS_FALSE} ]; then |
really_upload || exit 1 |
fi |
for debug_file in $(find "${DEBUG_ROOT}" -name \*.debug); do |
- if ! process_file "${debug_file}" "${upload_url}"; then |
- any_errors=1 |
- fi |
+ ! process_file "${debug_file}" "${upload_url}" |
done |
else |
for either_file in ${FLAGS_ARGV}; do |
@@ -216,7 +221,7 @@ function main() { |
either_file=${either_file%\'} |
if [ ! -f "${either_file}" ]; then |
error "Specified file ${either_file} does not exist" |
- any_errors=1 |
+ ANY_ERRORS=1 |
continue |
fi |
if [ "${either_file##*.}" == "debug" ]; then |
@@ -224,9 +229,7 @@ function main() { |
else |
debug_file="$(get_debug_for_text ${either_file})" |
fi |
- if ! process_file "${debug_file}" "${upload_url}"; then |
- any_errors=1 |
- fi |
+ ! process_file "${debug_file}" "${upload_url}"; |
done |
fi |
@@ -236,7 +239,9 @@ function main() { |
else |
info "Uploaded ${CUMULATIVE_SIZE}B of debug information" |
fi |
- [ ${any_errors} -ne 0 ] && die "Encountered problems" |
+ |
+ [ ${ANY_ERRORS} -ne 0 ] && die "Encountered problems" |
+ return 0 |
} |
main "$@" |