apparmor/parser/tst/mk_features_file.py
Steve Beattie 0033f683fd parser language tests: force using a features file
With the recent addition of features like ptrace and signals that
give warnings and then ignore the subset of rules when the features
directory indicates that the kernel does not support mediating such
features, at least one of the language tests fails in a chroot
environment where the apparmor securityfs tree is not mounted
inside it.

To compensate, a features file containing the current supported features
is included, and the simple.pl test driver is modified to pass it as an
argument to the parser, so that it will act as if the environment
supports all our current features.

A simple python script is included that was used to generate the
features file based on the current feature set.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-04-24 12:14:54 -07:00

37 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
# ------------------------------------------------------------------
#
# Copyright (C) 2014 Canonical Ltd.
# Author: Steve Beattie <steve@nxnw.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License published by the Free Software Foundation.
#
# ------------------------------------------------------------------
from testlib import read_features_dir
from argparse import ArgumentParser
import os
from sys import stderr, exit
DEFAULT_FEATURES_DIR='/sys/kernel/security/apparmor/features'
def main():
p = ArgumentParser()
p.add_argument('fdir', action="store", nargs='?', metavar="features_dir",
default=DEFAULT_FEATURES_DIR, help="path to features directory")
config = p.parse_args()
if not os.path.exists(config.fdir):
print('Unable to find apparmor features directory "%s"' % config.fdir, file=stderr)
return 1
features = read_features_dir(config.fdir)
print(features)
return 0
if __name__ == "__main__":
exit(main())