File: task.yaml

package info (click to toggle)
snapd 2.71-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 79,536 kB
  • sloc: ansic: 16,114; sh: 16,105; python: 9,941; makefile: 1,890; exp: 190; awk: 40; xml: 22
file content (74 lines) | stat: -rw-r--r-- 4,047 bytes parent folder | download | duplicates (3)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
summary: check that content interface works with parallel instances

details: |
    Use the content interface along with parallel instances of snaps. Verify
    that the content is made available to each snap instance when connected.
    Make sure that data access works.

# takes >1.5min to run in total
backends: [-autopkgtest]

environment:
    VAR/data: SNAP_DATA
    VAR/common: SNAP_COMMON
    VAR/snap: SNAP
    CONTENT/data: data
    CONTENT/common: common
    CONTENT/snap: snap

prepare: |
    snap set system experimental.parallel-instances=true

execute: |
    "$TESTSTOOLS"/snaps-state install-local test-snapd-content-advanced-slot

    "$TESTSTOOLS"/snaps-state install-local test-snapd-content-advanced-plug
    "$TESTSTOOLS"/snaps-state install-local-as test-snapd-content-advanced-plug test-snapd-content-advanced-plug_foo
    "$TESTSTOOLS"/snaps-state install-local-as test-snapd-content-advanced-plug test-snapd-content-advanced-plug_bar

    test-snapd-content-advanced-plug.sh -c "$(printf 'test ! -e $%s/target' "$VAR")"

    # connect one of the instances
    snap connect "test-snapd-content-advanced-plug_foo:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"

    # the target directory must exist in this instance only
    test-snapd-content-advanced-plug_foo.sh -c "$(printf 'test -d $%s/target' "$VAR")"
    test-snapd-content-advanced-plug.sh     -c "$(printf 'test ! -e $%s/target' "$VAR")"
    test-snapd-content-advanced-plug_bar.sh -c "$(printf 'test ! -e $%s/target' "$VAR")"
    # and the source directory exists too
    test-snapd-content-advanced-slot.sh     -c "$(printf 'test -d $%s/source' "$VAR")"

    # connect the rest
    snap connect "test-snapd-content-advanced-plug:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"
    snap connect "test-snapd-content-advanced-plug_bar:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"

    if [[ "$VAR" != "SNAP" ]]; then
        # write some test data in one of the instances
        # shellcheck disable=SC2016
        test-snapd-content-advanced-plug_bar.sh -c "$(printf 'echo hello from $SNAP_INSTANCE_NAME >> $%s/target/canary' "$VAR")"
        # should be visible in the other one now
        test-snapd-content-advanced-plug_foo.sh -c "$(printf 'cat $%s/target/canary' "$VAR")" | MATCH 'hello from test-snapd-content-advanced-plug_bar'
        # some more data
        # shellcheck disable=SC2016
        test-snapd-content-advanced-plug_foo.sh -c "$(printf 'echo hello from $SNAP_INSTANCE_NAME >> $%s/target/canary' "$VAR")"
        # all of it is visible
        test-snapd-content-advanced-plug.sh     -c "$(printf 'cat $%s/target/canary' "$VAR")" | MATCH 'hello from test-snapd-content-advanced-plug_bar
    hello from test-snapd-content-advanced-plug_foo'

        test-snapd-content-advanced-slot.sh     -c "$(printf 'cat $%s/source/canary' "$VAR")" | MATCH 'hello from test-snapd-content-advanced-plug_bar
    hello from test-snapd-content-advanced-plug_foo'

    else
        test-snapd-content-advanced-plug_foo.sh -c "$(printf 'cat $%s/target/canary' "$VAR")" | MATCH 'just some data'
        test-snapd-content-advanced-plug_bar.sh -c "$(printf 'cat $%s/target/canary' "$VAR")" | MATCH 'just some data'
        test-snapd-content-advanced-plug.sh     -c "$(printf 'cat $%s/target/canary' "$VAR")" | MATCH 'just some data'
    fi

    # when the interface is disconnected
    snap disconnect "test-snapd-content-advanced-plug:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"
    snap disconnect "test-snapd-content-advanced-plug_bar:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"
    snap disconnect "test-snapd-content-advanced-plug_foo:$CONTENT" "test-snapd-content-advanced-slot:$CONTENT"
    # the content is not visible anymore
    test-snapd-content-advanced-plug_bar.sh -c "$(printf 'test ! -e $%s/target/canary' "$VAR")"
    test-snapd-content-advanced-plug_foo.sh -c "$(printf 'test ! -e $%s/target/canary' "$VAR")"
    test-snapd-content-advanced-plug.sh     -c "$(printf 'test ! -e $%s/target/canary' "$VAR")"