mirror of
https://github.com/token2/snapd.git
synced 2026-03-13 11:15:47 -07:00
50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
summary: Ensure that the framebuffer interface works.
|
|
|
|
details: |
|
|
The framebuffer interface allows to access the /dev/fb* buffer files.
|
|
|
|
The test uses the test-snapd-framebuffer snap to write/read from /dev/fb0.
|
|
|
|
The test also checks the interface connection and disconnection works properly.
|
|
|
|
prepare: |
|
|
"$TESTSTOOLS"/snaps-state install-local test-snapd-framebuffer
|
|
|
|
execute: |
|
|
echo "The plug is not connected by default"
|
|
snap interfaces -i framebuffer | MATCH '^- +test-snapd-framebuffer:framebuffer'
|
|
|
|
if [ ! -e /dev/fb0 ]; then
|
|
# ensure this test runs on at least one system
|
|
if [[ "$SPREAD_SYSTEM" = ubuntu-core-16-arm-* ]]; then
|
|
echo "ubuntu-core-16-arm-32 must have a framebuffer"
|
|
exit 1
|
|
fi
|
|
echo "SKIP: Framebuffer not available on /dev/fb0"
|
|
exit 0
|
|
fi
|
|
|
|
echo "When the interface is connected"
|
|
snap connect test-snapd-framebuffer:framebuffer
|
|
|
|
echo "Then the snap is able to write in the framebuffer"
|
|
test-snapd-framebuffer.write "123"
|
|
MATCH "123" < /dev/fb0
|
|
|
|
echo "Then the snap is able to read from the framebuffer"
|
|
test-snapd-framebuffer.read
|
|
|
|
if [ "$(snap debug confinement)" = partial ] ; then
|
|
exit 0
|
|
fi
|
|
|
|
echo "When the plug is disconnected"
|
|
snap disconnect test-snapd-framebuffer:framebuffer
|
|
|
|
echo "Then the snap is not able to access the framebuffer"
|
|
if test-snapd-framebuffer.write "123" 2> call.error; then
|
|
echo "Expected permission error trying to write the framebuffer"
|
|
exit 1
|
|
fi
|
|
MATCH "Permission denied" < call.error
|