pjdfstest
pjdfstest copied to clipboard
Run without root
I would like to run these tests, but don't have root privileges. What would need to change to run these tests as a non-root user?
It's basically impossible as they're written now. HOWEVER, @musikid is working on a pjdfstest rewrite which will include that feature: https://github.com/musikid/pjdfstest . Note though that the test coverage will be severely reduced when running as a non-root user.
As a workaround, I created a docker image containing pjdfstest and the build dependencies here: https://hub.docker.com/r/dianarg/pjdfstest. Use at your own risk. You can mount host directories to be tested using docker run --volume
to make them visible within the container. Let me know if you want me to open a PR with the Dockerfile.
OK, after testing the above image on the rootless system, I am still seeing test failures. I'm not sure if this is related to using Rootless Docker, but I'll keep investigating.
What exactly are you trying to accomplish? If you want 100% test coverage, then that absolutely requires root. Using Linux's FS namespaces you might be able to do some privileged operations as a non-root user, but probably not all.
I want to reproduce the testing done by the JuiceFS devs described in https://github.com/juicedata/juicefs#posix-compatibility. I was hoping running as "root" inside a container would get around checks for uid==0
Which tests absolutely require root, and which ones are using root as an artifact of how the tests are written? For example, I believe it should be possible to test operations like create/unlink/read/write as long as the test user has permissions on the directory used for the test.
As-written, pjdfstest doesn't distinguish between tests that need root and tests that don't. But with @musikid's rewrite, it will. In that branch, a non-root user can do a smoke test that covers unprivileged operations like chmod and truncate. But a large part of the test suite will still require root privileges, and there isn't any getting around that.
Thanks @asomers , I will try playing around with @musikid's fork for now