Merge pull request #5873 from ThomasWaldmann/disable-selftest-1.1

implement BORG_SELFTEST env variable, fixes #5871
This commit is contained in:
TW 2021-06-27 23:30:52 +02:00 committed by GitHub
commit 9af7cb8ef8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 2 deletions

View file

@ -68,6 +68,14 @@ General:
When set to no (default: yes), system information (like OS, Python version, ...) in
exceptions is not shown.
Please only use for good reasons as it makes issues harder to analyze.
BORG_SELFTEST
This can be used to influence borg's builtin self-tests. The default is to execute the tests
at the beginning of each borg command invocation.
BORG_SELFTEST=disabled can be used to switch off the tests and rather save some time.
Disabling is not recommended for normal borg users, but large scale borg storage providers can
use this to optimize production servers after at least doing a one-time test borg (with
selftests not disabled) when installing or upgrading machines / OS / borg.
BORG_WORKAROUNDS
A list of comma separated strings that trigger workarounds in borg,
e.g. to work around bugs in other software.

View file

@ -12,8 +12,7 @@ To assert that self test discovery works correctly the number of tests is kept i
variable. SELFTEST_COUNT must be updated if new tests are added or removed to or from any of the tests
used here.
"""
import os
import sys
import time
from unittest import TestResult, TestSuite, defaultTestLoader
@ -56,6 +55,9 @@ class SelfTestResult(TestResult):
def selftest(logger):
if os.environ.get('BORG_SELFTEST') == 'disabled':
logger.debug("borg selftest disabled via BORG_SELFTEST env variable")
return
selftest_started = time.perf_counter()
result = SelfTestResult()
test_suite = TestSuite()

View file

@ -251,6 +251,7 @@ class ArchiverTestCaseBase(BaseTestCase):
os.environ['BORG_CHECK_I_KNOW_WHAT_I_AM_DOING'] = 'YES'
os.environ['BORG_DELETE_I_KNOW_WHAT_I_AM_DOING'] = 'YES'
os.environ['BORG_PASSPHRASE'] = 'waytooeasyonlyfortests'
os.environ['BORG_SELFTEST'] = 'disabled'
self.archiver = not self.FORK_DEFAULT and Archiver() or None
self.tmpdir = tempfile.mkdtemp()
self.repository_path = os.path.join(self.tmpdir, 'repository')