[apparmor] [patch] move globbing tests to test-aare.py

Christian Boltz apparmor at cboltz.de
Sun Oct 9 17:56:06 UTC 2016


Hello,

aa_test.py doesn't run in 'make check' because its filename doesn't
match the 'test-*.py' pattern.

Move tests for globbing ("plain" globbing and globbing with ext) to
test-aare.py to make sure those tests actually run.

Note: This isn't an exact move - I adjusted some of the tests to make
them more useful, and added some more tests.

Also, glob_path() and glob_path_withext() no longer exist in aa.py.
They moved to the AARE class as part of the FileRule patch series.


[ 02-move-aare-tests-to-test-aare.diff ]

=== modified file ./utils/test/aa_test.py
--- utils/test/aa_test.py       2015-01-18 14:54:32.128733106 +0100
+++ utils/test/aa_test.py       2016-10-09 19:45:14.542938279 +0200
@@ -38,53 +38,6 @@
     def test_loadinclude(self):
         apparmor.aa.loadincludes()
 
-    def test_path_globs(self):
-        globs = {
-                 '/foo/': '/*/',
-                 '/foo': '/*',
-                 '/b*': '/*',
-                 '/*b': '/*',
-                 '/*': '/*',
-                 '/*/': '/*/',
-                 '/*.foo/': '/*/',
-                 '/**.foo/': '/**/',
-                 '/foo/*/': '/**/',
-                 '/usr/foo/*': '/usr/**',
-                 '/usr/foo/**': '/usr/**',
-                 '/usr/foo/bar**': '/usr/foo/**',
-                 '/usr/foo/**bar': '/usr/foo/**',
-                 '/usr/bin/foo**bar': '/usr/bin/**',
-                 '/usr/foo/**/bar': '/usr/foo/**/*',
-                 '/usr/foo/**/*': '/usr/foo/**',
-                 '/usr/foo/*/bar': '/usr/foo/*/*',
-                 '/usr/bin/foo*bar': '/usr/bin/*',
-                 '/usr/bin/*foo*': '/usr/bin/*',
-                 '/usr/foo/*/*': '/usr/foo/**',
-                 '/usr/foo/*/**': '/usr/foo/**',
-                 '/**': '/**',
-                 '/**/': '/**/'
-                 }
-        for path in globs.keys():
-            self.assertEqual(apparmor.aa.glob_path(path), globs[path], 'Unexpected glob generated for path: %s'%path)
-
-    def test_path_withext_globs(self):
-        globs = {
-                 '/foo/bar': '/foo/bar',
-                 '/foo/**/bar': '/foo/**/bar',
-                 '/foo.bar': '/*.bar',
-                 '/*.foo': '/*.foo' ,
-                 '/usr/*.bar': '/**.bar',
-                 '/usr/**.bar': '/**.bar',
-                 '/usr/foo**.bar': '/usr/**.bar',
-                 '/usr/foo*.bar': '/usr/*.bar',
-                 '/usr/fo*oo.bar': '/usr/*.bar',
-                 '/usr/*foo*.bar': '/usr/*.bar',
-                 '/usr/**foo.bar': '/usr/**.bar',
-                 '/usr/*foo.bar': '/usr/*.bar',
-                 '/usr/foo.b*': '/usr/*.b*'
-                 }
-        for path in globs.keys():
-            self.assertEqual(apparmor.aa.glob_path_withext(path), globs[path], 'Unexpected glob generated for path: %s'%path)
 
     def test_modes_to_string(self):
 
=== modified file ./utils/test/test-aare.py
--- utils/test/test-aare.py     2016-10-01 21:00:58.949770000 +0200
+++ utils/test/test-aare.py     2016-10-09 19:44:05.699283921 +0200
@@ -275,6 +275,27 @@
         ('/foo/*/**',               '/foo/**'),
         ('/foo/*/*',                '/foo/**'),
 
+        ('/foo',                    '/*',),
+        ('/b*',                     '/*',),
+        ('/*b',                     '/*',),
+        ('/*',                      '/*',),
+        ('/*.foo',                  '/*',),
+        ('/**.foo',                 '/**',),
+        ('/foo/*',                  '/**',),
+        ('/usr/foo/*',              '/usr/**',),
+        ('/usr/foo/**',             '/usr/**',),
+        ('/usr/foo/bar**',          '/usr/foo/**',),
+        ('/usr/foo/**bar',          '/usr/foo/**',),
+        ('/usr/bin/foo**bar',       '/usr/bin/**',),
+        ('/usr/foo/**/bar',         '/usr/foo/**/*',),
+        ('/usr/foo/**/*',           '/usr/foo/**',),
+        ('/usr/foo/*/bar',          '/usr/foo/*/*',),
+        ('/usr/bin/foo*bar',        '/usr/bin/*',),
+        ('/usr/bin/*foo*',          '/usr/bin/*',),
+        ('/usr/foo/*/*',            '/usr/foo/**',),
+        ('/usr/foo/*/**',           '/usr/foo/**',),
+        ('/**',                     '/**',),
+
     ]
 
     def _run_test(self, params, expected):
@@ -319,6 +340,23 @@
         ('/foo/*/**',               '/foo/*/**'),
         ('/foo/*/*',                '/foo/*/*'),
 
+        ('/*',                      '/*'),
+        ('/**',                     '/**'),
+
+        ('/foo/bar',                '/foo/bar'),
+        ('/foo/**/bar',             '/foo/**/bar'),
+        ('/foo.bar',                '/*.bar'),
+        ('/*.foo',                  '/*.foo' ),
+        ('/usr/*.bar',              '/**.bar'),
+        ('/usr/**.bar',             '/**.bar'),
+        ('/usr/foo**.bar',          '/usr/**.bar'),
+        ('/usr/foo*.bar',           '/usr/*.bar'),
+        ('/usr/fo*oo.bar',          '/usr/*.bar'),
+        ('/usr/*foo*.bar',          '/usr/*.bar'),
+        ('/usr/**foo.bar',          '/usr/**.bar'),
+        ('/usr/*foo.bar',           '/usr/*.bar'),
+        ('/usr/foo.b*',             '/usr/*.b*'),
+
         # with extension added
         ('/foo/bar/baz**.xy',          '/foo/bar/**.xy'),
         ('/foo/bar/**baz.xy',          '/foo/bar/**.xy'),
@@ -344,6 +383,28 @@
         ('/foo/**/*.xy',               '/foo/**.xy'),
         ('/foo/*/**.xy',               '/foo/**.xy'),
         ('/foo/*/*.xy',                '/foo/**.xy'),
+
+        ('/*.foo',                      '/*.foo'),
+        ('/**.foo',                     '/**.foo'),
+
+        ('/foo.baz',                    '/*.baz'),
+        ('/b*.baz',                     '/*.baz'),
+        ('/*b.baz',                     '/*.baz'),
+        ('/foo/*.baz',                  '/**.baz'),
+        ('/usr/foo/*.baz',              '/usr/**.baz'),
+        ('/usr/foo/**.baz',             '/usr/**.baz'),
+        ('/usr/foo/bar**.baz',          '/usr/foo/**.baz'),
+        ('/usr/foo/**bar.baz',          '/usr/foo/**.baz'),
+        ('/usr/bin/foo**bar.baz',       '/usr/bin/**.baz'),
+        ('/usr/foo/**/bar.baz',         '/usr/foo/**/*.baz'),
+        ('/usr/foo/**/*.baz',           '/usr/foo/**.baz'),
+        ('/usr/foo/*/bar.baz',          '/usr/foo/*/*.baz'),
+        ('/usr/bin/foo*bar.baz',        '/usr/bin/*.baz'),
+        ('/usr/bin/*foo*.baz',          '/usr/bin/*.baz'),
+        ('/usr/foo/*/*.baz',            '/usr/foo/**.baz'),
+        ('/usr/foo/*/**.baz',           '/usr/foo/**.baz'),
+
+
     ]
 
     def _run_test(self, params, expected):




Regards,

Christian Boltz
-- 
[AppArmor] Unlike SELinux, it does not require a PhD in computer
security to get it working... [Peter Czanik in opensuse-factory]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20161009/20c4b29d/attachment.pgp>


More information about the AppArmor mailing list