coredata: 0.59.1 -> 0.59.99 is a major version difference
Remove test_minor_version_does_not_reconfigure_wipe() because when run during dev cycle that test reconfigure with .99 -> .100 which is considered a major version change now. It is covered by a more efficient internal test now anyway. While at it, remove no-op `with Path(self.builddir):` statement, the intention was clearly to set workdir. Fixes: #9260
This commit is contained in:
parent
ea4b999473
commit
ca866bcfc7
|
@ -43,6 +43,7 @@ if T.TYPE_CHECKING:
|
|||
KeyedOptionDictType = T.Union[T.Dict['OptionKey', 'UserOption[T.Any]'], OptionOverrideProxy]
|
||||
CompilerCheckCacheKey = T.Tuple[T.Tuple[str, ...], str, FileOrString, T.Tuple[str, ...], str]
|
||||
|
||||
# Check major_versions_differ() if changing versioning scheme.
|
||||
version = '0.59.99'
|
||||
backendlist = ['ninja', 'vs', 'vs2010', 'vs2012', 'vs2013', 'vs2015', 'vs2017', 'vs2019', 'xcode']
|
||||
|
||||
|
@ -990,7 +991,10 @@ def format_cmd_line_options(options: argparse.Namespace) -> str:
|
|||
return ' '.join([shlex.quote(x) for x in cmdline])
|
||||
|
||||
def major_versions_differ(v1: str, v2: str) -> bool:
|
||||
return v1.split('.')[0:2] != v2.split('.')[0:2]
|
||||
v1_major, v1_minor = v1.rsplit('.', 1)
|
||||
v2_major, v2_minor = v2.rsplit('.', 1)
|
||||
# Major version differ, or one is development version but not the other.
|
||||
return v1_major != v2_major or ('99' in {v1_minor, v2_minor} and v1_minor != v2_minor)
|
||||
|
||||
def load(build_dir: str) -> CoreData:
|
||||
filename = os.path.join(build_dir, 'meson-private', 'coredata.dat')
|
||||
|
|
|
@ -2356,16 +2356,12 @@ class AllPlatformTests(BasePlatformTests):
|
|||
self.wipe()
|
||||
self.init(testdir, extra_args=['-Dstart_native=true'], override_envvars=env)
|
||||
|
||||
def __reconfigure(self, change_minor=False):
|
||||
def __reconfigure(self):
|
||||
# Set an older version to force a reconfigure from scratch
|
||||
filename = os.path.join(self.privatedir, 'coredata.dat')
|
||||
with open(filename, 'rb') as f:
|
||||
obj = pickle.load(f)
|
||||
if change_minor:
|
||||
v = mesonbuild.coredata.version.split('.')
|
||||
obj.version = '.'.join(v[0:2] + [str(int(v[2]) + 1)])
|
||||
else:
|
||||
obj.version = '0.47.0'
|
||||
obj.version = '0.47.0'
|
||||
with open(filename, 'wb') as f:
|
||||
pickle.dump(obj, f)
|
||||
|
||||
|
@ -2405,25 +2401,7 @@ class AllPlatformTests(BasePlatformTests):
|
|||
testdir = os.path.join(self.common_test_dir, '157 custom target subdir depend files')
|
||||
self.init(testdir)
|
||||
self.__reconfigure()
|
||||
|
||||
with Path(self.builddir):
|
||||
self.init(testdir, extra_args=['--wipe'])
|
||||
|
||||
def test_minor_version_does_not_reconfigure_wipe(self):
|
||||
testdir = os.path.join(self.unit_test_dir, '48 reconfigure')
|
||||
self.init(testdir, extra_args=['-Dopt1=val1'])
|
||||
self.setconf('-Dopt2=val2')
|
||||
|
||||
self.__reconfigure(change_minor=True)
|
||||
|
||||
out = self.init(testdir, extra_args=['--reconfigure', '-Dopt3=val3'])
|
||||
self.assertNotRegex(out, 'Regenerating configuration from scratch')
|
||||
self.assertRegex(out, 'opt1 val1')
|
||||
self.assertRegex(out, 'opt2 val2')
|
||||
self.assertRegex(out, 'opt3 val3')
|
||||
self.assertRegex(out, 'opt4 default4')
|
||||
self.build()
|
||||
self.run_tests()
|
||||
self.init(testdir, extra_args=['--wipe'], workdir=self.builddir)
|
||||
|
||||
def test_target_construct_id_from_path(self):
|
||||
# This id is stable but not guessable.
|
||||
|
|
|
@ -34,8 +34,8 @@ import mesonbuild.dependencies.factory
|
|||
import mesonbuild.compilers
|
||||
import mesonbuild.envconfig
|
||||
import mesonbuild.environment
|
||||
import mesonbuild.coredata
|
||||
import mesonbuild.modules.gnome
|
||||
from mesonbuild import coredata
|
||||
from mesonbuild.interpreterbase import typed_pos_args, InvalidArguments, ObjectHolder
|
||||
from mesonbuild.interpreterbase import typed_pos_args, InvalidArguments, typed_kwargs, ContainerTypeInfo, KwargInfo
|
||||
from mesonbuild.mesonlib import (
|
||||
|
@ -1527,3 +1527,17 @@ class InternalTests(unittest.TestCase):
|
|||
self.assertRaises(mesonbuild.mesonlib.MesonBugException):
|
||||
i = mesonbuild.interpreter.Interpreter(build, mock=True)
|
||||
pickle.dumps(i)
|
||||
|
||||
def test_major_versions_differ(self) -> None:
|
||||
# Return True when going to next major release, when going to dev cycle,
|
||||
# when going to rc cycle or when going out of rc cycle.
|
||||
self.assertTrue(coredata.major_versions_differ('0.59.0', '0.60.0'))
|
||||
self.assertTrue(coredata.major_versions_differ('0.59.0', '0.59.99'))
|
||||
self.assertTrue(coredata.major_versions_differ('0.59.0', '0.60.0.rc1'))
|
||||
self.assertTrue(coredata.major_versions_differ('0.59.99', '0.60.0.rc1'))
|
||||
self.assertTrue(coredata.major_versions_differ('0.60.0.rc1', '0.60.0'))
|
||||
# Return False when going to next point release or when staying in dev/rc cycle.
|
||||
self.assertFalse(coredata.major_versions_differ('0.60.0', '0.60.0'))
|
||||
self.assertFalse(coredata.major_versions_differ('0.60.0', '0.60.1'))
|
||||
self.assertFalse(coredata.major_versions_differ('0.59.99', '0.59.99'))
|
||||
self.assertFalse(coredata.major_versions_differ('0.60.0.rc1', '0.60.0.rc2'))
|
||||
|
|
Loading…
Reference in New Issue