Author: Ronan Lamy <[email protected]>
Branch: rposix-for-3
Changeset: r83325:756915d867d0
Date: 2016-03-25 00:34 +0000
http://bitbucket.org/pypy/pypy/changeset/756915d867d0/
Log: Test and fix symlinkat()
diff --git a/rpython/rlib/rposix.py b/rpython/rlib/rposix.py
--- a/rpython/rlib/rposix.py
+++ b/rpython/rlib/rposix.py
@@ -1905,11 +1905,11 @@
if HAVE_SYMLINKAT:
c_symlinkat = external('symlinkat',
- [rffi.CCHARP, rffi.CCHARP, rffi.INT], rffi.INT,
+ [rffi.CCHARP, rffi.INT, rffi.CCHARP], rffi.INT,
save_err=rffi.RFFI_SAVE_ERRNO)
def symlinkat(src, dst, dir_fd=AT_FDCWD):
- error = c_symlinkat(src, dst, dir_fd)
+ error = c_symlinkat(src, dir_fd, dst)
handle_posix_error('symlinkat', error)
if HAVE_OPENAT:
diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py
--- a/rpython/rlib/test/test_rposix.py
+++ b/rpython/rlib/test/test_rposix.py
@@ -536,3 +536,12 @@
os.open('/tmp/t', 0, 0)
os.open(u'/tmp/t', 0, 0)
compile(f, ())
+
+def test_symlinkat(tmpdir):
+ tmpdir.join('file').write('text')
+ dirfd = os.open(str(tmpdir), os.O_RDONLY)
+ try:
+ rposix.symlinkat('file', 'link', dir_fd=dirfd)
+ assert os.readlink(str(tmpdir.join('link'))) == 'file'
+ finally:
+ os.close(dirfd)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit