File: task.yaml

package info (click to toggle)
snapd 2.72-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 80,412 kB
  • sloc: sh: 16,506; ansic: 16,211; python: 11,213; makefile: 1,919; exp: 190; awk: 58; xml: 22
file content (58 lines) | stat: -rw-r--r-- 2,862 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
summary: The appstream-metadata interface grants access to package metadata

details: |
    A number of Linux distributions use the AppStream format to
    provide metadata about both installed and available packages.

    The appstream-metadata interface makes this information available
    to a confined application by creating bind mounts from the host
    system to equivalent points in the sandbox.  Together with an
    interface granting access to the host system packaging system
    (e.g. via PackageKit), it is possible to confine a graphical
    package manager.

systems: [-ubuntu-core-*]

prepare: |
    "$TESTSTOOLS"/snaps-state install-local test-snapd-appstream-metadata

    # Set up some fake Appstream metadata on the host system
    mkdir -p /usr/share/metainfo
    echo "Appstream metainfo 1" > /usr/share/metainfo/test1.metainfo.xml
    mkdir -p /usr/share/appdata
    echo "Appstream metainfo 2" > /usr/share/appdata/test2.metainfo.xml
    mkdir -p /usr/share/app-info/xmls
    echo "Appstream app-info 1" > /usr/share/app-info/xmls/test1.xml
    mkdir -p /var/cache/app-info/xmls
    echo "Appstream app-info 2" > /var/cache/app-info/xmls/test2.xml
    # Apt exposes Appstream metadata via absolute symlinks to
    # /var/lib/apt/lists
    mkdir -p /var/lib/apt/lists
    echo "Appstream app-info 3" | gzip -c > /var/lib/apt/lists/test3.yml.gz
    mkdir -p /var/lib/app-info/yaml
    ln -s /var/lib/apt/lists/test3.yml.gz /var/lib/app-info/yaml

restore: |
    rm -f /usr/share/metainfo/test1.metainfo.xml
    rm -f /usr/share/appdata/test2.metainfo.xml
    rm -f /usr/share/app-info/xmls/test1.xml
    rm -f /var/cache/app-info/xmls/test2.xml
    rm -f /var/lib/app-info/yaml/test3.yml.gz
    rm -f /var/lib/apt/lists/test3.yml.gz

execute: |
    echo "The plug is disconnected by default"
    snap connections test-snapd-appstream-metadata | MATCH "appstream-metadata +test-snapd-appstream-metadata:appstream-metadata +- +-"

    echo "The plug can be connected"
    snap connect test-snapd-appstream-metadata:appstream-metadata
    snap connections test-snapd-appstream-metadata | MATCH "appstream-metadata +test-snapd-appstream-metadata:appstream-metadata +:appstream-metadata +manual"

    echo "Appstream metadata is now available from the sandbox"
    test-snapd-appstream-metadata.sh -c "cat /usr/share/metainfo/test1.metainfo.xml" | MATCH "Appstream metainfo 1"
    test-snapd-appstream-metadata.sh -c "cat /usr/share/appdata/test2.metainfo.xml" | MATCH "Appstream metainfo 2"

    test-snapd-appstream-metadata.sh -c "cat /usr/share/app-info/xmls/test1.xml" | MATCH "Appstream app-info 1"
    test-snapd-appstream-metadata.sh -c "cat /var/cache/app-info/xmls/test2.xml" | MATCH "Appstream app-info 2"

    test-snapd-appstream-metadata.sh -c "cat /var/lib/app-info/yaml/test3.yml.gz" | gunzip -c | MATCH "Appstream app-info 3"