marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Should this be
test_path_link_nonstrict
for convention's sake?
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
kubkon submitted PR Review.
kubkon created PR Review Comment:
This looks like a good choice of errno value here, but I'd like @sunfishcode to double check that though.
kubkon submitted PR Review.
kubkon created PR Review Comment:
Hmm, I think I'd prefer if we had two versions of the testcase, not necessarily overlapping in any way, but such that the "strict" tests are executed only on supported *nix platform, while the rest always executes the "nonstrict" set.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
marmistrz edited PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz created PR Review Comment:
Done, the non-strict version is no more!
marmistrz submitted PR Review.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz requested peterhuene and sunfishcode for a review on PR #1199.
marmistrz requested peterhuene, kubkon and sunfishcode for a review on PR #1199.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
peterhuene submitted PR Review.
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
If we remove the RAII type, we should remove or update this comment. Calling out that the
fd_close
must be called prior to unlinking on Windows probably isn't worth a comment, but I'm also good with updating this comment to reflect that.
peterhuene created PR Review Comment:
Is this TODO comment actionable or can it be removed?
peterhuene created PR Review Comment:
Rather than using an RAII type for this single test, perhaps we should just insert the
fd_close
calls in the three places that are needed?
peterhuene created PR Review Comment:
We can remove this comment now I think.
marmistrz submitted PR Review.
marmistrz created PR Review Comment:
What's wrong with RAII here?
kubkon submitted PR Review.
kubkon created PR Review Comment:
I'm also eager to remove RAII here. It makes the test logic somewhat clunky since we have to force nested scoping for the
drop
to fire. I cannot see why manually callingfd_close
on all needed resources should be inferior to using the RAII type.
marmistrz submitted PR Review.
marmistrz created PR Review Comment:
I'm removing this mapping, because there is no clear reason why it's needed, just as in #1359.
marmistrz submitted PR Review.
marmistrz created PR Review Comment:
Okay, I'll remove RAII.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz submitted PR Review.
marmistrz created PR Review Comment:
Done
peterhuene submitted PR Review.
peterhuene created PR Review Comment:
Yeah, I wouldn't say there's anything wrong with it by itself, just that it's a little bit of implementation that only saves three
fd_close
calls in a single test case.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
peterhuene submitted PR Review.
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
marmistrz updated PR #1199 from path_link
to master
:
This is probably the last missing syscall for Windows!
This PR implements
path_link
for Windows and adds a non-strict version of thepath_link
integration test.I'm unsure about the error handling in
path_link
. MSDN doesn't say much about possible error codes for eitherCreateHardLinkA
orCreateSymbolicLinkA
. I mostly copied over the error conversion frompath_symlink
, but I'm not sure if it's correct. In particular, it's unclear to me what the purpose ofstrip_trailing_slashes_and_concatenate
is.
path_symlink
will now also detect an attempt to create a dangling symlink and returnENOTSUP
. (is this the correct return code)?Currently the non-strictness of the test consists of:
- we use a separate subdirectories
subdir
,subdir2
,subdir3
for each test stage. This is due to the fact Windows will not remove the directory and won't allow to create a directory with the same name until the previous one has been deleted. I don't see any way of circumventing it, because the application may still try to access the directory through the unclosed file descriptor.path_link
will returnEACCES
instead ofEPERM
when trying to create a link to a subdirectory. This violates the POSIX spec. We could manually check if the source path is a directory in case ofERROR_ACCESS_DENIED
but this would cost us an extra syscall.- Tests for dangling symlinks or symlink loops have been disabled. Alternatively, we could check if the attempt to create a dangling symlink returns
ENOTSUP
, but this doesn't make much sense while 1&2 are an issue.Let me know what you think.
Btw. @kubkon, according to this stackoverflow post Mac OS X 10.5+ permits hard links to directories, which our tests expect to fail.
Notes about links and symlinks under Windows:
- creating a symlink requires administrative privileges (
SeCreateSymbolicLinkPrivilege
). On Windows 10 this requirement may be removed, but this requires enabling developer mode- Windows distinguishes between file and directory symlinks
- It's possible to create a dangling symlink, but the type (file/directory) has to be specified upon creation. The behavior in case of type mismatch is inconsistent. Precisely, suppose that a dangling file symlink is created
foo -> bar
and later, a directorybar
is created. Then:
- under msys64 bash,
cd foo
succeeds and the directory view is the same when access either directly or through the symlink- under cmd (both windowed and as a child process from msys64 bash).
cd foo
fails withThe directory name is invalid
kubkon submitted PR Review.
marmistrz merged PR #1199.
Last updated: Dec 23 2024 at 13:07 UTC