From a30b6964d69886a2f8786a760eea962e90c10f79 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Tue, 20 Nov 2018 11:04:15 -0800 Subject: [PATCH] fastboot: propagate error for format command If fastboot format command fails, return error. Test: adb-remount-test.sh Bug: 109821005 Change-Id: Ic4e1a1dea8861028f19ac7f9c834d26e8adba56c --- fastboot/fastboot.cpp | 18 ++++++++---------- fs_mgr/tests/adb-remount-test.sh | 3 +++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index e066bfff7..8b238ee54 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -1466,15 +1466,13 @@ static void fb_perform_format( fprintf(stderr, "File system type %s not supported.\n", partition_type.c_str()); return; } - fprintf(stderr, "Formatting is not supported for file system with type '%s'.\n", - partition_type.c_str()); - return; + die("Formatting is not supported for file system with type '%s'.", + partition_type.c_str()); } int64_t size; if (!android::base::ParseInt(partition_size, &size)) { - fprintf(stderr, "Couldn't parse partition size '%s'.\n", partition_size.c_str()); - return; + die("Couldn't parse partition size '%s'.", partition_size.c_str()); } unsigned eraseBlkSize, logicalBlkSize; @@ -1484,17 +1482,14 @@ static void fb_perform_format( if (fs_generator_generate(gen, output.path, size, initial_dir, eraseBlkSize, logicalBlkSize)) { die("Cannot generate image for %s", partition.c_str()); - return; } fd.reset(open(output.path, O_RDONLY)); if (fd == -1) { - fprintf(stderr, "Cannot open generated image: %s\n", strerror(errno)); - return; + die("Cannot open generated image: %s", strerror(errno)); } if (!load_buf_fd(fd.release(), &buf)) { - fprintf(stderr, "Cannot read image: %s\n", strerror(errno)); - return; + die("Cannot read image: %s", strerror(errno)); } flash_buf(partition, &buf); return; @@ -1505,6 +1500,9 @@ failed: if (errMsg) fprintf(stderr, "%s", errMsg); } fprintf(stderr, "FAILED (%s)\n", fb->Error().c_str()); + if (!skip_if_not_supported) { + die("Command failed"); + } } static bool should_flash_in_userspace(const std::string& partition_name) { diff --git a/fs_mgr/tests/adb-remount-test.sh b/fs_mgr/tests/adb-remount-test.sh index 3bc6d403d..d9e017c2a 100755 --- a/fs_mgr/tests/adb-remount-test.sh +++ b/fs_mgr/tests/adb-remount-test.sh @@ -390,6 +390,9 @@ fastboot_getvar partition-type:scratch raw && echo "${ORANGE}[ INFO ]${NORMAL} expect fastboot erase scratch to fail" >&2 fastboot erase scratch && die "fastbootd can erase scratch" +echo "${ORANGE}[ INFO ]${NORMAL} expect fastboot format scratch to fail" >&2 +fastboot format scratch && + die "fastbootd can format scratch" fastboot reboot || die "can not reboot out of fastbootd" echo "${ORANGE}[ WARNING ]${NORMAL} adb after fastboot ... waiting 2 minutes"