summary: Check basic core18 system functionality

details: |
    Validate basic functionalities are working for uc18. Check commands
    like: list, changes and install. And run a basic shell snap.

systems: [ubuntu-core-18-*]

execute: |
    echo "Check that the system snaps are there"
    snap list core18
    snap list snapd
    if snap list core; then
        echo "The old core snap is installed but should not"
        exit 1
    fi

    echo "Ensure that the system is fully seeded"
    snap changes | MATCH "Done.*Initialize system state"

    echo "Check that a simple shell snap"
    snap install test-snapd-sh-core18
    test-snapd-sh-core18.sh -c 'echo hello' | MATCH hello

    if python3 -m json.tool < /var/lib/snapd/system-key | grep '"build-id": ""'; then
        echo "The build-id of snapd must not be empty."
        exit 1
    fi

    echo "Ensure passwd/group is available for snaps"
    test-snapd-sh-core18.sh -c 'cat /var/lib/extrausers/passwd' | MATCH test

    # ensure apparmor works, see LP: 2024637
    systemctl status apparmor.service
    
    # reboot to double check that apparmor still works after the reboot
    # (LP: 2024637)
    if [ "$SPREAD_REBOOT" = 0 ]; then
        REBOOT
    fi
