Merge pull request #7389 from ThomasWaldmann/vagrant-updates

updates and fixes done while working with the VMs
This commit is contained in:
TW 2023-02-26 20:55:16 +01:00 committed by GitHub
commit 9710c8f0a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 13 deletions

26
Vagrantfile vendored
View file

@ -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|

View file

@ -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

View file

@ -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()