Files
swupd-client/test/functional/update/update-json.bats
Otavio Pontes d2590a1b9e fullfile: Improve output of fullfile downloads
Print a "Validate downloaded files" message to separate 2 different progress bars
and improve the output when downloading extra fullfiles

Signed-off-by: Otavio Pontes <otavio.pontes@intel.com>
2019-10-18 09:27:25 -07:00

92 lines
5.7 KiB
Bash
Executable File

#!/usr/bin/env bats
# Author: Castulo Martinez
# Email: castulo.martinez@intel.com
load "../testlib"
test_setup() {
create_test_environment "$TEST_NAME"
create_bundle -L -n test-bundle -f /file1,/file2,/file3 "$TEST_NAME"
create_version "$TEST_NAME" 20 10
update_bundle "$TEST_NAME" test-bundle --update /file1
update_bundle "$TEST_NAME" test-bundle --update /file2
update_bundle "$TEST_NAME" test-bundle --add /file4
}
@test "UPD056: Updating a system using machine readable output" {
# the --json-output flag can be used so all the output of the update
# command is created as a JSON stream that can be read and parsed by other
# applications interested into knowing real time status of the command
run sudo sh -c "$SWUPD update --json-output $SWUPD_OPTS_PROGRESS"
assert_status_is 0
expected_output1=$(cat <<-EOM
[
{ "type" : "start", "section" : "update" },
{ "type" : "progress", "currentStep" : 1, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "load_manifests" },
{ "type" : "info", "msg" : "Update started" },
{ "type" : "info", "msg" : "Preparing to update from 10 to 20" },
{ "type" : "progress", "currentStep" : 1, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "load_manifests" },
{ "type" : "progress", "currentStep" : 2, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "run_preupdate_scripts" },
{ "type" : "progress", "currentStep" : 2, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "run_preupdate_scripts" },
{ "type" : "progress", "currentStep" : 3, "totalSteps" : 10, "stepCompletion" : 0, "stepDescription" : "download_packs" },
{ "type" : "info", "msg" : "Downloading packs for:" },
{ "type" : "info", "msg" : " - test-bundle" },
EOM
)
expected_output2=$(cat <<-EOM
{ "type" : "progress", "currentStep" : 3, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "download_packs" },
{ "type" : "info", "msg" : "Finishing packs extraction..." },
{ "type" : "progress", "currentStep" : 4, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "extract_packs" },
{ "type" : "progress", "currentStep" : 4, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "extract_packs" },
{ "type" : "progress", "currentStep" : 5, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "prepare_for_update" },
{ "type" : "info", "msg" : "Statistics for going from version 10 to version 20:" },
{ "type" : "info", "msg" : " changed bundles : 1" },
{ "type" : "info", "msg" : " new bundles : 0" },
{ "type" : "info", "msg" : " deleted bundles : 0" },
{ "type" : "info", "msg" : " changed files : 2" },
{ "type" : "info", "msg" : " new files : 1" },
{ "type" : "info", "msg" : " deleted files : 0" },
{ "type" : "progress", "currentStep" : 5, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "prepare_for_update" },
{ "type" : "progress", "currentStep" : 6, "totalSteps" : 10, "stepCompletion" : 0, "stepDescription" : "validate_fullfiles" },
{ "type" : "info", "msg" : "Validate downloaded files" },
{ "type" : "progress", "currentStep" : 6, "totalSteps" : 10, "stepCompletion" : 33, "stepDescription" : "validate_fullfiles" },
{ "type" : "progress", "currentStep" : 6, "totalSteps" : 10, "stepCompletion" : 66, "stepDescription" : "validate_fullfiles" },
{ "type" : "progress", "currentStep" : 6, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "validate_fullfiles" },
{ "type" : "progress", "currentStep" : 7, "totalSteps" : 10, "stepCompletion" : 0, "stepDescription" : "download_fullfiles" },
{ "type" : "info", "msg" : "No extra files need to be downloaded" },
{ "type" : "progress", "currentStep" : 7, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "download_fullfiles" },
{ "type" : "progress", "currentStep" : 8, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "extract_fullfiles" },
{ "type" : "progress", "currentStep" : 8, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "extract_fullfiles" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 0, "stepDescription" : "update_files" },
{ "type" : "info", "msg" : "Installing files..." },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 16, "stepDescription" : "update_files" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 33, "stepDescription" : "update_files" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 50, "stepDescription" : "update_files" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 66, "stepDescription" : "update_files" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 83, "stepDescription" : "update_files" },
{ "type" : "progress", "currentStep" : 9, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "update_files" },
{ "type" : "info", "msg" : "Update was applied" },
{ "type" : "progress", "currentStep" : 10, "totalSteps" : 10, "stepCompletion" : -1, "stepDescription" : "run_postupdate_scripts" },
{ "type" : "info", "msg" : "Calling post-update helper scripts" },
EOM
)
expected_output3=$(cat <<-EOM
\{ "type" : "info", "msg" : "Update took ... seconds, 0 MB transferred" \},
\{ "type" : "info", "msg" : "Update successful - System updated from version 10 to version 20" \},
\{ "type" : "progress", "currentStep" : 10, "totalSteps" : 10, "stepCompletion" : 100, "stepDescription" : "run_postupdate_scripts" \},
\{ "type" : "end", "section" : "update", "status" : 0 \}
\]
EOM
)
assert_in_output "$expected_output1"
assert_in_output "$expected_output2"
assert_regex_in_output "$expected_output3"
}