]>
git.k1024.org Git - pylibacl.git/log
Iustin Pop [Fri, 29 Nov 2019 13:28:06 +0000 (14:28 +0100)]
Change Entry initialisation protocol
This fixes very large and significant bugs - segfaults and memory
leaks - that were present for uninitialised object, more precisely
created but not init'ed ones.
I spent quite a bit of time thinking back on forth how to fix this,
and from the two options of:
- check initialised status on all code paths, or
- don't ever allow invalid/un-initialised objects
The latter one seems the correct one, even though the Python C API
docs imply that doing actual stuff in `__new__` should be "rare".
Tests for reference leaks and wrong re-init added as well; these would
have caught at least memory leaks before.
Iustin Pop [Fri, 29 Nov 2019 13:20:46 +0000 (14:20 +0100)]
Standardise on capitalised error messages
For good or worse, but at least standard.
Iustin Pop [Fri, 29 Nov 2019 13:20:11 +0000 (14:20 +0100)]
Unify attribute deletion checks for Entry
Iustin Pop [Fri, 29 Nov 2019 13:14:55 +0000 (14:14 +0100)]
Reduce verbosity in fast-tests
Otherwise compilation issues are missed.
Iustin Pop [Fri, 29 Nov 2019 03:11:43 +0000 (04:11 +0100)]
Cleanup py2-compatibility 'except' syntax
Iustin Pop [Fri, 29 Nov 2019 02:52:23 +0000 (03:52 +0100)]
Remove tests/__init__.py as not needed with pytest
Iustin Pop [Fri, 29 Nov 2019 01:20:58 +0000 (02:20 +0100)]
Include filename in exceptions raised in delete_default
And add test for failure.
Iustin Pop [Wed, 27 Nov 2019 22:20:57 +0000 (23:20 +0100)]
Add tests for a few IO failures
Marginal test coverage increase, but checks that we do raise IOError
as expected.
Iustin Pop [Wed, 27 Nov 2019 22:04:05 +0000 (23:04 +0100)]
Add pathlib support in apply_to and has_extended
This is done by switching these functions to PyUnicode_FSConverter,
thus removing a chunk of custom, and probably buggy, code. Easier to
read as well…
Iustin Pop [Wed, 27 Nov 2019 21:30:20 +0000 (22:30 +0100)]
Add more test infrastructure for parameterisation
Not sure how much will be used yet…
Iustin Pop [Wed, 27 Nov 2019 21:01:24 +0000 (22:01 +0100)]
Py3 cleanup for the module itself
Iustin Pop [Wed, 27 Nov 2019 20:52:41 +0000 (21:52 +0100)]
Add no external to coverage target
Iustin Pop [Wed, 27 Nov 2019 20:41:45 +0000 (21:41 +0100)]
tests: Py3 cleanup
Iustin Pop [Wed, 27 Nov 2019 20:40:28 +0000 (21:40 +0100)]
A bit more tests
Iustin Pop [Wed, 27 Nov 2019 20:33:23 +0000 (21:33 +0100)]
Convert TestModification to pytest
And that was the last one…
Iustin Pop [Wed, 27 Nov 2019 20:32:17 +0000 (21:32 +0100)]
One more makefile test target
Iustin Pop [Wed, 27 Nov 2019 08:39:56 +0000 (09:39 +0100)]
Stop testing with pypy2
Broken already :)
Iustin Pop [Wed, 27 Nov 2019 08:35:36 +0000 (09:35 +0100)]
Standardise skip-on-pypy decorator
Iustin Pop [Tue, 26 Nov 2019 23:22:07 +0000 (00:22 +0100)]
Convert AclExtensions to pytest
Iustin Pop [Tue, 26 Nov 2019 22:54:51 +0000 (23:54 +0100)]
Convert WriteTests to pytest
Iustin Pop [Tue, 26 Nov 2019 22:50:25 +0000 (23:50 +0100)]
Switch LoadTests to pytest
Iustin Pop [Tue, 26 Nov 2019 22:42:32 +0000 (23:42 +0100)]
tests: add helper functions/fixtures
Iustin Pop [Tue, 26 Nov 2019 22:57:49 +0000 (23:57 +0100)]
Switch travis to pytest as well
Iustin Pop [Tue, 26 Nov 2019 22:41:42 +0000 (23:41 +0100)]
Switch to running tests via pytest
This doesn't change the test code, just the runner (for now).
Iustin Pop [Tue, 26 Nov 2019 22:40:16 +0000 (23:40 +0100)]
Stop supporting Python 2
This just changes the documentation and stop testing with Python
2. Future patches will actually drop compatibility.
Iustin Pop [Tue, 26 Nov 2019 21:42:51 +0000 (22:42 +0100)]
Add a fast-test target
Iustin Pop [Tue, 26 Nov 2019 21:41:20 +0000 (22:41 +0100)]
Rename test/ → tests/
More consistency between my packages.
Iustin Pop [Tue, 26 Nov 2019 21:23:10 +0000 (22:23 +0100)]
Run local tests with 3.8 as well
Iustin Pop [Tue, 26 Nov 2019 21:22:51 +0000 (22:22 +0100)]
Add a distcheck target
Iustin Pop [Sun, 24 Nov 2019 14:39:25 +0000 (15:39 +0100)]
Travis: test python 3.7 and 3.8 in standard way
This removes the hack for python 3.7, and add 3.8 as well.
Iustin Pop [Sun, 24 Nov 2019 14:36:29 +0000 (15:36 +0100)]
Export coverage results to codecov as well
And also move the env var to just the coveralls invocation.
Iustin Pop [Sat, 23 Nov 2019 00:14:37 +0000 (01:14 +0100)]
Badge-ify the README
Hey, it's fun!
Iustin Pop [Fri, 22 Nov 2019 21:39:22 +0000 (22:39 +0100)]
Update Travis config to export coverage information
Iustin Pop [Thu, 14 Nov 2019 10:58:42 +0000 (11:58 +0100)]
Bump version numbers for new release
Only 4+ years…
Iustin Pop [Thu, 14 Nov 2019 10:45:26 +0000 (11:45 +0100)]
Note that ACL(text="...") needs a valid ACL to be passed
Closes #9.
Iustin Pop [Thu, 14 Nov 2019 10:38:27 +0000 (11:38 +0100)]
Ensure documentation is rebuilt on source (.c) changes
Iustin Pop [Thu, 14 Nov 2019 10:27:17 +0000 (11:27 +0100)]
Update FreeBSD notes
This mentions needing to enable ACLs on the file-system, and adds the
packages that need to be installed.
Closes #12.
Iustin Pop [Wed, 13 Nov 2019 23:23:27 +0000 (00:23 +0100)]
Update README about build requirements
Iustin Pop [Wed, 13 Nov 2019 23:16:46 +0000 (00:16 +0100)]
Makefile: stop trying to test with py<2.7
Since actual compat was removed a while back.
Iustin Pop [Wed, 13 Nov 2019 23:14:24 +0000 (00:14 +0100)]
Switch documentation building to Python 3
This removes build-time dependency on Python 2, which is going away.
Iustin Pop [Sun, 13 Oct 2019 15:55:53 +0000 (17:55 +0200)]
Travis: remove obsolete python version
Some of them, at least.
Iustin Pop [Sun, 3 Mar 2019 12:56:58 +0000 (13:56 +0100)]
Makefile: re-enable pypy and add pypy3
Everything works again now, so let's enable them.
Iustin Pop [Sun, 3 Mar 2019 12:45:45 +0000 (13:45 +0100)]
ACL creation: change how mode arguments are used
Currently, initialising from a mode is done by looking at the keywords
arguments that were passed and seeing if mode was part of them. For
some reason, this causes a segfault under PyPy (my fault, probably),
so let's switch to check based on whether the mode argument was
initialised. To do so, switch the type of mode to int and the Python
format char, since the 'H' is defined as "without overflow checking"
anyway, so we don't get any real checks. Document that invalid values
will cause errors.
Iustin Pop [Sun, 3 Mar 2019 12:42:10 +0000 (13:42 +0100)]
Remove use of PyString/PyUnicode *AndDel() function
These are not documented in Python 3, so let's switch to plain
Concat() for it with explicit delete of original strings. This makes
the code buildable with pypy3.
Iustin Pop [Sun, 3 Mar 2019 12:22:40 +0000 (13:22 +0100)]
Travis: really test 3.7
This version seems to work. Sigh…
Iustin Pop [Sun, 3 Mar 2019 12:02:31 +0000 (13:02 +0100)]
Travis: more reworking of Py3.7 support…
Iustin Pop [Sun, 3 Mar 2019 11:58:40 +0000 (12:58 +0100)]
Travis: rework build matrix
Apparently python 3.7 is not available on the default Trusty
distribution, so let's add Xenial for the newer Python versions. More
builds!
Iustin Pop [Sun, 3 Mar 2019 11:47:36 +0000 (12:47 +0100)]
Drop Python 2.6 and earlier support
While the C extension doesn't need anything to support it, simply
running the tests becomes more and more difficult with such old
versions. Given upcoming Python 2 deprecation, let's drop support for
older versions and simplify the test suite.
Iustin Pop [Sun, 3 Mar 2019 01:40:56 +0000 (02:40 +0100)]
Disable pypy tests in Makefile
With my current pypy, ACL_init triggers a SEGFAULT in pypy. Until I
can debug what's up, let's remove this test.
Iustin Pop [Sun, 3 Mar 2019 01:40:04 +0000 (02:40 +0100)]
Increase test coverage
These are old changes from October 2016 which I forgot to commit. I
think they're related to test coverage, although a few changes (object
structure) seems a bit different.
Well, anyway, here they are.
Iustin Pop [Sat, 2 Mar 2019 20:16:52 +0000 (21:16 +0100)]
Travis: add python 3.5/3.6 to build matrix
Iustin Pop [Sat, 2 Mar 2019 20:09:30 +0000 (21:09 +0100)]
Travis: remove "sudo:false"
Per the deprecation of container-based
builds (https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration),
remove the sudo:false setting.
Iustin Pop [Wed, 26 Oct 2016 16:11:35 +0000 (18:11 +0200)]
Add a makefile coverage target
… which says that current test coverage is pretty bad - 55% line-based
and only 67% functions :(
Iustin Pop [Sun, 15 May 2016 03:18:37 +0000 (05:18 +0200)]
Also run tests with debug interpreters
And bump up Python 3.x versions.
Iustin Pop [Mon, 2 May 2016 21:07:14 +0000 (23:07 +0200)]
Add travis config file
This can be done now that travis environment has whitelisted the
libacl1-dev package.
Iustin Pop [Fri, 1 May 2015 21:12:23 +0000 (23:12 +0200)]
Invert get_tag_qualifier() return value meaning
Returning negative value on error (rather than zero) makes the
function more friendly for cpychecker, and allows the code to be
cpychecker clean.
Iustin Pop [Fri, 1 May 2015 20:29:54 +0000 (22:29 +0200)]
Add cpychecker macro for exception negative results
Per http://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html#errors-in-exception-handling.
Iustin Pop [Fri, 1 May 2015 20:11:22 +0000 (22:11 +0200)]
Add cpychecker annotations for type/object correspondence
Per http://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html#associating-pytypeobject-instances-with-compile-time-types.
Iustin Pop [Fri, 1 May 2015 20:11:15 +0000 (22:11 +0200)]
Bump copyright years
Iustin Pop [Fri, 1 May 2015 19:58:21 +0000 (21:58 +0200)]
Rename README→README.rst
This should give better formatting, e.g. in github project page.
Iustin Pop [Fri, 1 May 2015 19:56:20 +0000 (21:56 +0200)]
Add the release date to NEWS files entries
Iustin Pop [Thu, 30 Apr 2015 20:20:17 +0000 (22:20 +0200)]
Bump version for 0.5.3 release
Iustin Pop [Thu, 30 Apr 2015 20:14:56 +0000 (22:14 +0200)]
Update my email address
Iustin Pop [Thu, 30 Apr 2015 20:13:54 +0000 (22:13 +0200)]
Small style change in setup.py
Iustin Pop [Thu, 30 Apr 2015 20:12:53 +0000 (22:12 +0200)]
Merge remote-tracking branch 'github/master'
Merge pull request made on GitHub.
Iustin Pop [Thu, 30 Apr 2015 20:11:32 +0000 (22:11 +0200)]
Cleanup all .so files on 'make clean'
Otherwise 'make test' can result in very weird error messages, if
hitting https://bugs.python.org/issue7559 (don't ask…).
Iustin Pop [Thu, 30 Apr 2015 17:48:41 +0000 (19:48 +0200)]
tests: ignore IOErrors during operations invalid ACLs
It seems that FreeBSD at least returns EINVAL from calc_mask() and
other calls if the ACL is invalid, so let's ignore such IOErrors.
This should hopefully fix #6 and #7.
Iustin Pop [Thu, 30 Apr 2015 18:41:33 +0000 (20:41 +0200)]
Merge pull request #8 from yaneurabeya/master
Handle FreeBSD versions greater than or equal to 7.x
Iustin Pop [Thu, 30 Apr 2015 17:43:53 +0000 (19:43 +0200)]
tests: don't call acl_to_text on an invalid ACL
While Linux is happy to convert it to text, it seems that under
FreeBSD this doesn't (always? sometimes?) work, so let's use a proper
ACL in the str() test.
Closes #5.
Garrett Cooper [Wed, 27 Aug 2014 08:14:30 +0000 (01:14 -0700)]
Handle FreeBSD versions greater than or equal to 7.x
Sponsored by: EMC / Isilon Storage Division
Iustin Pop [Sat, 28 Jun 2014 20:35:32 +0000 (22:35 +0200)]
Simplify a bit the module initialization
A few constants are more nicely defined.
Iustin Pop [Sat, 28 Jun 2014 12:13:32 +0000 (14:13 +0200)]
Try to fix uid_t/gid_t usage in entry qualifiers
The current code is very broken with regards to the casting between
Python's integer type (either int in Py2 or the magic int/long in Py3)
and the uid_t/gid_t POSIX types. This means that the code is broken
outside "small" integer values.
By using uid_t/gid_t as appropriate, we can fix most of the problem
(at least as far as the new unittests are concerned). There's still no
automatic printf format modifier for them, so the code hardcodes
unsigned (which is what Linux/glibc defines them to), and also there's
a unittest that expects negative values to fail when set.
This should fix issue #3 (github).
Iustin Pop [Tue, 24 Jun 2014 21:23:12 +0000 (23:23 +0200)]
First step towards fixing qualifier overflow
This is still a work-in-progress, since it only deals with
Python-level overflows, but it's a step forward.
Iustin Pop [Tue, 24 Jun 2014 19:51:29 +0000 (21:51 +0200)]
Fix error message in Entry_set_qualifier
This closes #1 (github issue).
Iustin Pop [Fri, 23 May 2014 22:57:40 +0000 (00:57 +0200)]
Fix download link in README
… since github no longer provides downloads.
Iustin Pop [Fri, 23 May 2014 22:41:59 +0000 (00:41 +0200)]
Add a 'dist' target
Iustin Pop [Fri, 23 May 2014 22:40:07 +0000 (00:40 +0200)]
Bump version for a trivial 0.5.2 release
Iustin Pop [Fri, 23 May 2014 22:37:13 +0000 (00:37 +0200)]
Fix some indentation issues in tests
Iustin Pop [Fri, 23 May 2014 22:36:58 +0000 (00:36 +0200)]
Fix homepage URL
Iustin Pop [Fri, 23 May 2014 22:36:37 +0000 (00:36 +0200)]
Fix copyright years and intent to (not) test Solaris
Iustin Pop [Fri, 23 May 2014 22:22:13 +0000 (00:22 +0200)]
Unify env and python variable TEST_DIR
The difference is just confusing.
Iustin Pop [Fri, 23 May 2014 22:20:58 +0000 (00:20 +0200)]
Enable testing on more Python versions and PyPy
… except for the refcount test which doesn't work (and makes no sense)
under PyPy as it has a non-reference count model).
Iustin Pop [Thu, 17 May 2012 02:49:37 +0000 (04:49 +0200)]
Rename tests → test and distribute test files too
The rename is done for consistency with other projects, and
distributing the tests is of course useful.
Iustin Pop [Thu, 17 May 2012 02:48:12 +0000 (04:48 +0200)]
Fix manifest file after reorganisations
Forgot this after the doc changes…
Iustin Pop [Sun, 13 May 2012 04:14:57 +0000 (06:14 +0200)]
Update NEWS and bump version number for 0.5.1 release
Iustin Pop [Sun, 13 May 2012 04:13:11 +0000 (06:13 +0200)]
Expand the range of Python versions for unittests
3.3 has some issues (refuses to recognise 'test-suite') on my machine,
not yet enabled.
Iustin Pop [Sun, 13 May 2012 04:12:34 +0000 (06:12 +0200)]
Integrate old web site index file into README
… and include the README into the main docs page.
Iustin Pop [Sun, 13 May 2012 03:29:19 +0000 (05:29 +0200)]
Extend the refcount leak tests
This also exercises the str() more in general, to test/detect the py3k
str() compatibility issue more easily.
Iustin Pop [Sun, 13 May 2012 03:27:52 +0000 (05:27 +0200)]
Fix html too-often rebuild
Iustin Pop [Sun, 13 May 2012 03:18:24 +0000 (05:18 +0200)]
Workaround another py3k compatibility issue
str() must return unicode in py3k, so we add another layer of macro
names…
Iustin Pop [Sun, 13 May 2012 03:17:45 +0000 (05:17 +0200)]
Replace deprecated names in test suite
Iustin Pop [Sun, 13 May 2012 02:14:32 +0000 (04:14 +0200)]
Reorganise documentation
Lots of changes so that all docs are buildable by Sphinx.
Iustin Pop [Sun, 13 May 2012 01:38:11 +0000 (03:38 +0200)]
Rework documentation style to RST/Sphinx custom
Hrmm, editing it in C source code is ugly… but the docs are pretty!
Iustin Pop [Sun, 13 May 2012 00:14:56 +0000 (02:14 +0200)]
Cleanups for RST/sphinx correctness
This makes sphix build without errors.
Iustin Pop [Sat, 12 May 2012 23:26:34 +0000 (01:26 +0200)]
Switch from epydoc to sphinx
It seems sphinx's autodoc extension can investigate the docstrings
from extensions modules too, so let's just use that.
Iustin Pop [Sat, 12 May 2012 22:54:27 +0000 (00:54 +0200)]
Use Py_RETURN_(TRUE|FALSE) instead of explicit code
This makes it a bit more safe.
Iustin Pop [Sat, 12 May 2012 22:51:58 +0000 (00:51 +0200)]
Rework a long if/else if statement
The switch/case method seems much clearer (it shows that we case on a
single expression).
Iustin Pop [Sat, 12 May 2012 22:47:18 +0000 (00:47 +0200)]
Fix more warning found by static checker
These are not critical, but they can be clean up so let's do it.
Iustin Pop [Sat, 12 May 2012 22:40:10 +0000 (00:40 +0200)]
Fix critical issues found by static analyser
Fix issues found per https://bugzilla.redhat.com/800126, thanks Dave
Malcolm! Upon inspection, indeed all were cases of bad refcounting or
other significant issues.
Iustin Pop [Sat, 12 May 2012 11:30:32 +0000 (13:30 +0200)]
Add test for refcount leak
Not very solid, but it detects a wrong reference count.