#!/bin/bash set -e # File to track command output, so we can check for successful completion OUTPUT_FILE=$(mktemp) # If the command output does not contain a final confirmation of success, exit 1 confirm_success () { if grep -q "Cleanup and validation completed" "$OUTPUT_FILE"; then rm -f "$OUTPUT_FILE" else exit 1 fi } echo "Testing snapd-seed-glue with hello..." /usr/bin/snapd-seed-glue --verbose --seed hello_test hello > >(tee -a "$OUTPUT_FILE") 2>&1 confirm_success echo "Add htop to the same seed..." /usr/bin/snapd-seed-glue --verbose --seed hello_test hello htop > >(tee -a "$OUTPUT_FILE") 2>&1 confirm_success echo "Remove htop and replace it with btop..." /usr/bin/snapd-seed-glue --verbose --seed hello_test hello btop > >(tee -a "$OUTPUT_FILE") 2>&1 confirm_success echo "Confirm that non-existent snaps will fail..." /usr/bin/snapd-seed-glue --verbose --seed test_dir absolutelyridiculouslongnamethatwilldefinitelyneverexist > >(tee -a "$OUTPUT_FILE") 2>&1 || echo "Fail expected" if ! grep -q "cannot install snap \"absolutelyridiculouslongnamethatwilldefinitelyneverexist\": snap not found" "$OUTPUT_FILE"; then exit 1 fi