mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Merge branch 'blender-v5.2-release'
# Conflicts: # source/blender/sequencer/intern/utils.cc
This commit is contained in:
commit
01ff4fb425
10 changed files with 262 additions and 72 deletions
|
|
@ -1526,6 +1526,11 @@ if(TEST_SRC_DIR_EXISTS)
|
|||
--testdir "${TEST_SRC_DIR}/sequence_editing"
|
||||
)
|
||||
|
||||
add_blender_test(
|
||||
sequencer_strip_naming
|
||||
--python ${CMAKE_CURRENT_LIST_DIR}/sequencer_strip_naming.py
|
||||
)
|
||||
|
||||
add_blender_test(
|
||||
sequencer_load_meta_stack
|
||||
${TEST_SRC_DIR}/sequence_editing/vse_load_meta_stack.blend
|
||||
|
|
|
|||
|
|
@ -101,6 +101,12 @@ BLOCKLIST_AMD_WINDOWS_VK = [
|
|||
"implicit_volume.blend"
|
||||
]
|
||||
|
||||
# Block list for Linux/AMD official driver. On buildbot this driver can fail and the artifacts are likely
|
||||
# caused by incorrect index buffer synchronization or vertex shader execution.
|
||||
BLOCKLIST_AMD_LINUX_VK = [
|
||||
".*"
|
||||
]
|
||||
|
||||
BLOCKLIST_INTEL_WINDOWS_GL = [
|
||||
# Fails sporadically and causes all subsequent volume tests to fail (See #153612).
|
||||
"volume_instance.blend"
|
||||
|
|
@ -295,6 +301,8 @@ def main():
|
|||
blocklist += BLOCKLIST_NVIDIA_GL
|
||||
if gpu_vendor == "AMD" and sys.platform == "win32" and args.gpu_backend == "vulkan":
|
||||
blocklist += BLOCKLIST_AMD_WINDOWS_VK
|
||||
if gpu_vendor == "AMD" and sys.platform == "linux" and args.gpu_backend == "vulkan":
|
||||
blocklist += BLOCKLIST_AMD_LINUX_VK
|
||||
|
||||
report = EEVEEReport("EEVEE", args.outdir, args.oiiotool, variation=args.gpu_backend, blocklist=blocklist)
|
||||
if args.gpu_backend == "vulkan":
|
||||
|
|
|
|||
81
tests/python/sequencer_strip_naming.py
Normal file
81
tests/python/sequencer_strip_naming.py
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
# SPDX-FileCopyrightText: 2026 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# ./blender.bin --background --factory-startup --python tests/python/sequencer_strip_naming.py
|
||||
|
||||
import bpy
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
|
||||
class StripNamingTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
bpy.context.scene.sequence_editor_create()
|
||||
self.strips = bpy.context.scene.sequence_editor.strips
|
||||
|
||||
def tearDown(self):
|
||||
bpy.context.scene.sequence_editor_clear()
|
||||
|
||||
def test_duplicate_name_gets_numeric_suffix(self):
|
||||
# identical names get .001, .002, ...
|
||||
s1 = self.strips.new_meta("Meta", 1, 1)
|
||||
s2 = self.strips.new_meta("Meta", 2, 1)
|
||||
s3 = self.strips.new_meta("Meta", 3, 1)
|
||||
self.assertEqual(s1.name, "Meta")
|
||||
self.assertEqual(s2.name, "Meta.001")
|
||||
self.assertEqual(s3.name, "Meta.002")
|
||||
|
||||
def test_purely_numeric_suffix_increments(self):
|
||||
# strip name already ends in .###: the number should be increased
|
||||
s1 = self.strips.new_meta("Clip.012", 1, 1)
|
||||
s2 = self.strips.new_meta("Clip.012", 2, 1)
|
||||
self.assertEqual(s1.name, "Clip.012")
|
||||
self.assertEqual(s2.name, "Clip.013")
|
||||
|
||||
def test_dot_number_nonnumeric_suffix_not_stripped(self):
|
||||
# a ".###" followed by more characters should not be stripped
|
||||
name = "name.123_anything_456"
|
||||
s1 = self.strips.new_meta(name, 1, 1)
|
||||
s2 = self.strips.new_meta(name, 2, 1)
|
||||
s3 = self.strips.new_meta(name, 3, 1)
|
||||
self.assertEqual(s1.name, "name.123_anything_456")
|
||||
self.assertEqual(s2.name, "name.123_anything_456.001")
|
||||
self.assertEqual(s3.name, "name.123_anything_456.002")
|
||||
|
||||
def test_isoformat_name_not_stripped(self):
|
||||
# naming case from #160144:
|
||||
# datetime.isoformat() produces names like YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM
|
||||
# The ".ffffff+HH:MM" part must be preserved, not stripped
|
||||
name = "2024-01-15T12:30:45.123456+02:00"
|
||||
s1 = self.strips.new_meta(name, 1, 1)
|
||||
s2 = self.strips.new_meta(name, 2, 1)
|
||||
self.assertEqual(s1.name, name)
|
||||
self.assertEqual(s2.name, name + ".001")
|
||||
|
||||
def test_multiple_dots_last_numeric_increments(self):
|
||||
# "a.b.002": last suffix is purely numeric, so it should increment
|
||||
s1 = self.strips.new_meta("a.b.002", 1, 1)
|
||||
s2 = self.strips.new_meta("a.b.002", 2, 1)
|
||||
self.assertEqual(s1.name, "a.b.002")
|
||||
self.assertEqual(s2.name, "a.b.003")
|
||||
|
||||
def test_multiple_dots_last_nonnumeric_appends(self):
|
||||
# "a.b.c": last suffix is non-numeric, whole name is the base
|
||||
s1 = self.strips.new_meta("a.b.c", 1, 1)
|
||||
s2 = self.strips.new_meta("a.b.c", 2, 1)
|
||||
self.assertEqual(s1.name, "a.b.c")
|
||||
self.assertEqual(s2.name, "a.b.c.001")
|
||||
|
||||
|
||||
def main():
|
||||
argv = [sys.argv[0]]
|
||||
if '--' in sys.argv:
|
||||
argv += sys.argv[sys.argv.index('--') + 1:]
|
||||
|
||||
unittest.main(argv=argv)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -31,6 +31,12 @@ BLOCKLIST_VULKAN = [
|
|||
"image_log.blend",
|
||||
]
|
||||
|
||||
# Block list for Linux/AMD official driver. On buildbot this driver can fail and the artifacts are likely
|
||||
# caused by incorrect index buffer synchronization or vertex shader execution.
|
||||
BLOCKLIST_AMD_LINUX_VK = [
|
||||
".*"
|
||||
]
|
||||
|
||||
|
||||
def setup():
|
||||
import bpy
|
||||
|
|
@ -107,6 +113,12 @@ def main():
|
|||
if args.gpu_backend == "vulkan":
|
||||
blocklist += BLOCKLIST_VULKAN
|
||||
|
||||
# AMD Linux Vulkan driver blocks all tests due to index/vertex shader sync issues.
|
||||
gpu_vendor = render_report.get_gpu_device_vendor(args.blender)
|
||||
if os.getenv("BLENDER_TEST_IGNORE_VENDOR_BLOCKLIST") is None:
|
||||
if gpu_vendor == "AMD" and sys.platform == "linux" and args.gpu_backend == "vulkan":
|
||||
blocklist += BLOCKLIST_AMD_LINUX_VK
|
||||
|
||||
report = WorkbenchReport("Workbench", args.outdir, args.oiiotool, variation=args.gpu_backend, blocklist=blocklist)
|
||||
if args.gpu_backend == "vulkan":
|
||||
report.set_compare_engine('workbench', 'opengl')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue