apparmor/utils/test
Georgia Garcia 39f84c3767 utils: fix file handling of old perms with owner
When the profile already contains a "file" rule containing the owner
prefix and the tool is trying to handle a new file entry, it tries to
show it in the logprof header as "old mode".

The issue is that when the owner rule is an implicit all files
permission, then the object "FileRule" is used instead of the set of
permissions. When subtracting FileRule from set() a TypeError
exception is thrown.

Fix this by "translating" FileRule.ALL perms to "mrwlkix".

Fixes: https://gitlab.com/apparmor/apparmor/-/issues/429
Signed-off-by: Georgia Garcia <georgia.garcia@canonical.com>
2024-09-05 14:54:59 -03:00
..
logprof aa-logprof/aa-genprof: Adding support for --allow-all, --output-dir and --no-abstraction 2024-03-28 19:29:08 +00:00
wtmp-examples Add truncated and ancient wtmp example to tests 2021-10-24 17:24:43 +02:00
cleanprof_test.in Adding userspace support for unix mediation 2024-03-29 13:09:06 +00:00
cleanprof_test.out Adding userspace support for unix mediation 2024-03-29 13:09:06 +00:00
common_test.py Change string formatting method in Python tests 2023-02-19 16:54:38 -05:00
easyprof.conf This patchset is broken into 4 parts: 2012-05-07 22:37:48 -07:00
logprof.conf Stop calling ldd in aa-genprof and aa-autodep 2024-03-31 18:53:12 +02:00
Makefile Use PivotRootRule and PivotRootRuleset 2024-05-20 20:44:19 +02:00
README.md use new build_platlib path with setuptools >= 61.2 2022-07-16 17:47:18 +02:00
runtests-py3.sh fix utils/test/runtests-py*.sh exitcode 2014-10-03 11:48:21 +02:00
severity.db Add aa-logprof test framework 2023-08-13 21:02:50 +02:00
severity_broken.db Update perl abstraction, logprof.conf, severity.db and tests for Debian/Ubuntu 2014-08-20 19:14:24 -05:00
test-aa-cli-bootstrap.py Add option to log aa-logprof json input and output 2023-07-30 21:28:35 +02:00
test-aa-decode.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-aa-easyprof.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-aa-notify.py aa-notify: Enhanced Graphical User Interfaces 2024-08-13 16:58:25 +00:00
test-aa.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-aare.py AARE: add __eq__() to allow checking aare1 == aare2 2023-10-11 20:38:38 +02:00
test-abi.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-alias.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-all.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-baserule.py utils: Simplify logparsing and rule creation from hashlog/event 2024-07-23 16:09:53 +00:00
test-boolean.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-capability.py logparser: adding support for comm in capability events 2024-08-12 10:23:40 +02:00
test-change_profile.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-common.py Change apparmor.common.combine_profname arguments from list to tuple literals. 2022-09-11 21:56:26 -04:00
test-config.py Stop calling ldd in aa-genprof and aa-autodep 2024-03-31 18:53:12 +02:00
test-dbus.py utils: Simplify logparsing and rule creation from hashlog/event 2024-07-23 16:09:53 +00:00
test-example.py Order imports and module-level dunder name assignments. 2022-08-21 11:15:07 -04:00
test-file.py utils: fix file handling of old perms with owner 2024-09-05 14:54:59 -03:00
test-include.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-io_uring.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-libapparmor-test_multi.py Add support for asking about pivot_root to aa-logprof 2024-05-20 20:45:19 +02:00
test-logparser.py logparser: Add tests for create_rule_from_ev 2024-08-13 11:35:58 +02:00
test-logprof.py test-logprof: increase timeout 2024-07-05 13:14:10 +02:00
test-minitools.py Change string formatting method in Python tests 2023-02-19 16:54:38 -05:00
test-mount.py MountRule: Add support for empty ("") source 2024-06-09 23:09:05 +02:00
test-mqueue.py MqueueRule: allow / as mqueue name 2024-07-21 16:00:18 +02:00
test-network.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-notify.py Change string formatting method in Python tests 2023-02-19 16:54:38 -05:00
test-parser-simple-tests.py parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
test-pivot_root.py Add PivotRootRule class 2024-05-20 20:42:50 +02:00
test-profile-list.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-profile-storage.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-profiles.py Order imports and module-level dunder name assignments. 2022-08-21 11:15:07 -04:00
test-ptrace.py utils: Simplify logparsing and rule creation from hashlog/event 2024-07-23 16:09:53 +00:00
test-regex_matches.py Use PivotRootRule and PivotRootRuleset 2024-05-20 20:44:19 +02:00
test-rlimit.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00
test-severity.py Change string formatting method in Python tests 2023-02-19 16:54:38 -05:00
test-signal.py utils: Simplify logparsing and rule creation from hashlog/event 2024-07-23 16:09:53 +00:00
test-translations.py Improve utils hotkey handling 2023-01-29 13:33:44 +01:00
test-unix.py Fix handling of quoted peers in UnixRule (and others) 2024-06-19 14:01:15 +02:00
test-userns.py utils: Simplify logparsing and rule creation from hashlog/event 2024-07-23 16:09:53 +00:00
test-variable.py utils: fix coding style to match PEP8 2024-05-20 13:56:37 -03:00

Test data generated elsewhere

The tests in parser generate additional test profiles in parser/tst/simple_tests/: see gen-dbus.py and gen-xtrans.py.

utils/test/test-parser-simple-tests.py uses this test data when it is available. If this test data has not been generated, this test will not complain: it will simply exercise fewer test profiles.

Running individual tests

Python's unittest allows individual tests to be executed by specifying the class name and the test on the command line. When running tests individually, the unittest framework executes the "setUp" and "tearDown" methods automatically. For more information, refer to the unittest documentation.

Make sure to set the environment variables pointing to the in-tree apparmor modules, and the in-tree libapparmor and its python wrapper:

$ export PYTHONPATH=..:../../libraries/libapparmor/swig/python/build/$(/usr/bin/python3 ../../libraries/libapparmor/swig/python/test/buildpath.py)
$ export __AA_CONFDIR=.

To execute the test individually, run:

$ python3 ./test-tile.py ClassFoo.test_bar