瀏覽代碼

enable remote tests on cygwin

the cygwin issue that caused these tests to break was fixed in cygwin
at least since cygwin 2.8.0 (maybe even since 2.7.0).

also added a comment to our workaround (os_write wrapper, that is needed
still for people running older cygwin versions) that it can be removed
when cygwin 2.8.0 is considered ancient (and everybody has upgraded to
some fixed version).
Thomas Waldmann 8 年之前
父節點
當前提交
4766d66875
共有 3 個文件被更改,包括 2 次插入3 次删除
  1. 2 0
      src/borg/remote.py
  2. 0 1
      src/borg/testsuite/archiver.py
  3. 0 2
      src/borg/testsuite/repository.py

+ 2 - 0
src/borg/remote.py

@@ -42,6 +42,8 @@ RATELIMIT_PERIOD = 0.1
 
 
 def os_write(fd, data):
 def os_write(fd, data):
     """os.write wrapper so we do not lose data for partial writes."""
     """os.write wrapper so we do not lose data for partial writes."""
+    # TODO: this issue is fixed in cygwin since at least 2.8.0, remove this
+    #       wrapper / workaround when this version is considered ancient.
     # This is happening frequently on cygwin due to its small pipe buffer size of only 64kiB
     # This is happening frequently on cygwin due to its small pipe buffer size of only 64kiB
     # and also due to its different blocking pipe behaviour compared to Linux/*BSD.
     # and also due to its different blocking pipe behaviour compared to Linux/*BSD.
     # Neither Linux nor *BSD ever do partial writes on blocking pipes, unless interrupted by a
     # Neither Linux nor *BSD ever do partial writes on blocking pipes, unless interrupted by a

+ 0 - 1
src/borg/testsuite/archiver.py

@@ -2835,7 +2835,6 @@ class ManifestAuthenticationTest(ArchiverTestCaseBase):
         assert not self.cmd('list', self.repository_location)
         assert not self.cmd('list', self.repository_location)
 
 
 
 
-@pytest.mark.skipif(sys.platform == 'cygwin', reason='remote is broken on cygwin and hangs')
 class RemoteArchiverTestCase(ArchiverTestCase):
 class RemoteArchiverTestCase(ArchiverTestCase):
     prefix = '__testsuite__:'
     prefix = '__testsuite__:'
 
 

+ 0 - 2
src/borg/testsuite/repository.py

@@ -774,7 +774,6 @@ class RepositoryCheckTestCase(RepositoryTestCaseBase):
             self.assert_equal(self.repository.get(H(0)), b'data2')
             self.assert_equal(self.repository.get(H(0)), b'data2')
 
 
 
 
-@pytest.mark.skipif(sys.platform == 'cygwin', reason='remote is broken on cygwin and hangs')
 class RemoteRepositoryTestCase(RepositoryTestCase):
 class RemoteRepositoryTestCase(RepositoryTestCase):
     repository = None  # type: RemoteRepository
     repository = None  # type: RemoteRepository
 
 
@@ -901,7 +900,6 @@ class RemoteLegacyFree(RepositoryTestCaseBase):
             self.repository.commit()
             self.repository.commit()
 
 
 
 
-@pytest.mark.skipif(sys.platform == 'cygwin', reason='remote is broken on cygwin and hangs')
 class RemoteRepositoryCheckTestCase(RepositoryCheckTestCase):
 class RemoteRepositoryCheckTestCase(RepositoryCheckTestCase):
 
 
     def open(self, create=False):
     def open(self, create=False):