Jelajahi Sumber

Merge pull request #7389 from ThomasWaldmann/vagrant-updates

updates and fixes done while working with the VMs
TW 2 tahun lalu
induk
melakukan
9710c8f0a6

+ 21 - 5
Vagrantfile

@@ -160,7 +160,7 @@ end
 def install_pythons(boxname)
   return <<-EOF
     . ~/.bash_profile
-    pyenv install 3.11.0  # tests, binary build
+    pyenv install 3.11.2  # tests, binary build
     pyenv install 3.10.1  # tests
     pyenv install 3.9.1   # tests
     pyenv rehash
@@ -180,8 +180,8 @@ def build_pyenv_venv(boxname)
     . ~/.bash_profile
     cd /vagrant/borg
     # use the latest 3.11 release
-    pyenv global 3.11.0
-    pyenv virtualenv 3.11.0 borg-env
+    pyenv global 3.11.2
+    pyenv virtualenv 3.11.2 borg-env
     ln -s ~/.pyenv/versions/borg-env .
   EOF
 end
@@ -228,8 +228,8 @@ def run_tests(boxname, skip_env)
     . ../borg-env/bin/activate
     if which pyenv 2> /dev/null; then
       # for testing, use the earliest point releases of the supported python versions:
-      pyenv global 3.9.1 3.10.1 3.11.0
-      pyenv local 3.9.1 3.10.1 3.11.0
+      pyenv global 3.9.1 3.10.1 3.11.2
+      pyenv local 3.9.1 3.10.1 3.11.2
     fi
     # otherwise: just use the system python
     # some OSes can only run specific test envs, e.g. because they miss FUSE support:
@@ -282,6 +282,22 @@ Vagrant.configure(2) do |config|
     b.vm.provision "run tests", :type => :shell, :privileged => false, :inline => run_tests("jammy64", ".*none.*")
   end
 
+  config.vm.define "bookworm64" do |b|
+    b.vm.box = "debian/testing64"
+    b.vm.provider :virtualbox do |v|
+      v.memory = 1024 + $wmem
+    end
+    b.vm.provision "fs init", :type => :shell, :inline => fs_init("vagrant")
+    b.vm.provision "packages debianoid", :type => :shell, :inline => packages_debianoid("vagrant")
+    b.vm.provision "install pyenv", :type => :shell, :privileged => false, :inline => install_pyenv("bookworm64")
+    b.vm.provision "install pythons", :type => :shell, :privileged => false, :inline => install_pythons("bookworm64")
+    b.vm.provision "build env", :type => :shell, :privileged => false, :inline => build_pyenv_venv("bookworm64")
+    b.vm.provision "install borg", :type => :shell, :privileged => false, :inline => install_borg("llfuse")
+    b.vm.provision "install pyinstaller", :type => :shell, :privileged => false, :inline => install_pyinstaller()
+    b.vm.provision "build binary with pyinstaller", :type => :shell, :privileged => false, :inline => build_binary_with_pyinstaller("bookworm64")
+    b.vm.provision "run tests", :type => :shell, :privileged => false, :inline => run_tests("bookworm64", ".*none.*")
+  end
+
   config.vm.define "bullseye64" do |b|
     b.vm.box = "debian/bullseye64"
     b.vm.provider :virtualbox do |v|

+ 6 - 6
requirements.d/development.lock.txt

@@ -1,11 +1,11 @@
-setuptools==65.6.3
+setuptools==67.3.3
 setuptools-scm==7.1.0
-pip==22.3.1
-virtualenv==20.17.1
+pip==23.0.1
+virtualenv==20.19.0
 pkgconfig==1.5.5
-tox==4.0.18
-pytest==7.2.0
-pytest-xdist==3.1.0
+tox==4.0.19
+pytest==7.2.1
+pytest-xdist==3.2.0
 pytest-cov==4.0.0
 pytest-benchmark==4.0.0
 Cython==0.29.33

+ 5 - 2
src/borg/testsuite/archiver/create_cmd.py

@@ -13,7 +13,7 @@ import pytest
 from ... import platform
 from ...constants import *  # NOQA
 from ...manifest import Manifest
-from ...platform import is_cygwin, is_win32
+from ...platform import is_cygwin, is_win32, is_darwin
 from ...repository import Repository
 from .. import has_lchflags
 from .. import changedir
@@ -713,7 +713,7 @@ class ArchiverTestCase(ArchiverTestCaseBase):
         assert result["Modified files"] == 0
         # Archive a dir with two added files
         self.create_regular_file("testfile1", contents=b"test1")
-        time.sleep(0.01)  # testfile2 must have newer timestamps than testfile1
+        time.sleep(1.0 if is_darwin else 0.01)  # testfile2 must have newer timestamps than testfile1
         self.create_regular_file("testfile2", contents=b"test2")
         result = self.cmd(f"--repo={self.repository_location}", "create", "--stats", "test_archive2", self.input_path)
         result = to_dict(result)
@@ -798,6 +798,9 @@ class ArchiverTestCase(ArchiverTestCaseBase):
             fd = os.open(fifo_fn, os.O_RDONLY | os.O_NONBLOCK)
             try:
                 os.read(fd, len(data))
+            except OSError:
+                # fails on FreeBSD 13 with BlockingIOError
+                pass
             finally:
                 os.close(fd)
             t.join()