From ee0b21b31c48c2d9bb65a020643271d435edb0d9 Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Tue, 13 Oct 2020 15:03:20 +0800 Subject: futility: update: support multi-line quirks To support loading quirks from external files, we want to skip tab (\t) and new line characters (\n, \r). BRANCH=none BUG=b:169284414 TEST=make runtests Change-Id: If314d6cf36907837ce9c36b73337976ee0c6fad1 Signed-off-by: Hung-Te Lin Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2467305 Reviewed-by: Karthikeyan Ramasubramanian Commit-Queue: Karthikeyan Ramasubramanian --- futility/updater.c | 8 ++++++-- tests/futility/test_update.sh | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/futility/updater.c b/futility/updater.c index 8048a5b7..3e3dce2d 100644 --- a/futility/updater.c +++ b/futility/updater.c @@ -188,14 +188,18 @@ static int setup_config_quirks(const char *quirks, struct updater_config *cfg) int r = 0; char *buf = strdup(quirks); char *token; + const char *delimiters = ", \n\r\t"; - token = strtok(buf, ", "); - for (; token; token = strtok(NULL, ", ")) { + token = strtok(buf, delimiters); + for (; token; token = strtok(NULL, delimiters)) { const char *name = token; char *equ = strchr(token, '='); int i, value = 1; struct quirk_entry *entry = cfg->quirks; + if (!*name) + continue; + if (equ) { *equ = '\0'; value = strtol(equ + 1, NULL, 0); diff --git a/tests/futility/test_update.sh b/tests/futility/test_update.sh index 57b3f460..655bab4a 100755 --- a/tests/futility/test_update.sh +++ b/tests/futility/test_update.sh @@ -327,6 +327,11 @@ test_update "Full update (--quirks enlarge_image)" \ "${FROM_IMAGE}.large" "${TMP}.expected.large" --quirks enlarge_image \ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 +test_update "Full update (multi-line --quirks enlarge_image)" \ + "${FROM_IMAGE}.large" "${TMP}.expected.large" --quirks ' + enlarge_image + ' -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 + test_update "Full update (--quirks unlock_me_for_update)" \ "${FROM_IMAGE}" "${TMP}.expected.me_unlocked" \ --quirks unlock_me_for_update \ -- cgit v1.2.1