diff --git a/lib/common.sh b/lib/common.sh index 5863fcf..f97a537 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -247,11 +247,11 @@ function fetch_package_to_test() { # Force the branch master if no branch is specified. if [ -z "$gitbranch" ] then - if git ls-remote --quiet --exit-code $path_to_package_to_test master + if git ls-remote --quiet --exit-code $path_to_package_to_test master >/dev/null then gitbranch="-b master" else - if git ls-remote --quiet --exit-code $path_to_package_to_test stable + if git ls-remote --quiet --exit-code $path_to_package_to_test stable >/dev/null then gitbranch="-b stable" else diff --git a/lib/lxc.sh b/lib/lxc.sh index f3d23ef..76685e7 100644 --- a/lib/lxc.sh +++ b/lib/lxc.sh @@ -84,7 +84,8 @@ LOAD_LXC_SNAPSHOT () { LXC_STOP $LXC_NAME - lxc restore $LXC_NAME $snapname + lxc restore $LXC_NAME $snapname || log_error "Failed to restore snapshot ? The next step may miserably crash because of this ... if this happens to often, maybe restarting the LXD daemon can help ..." + lxc start $LXC_NAME _LXC_START_AND_WAIT $LXC_NAME } @@ -100,7 +101,7 @@ LXC_EXEC () { start_timer # Execute the command given in argument in the container and log its results. - lxc exec $LXC_NAME --env PACKAGE_CHECK_EXEC=1 -t -- /bin/bash -c "$cmd" | tee -a "$complete_log" $current_test_log + lxc exec $LXC_NAME --env PACKAGE_CHECK_EXEC=1 -t -- /bin/bash -c "$cmd" | tee -a "$full_log" $current_test_log # Store the return code of the command local returncode=${PIPESTATUS[0]} @@ -135,7 +136,7 @@ LXC_RESET () { LXC_STOP $LXC_NAME if lxc info $LXC_NAME >/dev/null 2>/dev/null; then - local current_storage=$(lxc list $LXC_NAME --format json --columns b | jq '.[].expanded_devices.root.pool') + local current_storage=$(lxc list $LXC_NAME --format json --columns b | jq -r '.[].expanded_devices.root.pool') swapoff "$(lxc storage get $current_storage source)/containers/$LXC_NAME/rootfs/swap" 2>/dev/null fi @@ -145,7 +146,7 @@ LXC_RESET () { _LXC_START_AND_WAIT() { - restart_container() + restart_container() { LXC_STOP $1 lxc start "$1" diff --git a/lib/tests.sh b/lib/tests.sh index ecd16a9..5fe7a31 100644 --- a/lib/tests.sh +++ b/lib/tests.sh @@ -277,7 +277,7 @@ _VALIDATE_THAT_APP_CAN_BE_ACCESSED () { then # Print the title of the page local page_title=$(grep "" "$curl_output" | cut --delimiter='>' --fields=2 | cut --delimiter='<' --fields=1) - local page_extract=$(lynx -dump -force_html "$curl_output" | head --lines 20 | tee -a "$complete_log") + local page_extract=$(lynx -dump -force_html "$curl_output" | head --lines 20 | tee -a "$full_log") # Check if the page title is neither the YunoHost portail or default NGINX page if [ "$page_title" = "YunoHost Portal" ] @@ -355,8 +355,8 @@ TEST_PACKAGE_LINTER () { start_test "Package linter" # Execute package linter and linter_result gets the return code of the package linter - ./package_linter/package_linter.py "$package_path" | tee -a "$complete_log" - ./package_linter/package_linter.py "$package_path" --json | tee -a "$complete_log" > $current_test_results + ./package_linter/package_linter.py "$package_path" | tee -a "$full_log" + ./package_linter/package_linter.py "$package_path" --json | tee -a "$full_log" > $current_test_results return ${PIPESTATUS[0]} } diff --git a/lib/tests_coordination.sh b/lib/tests_coordination.sh index 7fefd3a..01c82e2 100644 --- a/lib/tests_coordination.sh +++ b/lib/tests_coordination.sh @@ -5,13 +5,17 @@ source lib/tests.sh source lib/witness.sh source lib/legacy.sh -readonly complete_log="./Complete-${WORKER_ID}.log" +readonly full_log="./full_log_${WORKER_ID}.log" +readonly result_json="./results_${WORKER_ID}.json" +readonly summary_png="./summary_${WORKER_ID}.png" # Purge some log files -rm -f "$complete_log" && touch "$complete_log" +rm -f "$full_log" && touch "$full_log" +rm -f $result_json +rm -f $summary_png -# Redirect fd 3 (=debug steam) to complete log -exec 3>>$complete_log +# Redirect fd 3 (=debug steam) to full log +exec 3>>$full_log #================================================= # Misc test helpers & coordination @@ -84,15 +88,18 @@ run_all_tests() { # Print the final results of the tests log_title "Tests summary" - python3 lib/analyze_test_results.py $TEST_CONTEXT 2> ./results-${WORKER_ID}.json - [[ -e "$TEST_CONTEXT/summary.png" ]] && cp "$TEST_CONTEXT/summary.png" ./summary.png || rm -f summary.png + python3 lib/analyze_test_results.py $TEST_CONTEXT 2> $result_json + [[ -e "$TEST_CONTEXT/summary.png" ]] && cp "$TEST_CONTEXT/summary.png" $summary_png || rm -f $summary_png # Restore the started time for the timer starttime=$complete_start_timer # End the timer for the test stop_timer all_tests - echo "You can find the complete log of these tests in $(realpath $complete_log)" + if [[ "$IN_YUNORUNNER" != "1" ]] + then + echo "You can find the complete log of these tests in $(realpath $full_log)" + fi }