From a7afe652d6106269d76af2729e5a2a5a7f6092b5 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Thu, 7 Apr 2016 14:45:43 +1000 Subject: [PATCH] Fix disk usage report This was not well tested. Build the argument into a variable which can be eval()ed to produce the final output. Add the flag so we test this during functional tests. Add "-x" to dib invocations so we can more easily debug failures. Change-Id: Ifdc82627c520379b4124ccb9a4c2fe806c52c75c --- bin/disk-image-create | 13 ++++++++----- tests/run_functests.sh | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bin/disk-image-create b/bin/disk-image-create index baf60740..5973ebe4 100755 --- a/bin/disk-image-create +++ b/bin/disk-image-create @@ -331,6 +331,7 @@ if [ -n "$DIB_IMAGE_SIZE" ]; then du_size=$(echo "$DIB_IMAGE_SIZE" | awk '{printf("%d\n",$1 * 1024 *1024)}') else set +o xtrace + echo "Calculating image size (this may take a minute)..." du_output=$(sudo du -a -c -x ${TMP_BUILD_DIR}/built) # the last line is the total size from "-c". # scale this by 0.6 to create a slightly bigger image @@ -345,25 +346,27 @@ if [[ "${DIB_SHOW_IMAGE_USAGE:-0}" != 0 ]]; then du_output=$(sudo du -a -c -x ${TMP_BUILD_DIR}/built) fi + du_output_show="sort -nr | + numfmt --to=iec-i --padding=7 + --suffix=B --field=1 --from-unit=1024" + # by default show the 10MiB and greater files & directories -- a # dir with lots of little files will still show up, but this helps # signal:noise ratio if [[ ${DIB_SHOW_IMAGE_USAGE_FULL:-0} == 0 ]]; then # numfmt will start giving a decimal place when < 10MiB - du_output_limit="| egrep 'MiB|GiB|TiB|PiB' | grep -v '\..MiB'" + du_output_show+="| egrep 'MiB|GiB|TiB|PiB' | grep -v '\..MiB'" echo "=================================" echo "Image size report (files > 10MiB)" echo "=================================" else - du_output_limit="" echo "=================" echo "Image size report" echo "=================" fi - echo "$du_output" | sort -nr | \ - numfmt --to=iec-i --padding=7 --suffix=B --field=1 --from-unit=1024 \ - $du_output_limit + eval ${du_output_show} <<< "$du_output" + echo echo "===== end image size report =====" echo diff --git a/tests/run_functests.sh b/tests/run_functests.sh index 2e3f0069..6eb27260 100755 --- a/tests/run_functests.sh +++ b/tests/run_functests.sh @@ -32,6 +32,7 @@ function run_disk_element_test() { if break="after-error" break_outside_target=1 \ break_cmd="cp \$TMP_MOUNT_PATH/tmp/dib-test-should-fail /tmp/ 2>&1 > /dev/null || true" \ + DIB_SHOW_IMAGE_USAGE=1 \ ELEMENTS_PATH=$DIB_ELEMENTS:$DIB_ELEMENTS/$element/test-elements \ $DIB_CMD -x -t tar,qcow2 -o $dest_dir/image -n $element $test_element; then