tests.append( [file_with_path, True] ) # True is a dummy testresult, parsing of the *.out files is done while running the tests elif file.endswith('.out') or file.endswith( '.err') or file.endswith('.profile'): pass else: raise Exception( 'Found unknown file %s in libapparmor test_multi' % file) return tests # if a logfile is given as parameter, print the resulting profile and exit (with $? = 42 to make sure tests break if the caller accidently hands over a parameter) if __name__ == '__main__' and len(sys.argv) == 2: print(logfile_to_profile(sys.argv[1])[1]) exit(42) # still here? That means a normal test run print('Testing libapparmor test_multi tests...') TestLibapparmorTestMulti.tests = find_test_multi( '../../libraries/libapparmor/testsuite/test_multi/') TestLogToProfile.tests = find_test_multi( '../../libraries/libapparmor/testsuite/test_multi/') setup_aa(apparmor.aa) setup_all_loops(__name__) if __name__ == '__main__': unittest.main(verbosity=1)
self.parse_function = aa.parse_mount_rule class AAParseMountTest(BaseAAParseMountTest): tests = [ ('mount,', 'mount base keyword rule'), ('mount -o ro,', 'mount ro rule'), ('mount -o rw /dev/sdb1 -> /mnt/external,', 'mount rw with mount point'), ] class AAParseRemountTest(BaseAAParseMountTest): tests = [ ('remount,', 'remount base keyword rule'), ('remount -o ro,', 'remount ro rule'), ('remount -o ro /,', 'remount ro with mountpoint'), ] class AAParseUmountTest(BaseAAParseMountTest): tests = [ ('umount,', 'umount base keyword rule'), ('umount /mnt/external,', 'umount with mount point'), ('unmount,', 'unmount base keyword rule'), ('unmount /mnt/external,', 'unmount with mount point'), ] setup_aa(aa) if __name__ == '__main__': setup_regex_tests(AAParseMountTest) setup_regex_tests(AAParseRemountTest) setup_regex_tests(AAParseUmountTest) unittest.main(verbosity=2)
print('Searching for parser simple_tests... (this will take a while)') for root, dirs, files in os.walk(profile_dir): relpath = os.path.relpath(root, profile_dir) if relpath == '.': # include files are checked as part of the profiles that include them (also, they don't contain EXRESULT) dirs.remove('includes') dirs.remove('include_tests') dirs.remove('includes-preamble') for file in files: file_with_path = os.path.join(root, file) if not apparmor.is_skippable_file(file) and relpath != '.': skipped += parse_test_profiles(file_with_path) if skipped: print('Skipping %s test profiles listed in skip_startswith.' % skipped) print('Running %s parser simple_tests...' % len(TestParseParserTests.tests)) setup_aa(apparmor) profile_dir = os.path.abspath('../../parser/tst/simple_tests/') find_and_setup_test_profiles(profile_dir) setup_all_loops(__name__) if __name__ == '__main__': unittest.main(verbosity=1)
def test_i18n(self): self.assertEqual('Test string - do not translate', _('Test string - do not translate')) def test_aa_conf(self): confdir = os.getenv('__AA_CONFDIR') if confdir: self.assertEqual(aa.conf.CONF_DIR, confdir) else: self.assertEqual(aa.conf.CONF_DIR, '/etc/apparmor') def test_aa_ui_info(self): aaui.UI_Info('Test string') self.assertEqual(sys.stdout.getvalue(), 'Test string\n') def test_aa_ui_info_json(self): aaui.set_json_mode() sys.stdout.getvalue() aaui.UI_Info('Test string') self.assertEqual( sys.stdout.getvalue(), '{"dialog": "apparmor-json-version","data": "2.12"}\n{"dialog": "info","data": "Test string"}\n' ) aaui.set_text_mode() setup_aa(aa) # Wrapper for aa.init_aa() setup_all_loops(__name__) if __name__ == '__main__': unittest.main(verbosity=1)