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

Reply via email to