aboutsummaryrefslogtreecommitdiff
path: root/scripts/testing/maint-scenarios/22-orphan-remove.sh
blob: 8412128d2e78399d854c377dd3aa085a4e7b7444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# shellcheck shell=bash disable=SC2034  # sourced by run-maint-scenarios.sh
# Scenario: a real orphan is created, detected, and removed by name.
#
# Installing `tree` --asdeps with no dependents makes it a true orphan
# (pacman -Qtdq lists it). The remedy is item-based: maint fix orphan_remove
# tree. Assert covers both the package state and the metric verdict.
SCENARIO_DESC="orphan package removed via the item-based remedy"
SCENARIO_GROUP="packages"
SCENARIO_PROFILES="any"

scenario_break() {
    mexec "pacman -S --noconfirm --asdeps tree && pacman -Qtdq | grep -qx tree"
}

scenario_fix() {
    mfix orphan_remove tree
}

scenario_assert() {
    mexec "! pacman -Qi tree >/dev/null 2>&1 && ! pacman -Qtdq | grep -qx tree" \
        && massert_metric pkg_orphans ok
}