mirror of
https://github.com/flatpak/flatpak.git
synced 2026-01-02 12:58:04 -05:00
Similar to /tmp, applications might well use /dev/shm as an IPC rendezvous between instances, which wouldn't have worked without --device=shm until now. Because /dev/shm has specific characteristics (in particular it's meant to always be a tmpfs), we offload the actual storage into a subdirectory of the real /dev/shm. Because /dev/shm is a shared directory between all uids, we have to be extra-careful how we do this, which is why the test coverage here is important. This is done on an opt-in basis because of its extra complexity. Signed-off-by: Simon McVittie <smcv@collabora.com>
233 lines
5.2 KiB
Bash
Executable File
233 lines
5.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (C) 2019 Matthias Clasen
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the
|
|
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
# Boston, MA 02111-1307, USA.
|
|
|
|
set -euo pipefail
|
|
|
|
#FLATPAK=flatpak
|
|
. $(dirname $0)/libtest.sh
|
|
|
|
skip_revokefs_without_fuse
|
|
|
|
# This test looks for specific localized strings.
|
|
export LC_ALL=C
|
|
|
|
echo "1..17"
|
|
|
|
setup_repo
|
|
install_repo
|
|
|
|
${FLATPAK} complete "flatpak a" 9 "a" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
EOF
|
|
|
|
ok "complete a commands"
|
|
|
|
${FLATPAK} complete "flatpak b" 9 "b" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
build
|
|
build-bundle
|
|
build-commit-from
|
|
build-export
|
|
build-finish
|
|
build-import-bundle
|
|
build-init
|
|
build-sign
|
|
build-update-repo
|
|
EOF
|
|
|
|
ok "complete b commands"
|
|
|
|
${FLATPAK} complete "flatpak i" 9 "i" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
info
|
|
install
|
|
EOF
|
|
|
|
ok "complete i commands"
|
|
|
|
${FLATPAK} complete "flatpak --" 10 "--" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
--default-arch
|
|
--gl-drivers
|
|
--help
|
|
--installation=
|
|
--installations
|
|
--ostree-verbose
|
|
--print-system-only
|
|
--print-updated-env
|
|
--supported-arches
|
|
--system
|
|
--user
|
|
--verbose
|
|
--version
|
|
EOF
|
|
|
|
ok "complete global options"
|
|
|
|
${FLATPAK} complete "flatpak list --" 15 "--" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
--all
|
|
--app
|
|
--app-runtime=
|
|
--arch=
|
|
--columns=
|
|
--help
|
|
--installation=
|
|
--ostree-verbose
|
|
--runtime
|
|
--show-details
|
|
--system
|
|
--user
|
|
--verbose
|
|
EOF
|
|
|
|
ok "complete list options"
|
|
|
|
${FLATPAK} complete "flatpak create-usb /" 20 "/" | sort > complete_out
|
|
#(diff -u complete_out - || echo "fail") <<EOF
|
|
#__FLATPAK_DIR
|
|
#EOF
|
|
|
|
ok "complete create-usb"
|
|
|
|
${FLATPAK} complete "flatpak list --arch=" 20 "--arch=" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
aarch64
|
|
arm
|
|
i386
|
|
x86_64
|
|
EOF
|
|
|
|
ok "complete --arch"
|
|
|
|
${FLATPAK} complete "flatpak override --allow=" 25 "--allow=" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
bluetooth
|
|
canbus
|
|
devel
|
|
multiarch
|
|
per-app-dev-shm
|
|
EOF
|
|
|
|
ok "complete --allow"
|
|
|
|
${FLATPAK} complete "flatpak config --set l" 23 "l" > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
languages
|
|
EOF
|
|
|
|
ok "complete config"
|
|
|
|
${FLATPAK} complete "flatpak info o" 16 "o" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
org.test.Hello
|
|
org.test.Hello.Locale
|
|
org.test.Platform
|
|
EOF
|
|
|
|
ok "complete ref"
|
|
|
|
${FLATPAK} complete "flatpak permission-reset o" 26 "o" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
org.test.Hello
|
|
EOF
|
|
|
|
ok "complete partial ref"
|
|
|
|
for cmd in build-bundle build-commit-from build-export build-finish \
|
|
build-import-bundle build-init build-sign build-update-repo \
|
|
build document-export document-info document-list document-unexport \
|
|
enter kill permission-list permission-remove permission-reset \
|
|
permission-show ps repo; do
|
|
len=$(awk '{ print length($0) }' <<< "flatpak $cmd --")
|
|
${FLATPAK} complete "flatpak $cmd --" $len "--" > complete_out
|
|
assert_not_file_has_content complete_out "^--system "
|
|
assert_not_file_has_content complete_out "^--user "
|
|
assert_not_file_has_content complete_out "^--installation="
|
|
done
|
|
|
|
ok "complete NO_DIR commands"
|
|
|
|
for cmd in history info list run update mask \
|
|
config install make-current override remote-add repair \
|
|
create-usb remote-delete remote-info remote-list remote-ls \
|
|
remote-modify search uninstall update; do
|
|
len=$(awk '{ print length($0) }' <<< "flatpak $cmd --")
|
|
${FLATPAK} complete "flatpak $cmd --" $len "--" > complete_out
|
|
assert_file_has_content complete_out "^--system "
|
|
assert_file_has_content complete_out "^--user "
|
|
assert_file_has_content complete_out "^--installation="
|
|
done
|
|
|
|
ok "complete non-NO_DIR commands"
|
|
|
|
${FLATPAK} complete "flatpak list --columns=" 24 "--columns=" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
active
|
|
all
|
|
application
|
|
arch
|
|
branch
|
|
description
|
|
help
|
|
installation
|
|
latest
|
|
name
|
|
options
|
|
origin
|
|
ref
|
|
runtime
|
|
size
|
|
version
|
|
EOF
|
|
|
|
ok "complete list --columns="
|
|
|
|
${FLATPAK} complete "flatpak list --columns=all" 27 "--columns=all" | sort > complete_out
|
|
assert_file_empty complete-out
|
|
|
|
ok "complete list --columns=all"
|
|
|
|
${FLATPAK} complete "flatpak list --columns=hel" 27 "--columns=hel" | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
help
|
|
EOF
|
|
|
|
ok "complete list --columns=hel"
|
|
|
|
${FLATPAK} complete "flatpak list --columns=arch," 29 "--columns=arch," | sort > complete_out
|
|
(diff -u complete_out - || exit 1) <<EOF
|
|
arch,active
|
|
arch,application
|
|
arch,branch
|
|
arch,description
|
|
arch,installation
|
|
arch,latest
|
|
arch,name
|
|
arch,options
|
|
arch,origin
|
|
arch,ref
|
|
arch,runtime
|
|
arch,size
|
|
arch,version
|
|
EOF
|
|
|
|
ok "complete list --columns=arch,"
|
|
|