mirror of
https://github.com/LTTLabsOSS/markbench-tests.git
synced 2026-01-08 05:33:52 -05:00
Changing some code to fix some bugs for versioning
This commit is contained in:
@@ -8,7 +8,7 @@ from argparse import ArgumentParser
|
||||
import time
|
||||
from subprocess import Popen, PIPE
|
||||
import threading
|
||||
from utils import find_latest_log, find_score_in_log, get_photoshop_version, get_premierepro_version, get_lightroom_version, get_aftereffects_version, get_davinci_version, get_pugetbench_version, get_latest_benchmark_by_version
|
||||
from utils import find_latest_log, trim_to_major_minor, find_score_in_log, get_photoshop_version, get_premierepro_version, get_lightroom_version, get_aftereffects_version, get_davinci_version, get_pugetbench_version, get_latest_benchmark_by_version
|
||||
|
||||
sys.path.insert(1, os.path.join(sys.path[0], ".."))
|
||||
from harness_utils.process import terminate_processes
|
||||
@@ -33,7 +33,6 @@ logging.getLogger('').addHandler(console)
|
||||
|
||||
EXECUTABLE_NAME = "PugetBench for Creators.exe"
|
||||
|
||||
|
||||
def read_output(stream, log_func, error_func, error_in_output):
|
||||
"""Read and log output in real-time from a stream (stdout or stderr)."""
|
||||
while True:
|
||||
@@ -64,6 +63,9 @@ def run_benchmark(application: str, app_version: str, benchmark_version: str):
|
||||
start_time = time.time()
|
||||
executable_path = Path(
|
||||
f"C:\\Program Files\\PugetBench for Creators\\{EXECUTABLE_NAME}")
|
||||
if not executable_path.exists():
|
||||
logging.error(f"PugetBench executable not found at {executable_path}")
|
||||
sys.exit(1)
|
||||
command_args = ["--run_count", "1", "--rerun_count", "1",
|
||||
"--benchmark_version", f"{benchmark_version}", "--preset",
|
||||
"Standard", "--app_version", f"{app_version}"]
|
||||
@@ -137,32 +139,47 @@ def main():
|
||||
|
||||
version = args.app_version
|
||||
score = 0
|
||||
full_version = None
|
||||
trimmed_version = None
|
||||
full_version = version
|
||||
trimmed_version = trim_to_major_minor(version)
|
||||
test = ""
|
||||
if args.app == "premierepro":
|
||||
test = "Adobe Premiere Pro"
|
||||
if version is None:
|
||||
full_version, trimmed_version = get_premierepro_version()
|
||||
if full_version is None or trimmed_version is None:
|
||||
logging.error("Could not determine Premiere Pro version. Is it installed?")
|
||||
sys.exit(1)
|
||||
elif args.app == "photoshop":
|
||||
test = "Adobe Photoshop"
|
||||
if version is None:
|
||||
full_version, trimmed_version = get_photoshop_version()
|
||||
if full_version is None or trimmed_version is None:
|
||||
logging.error("Could not determine Photoshop version. Is it installed?")
|
||||
sys.exit(1)
|
||||
elif args.app == "aftereffects":
|
||||
test = "Adobe After Effects"
|
||||
if version is None:
|
||||
full_version, trimmed_version = get_aftereffects_version()
|
||||
if full_version is None or trimmed_version is None:
|
||||
logging.error("Could not determine After Effects version. Is it installed?")
|
||||
sys.exit(1)
|
||||
elif args.app == "lightroom":
|
||||
test = "Adobe Lightroom Classic"
|
||||
if version is None:
|
||||
full_version, trimmed_version = get_lightroom_version()
|
||||
if full_version is None or trimmed_version is None:
|
||||
logging.error("Could not determine Lightroom version. Is it installed?")
|
||||
sys.exit(1)
|
||||
elif args.app == "resolve":
|
||||
test = "Davinci Resolve Studio"
|
||||
if version is None:
|
||||
full_version, trimmed_version = get_davinci_version()
|
||||
if full_version and trimmed_version:
|
||||
full_version += "-studio"
|
||||
trimmed_version += "-studio"
|
||||
if full_version is None or trimmed_version is None:
|
||||
logging.error("Could not determine Resolve Studio version. Is it installed?")
|
||||
sys.exit(1)
|
||||
full_version += "-studio"
|
||||
trimmed_version += "-studio"
|
||||
|
||||
|
||||
try:
|
||||
start_time, end_time = run_benchmark(
|
||||
|
||||
@@ -5,6 +5,21 @@ from pathlib import Path
|
||||
import win32api
|
||||
import csv
|
||||
|
||||
def trim_to_major_minor(version: str | None) -> str | None:
|
||||
if version is None:
|
||||
return None
|
||||
# Match major.minor at the start
|
||||
match = re.match(r"(\d+)\.(\d+)", version)
|
||||
if not match:
|
||||
return version # fallback if unrecognized
|
||||
|
||||
major_minor = f"{match.group(1)}.{match.group(2)}"
|
||||
|
||||
# Preserve -beta suffix if present
|
||||
if "-beta" in version:
|
||||
major_minor += "-beta"
|
||||
|
||||
return major_minor
|
||||
|
||||
def get_latest_benchmark_by_version(benchmark_name: str):
|
||||
"""Get the latest benchmark version, prioritizing beta if it's newer."""
|
||||
@@ -42,8 +57,14 @@ def get_latest_benchmark_by_version(benchmark_name: str):
|
||||
if not versions:
|
||||
raise ValueError("No valid benchmark versions found after parsing.")
|
||||
|
||||
# Sort versions (beta will automatically come last if sorted lexicographically)
|
||||
versions.sort(reverse=True)
|
||||
# Sort numerically, with releases before beta
|
||||
def version_key(v: str):
|
||||
main, *suffix = v.split("-")
|
||||
nums = tuple(int(x) for x in main.split("."))
|
||||
beta_flag = 1 if "-beta" in v else 0
|
||||
return nums, -beta_flag # release first
|
||||
|
||||
versions.sort(key=version_key, reverse=True)
|
||||
|
||||
# Return the latest version
|
||||
return versions[0]
|
||||
@@ -56,8 +77,7 @@ def find_latest_log():
|
||||
files = [os.path.join(puget_lunch_dir, file) for file in os.listdir(
|
||||
puget_lunch_dir) if os.path.isfile(os.path.join(puget_lunch_dir, file))]
|
||||
latest_file = max(files, key=os.path.getmtime)
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
return Path(script_dir) / latest_file
|
||||
return Path(latest_file)
|
||||
|
||||
|
||||
def find_score_in_log(log_path):
|
||||
@@ -105,7 +125,7 @@ def get_photoshop_version() -> tuple[str, str]:
|
||||
# Check if Adobe folder exists
|
||||
if not os.path.exists(base_path):
|
||||
print("Adobe directory not found.")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# Look for Adobe Photoshop folders
|
||||
possible_versions = sorted(
|
||||
@@ -124,8 +144,7 @@ def get_photoshop_version() -> tuple[str, str]:
|
||||
full_version = win32api.GetFileVersionInfo(exe_path, str_info_path)
|
||||
|
||||
# Trim to major.minor
|
||||
parts = full_version.split(".")
|
||||
major_minor = ".".join(parts[:2]) if len(parts) >= 2 else full_version
|
||||
major_minor = trim_to_major_minor(full_version)
|
||||
|
||||
return full_version, major_minor
|
||||
except Exception as e:
|
||||
@@ -140,7 +159,7 @@ def get_aftereffects_version() -> tuple[str, str]:
|
||||
# Check if Adobe folder exists
|
||||
if not os.path.exists(base_path):
|
||||
print("Adobe directory not found.")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# Look for After Effects folders (including Beta)
|
||||
possible_versions = sorted(
|
||||
@@ -165,8 +184,7 @@ def get_aftereffects_version() -> tuple[str, str]:
|
||||
full_version = str(win32api.GetFileVersionInfo(exe_path, str_info_path))
|
||||
|
||||
# Trim to major.minor
|
||||
parts = full_version.split(".")
|
||||
major_minor = ".".join(parts[:2]) if len(parts) >= 2 else full_version
|
||||
major_minor = trim_to_major_minor(full_version)
|
||||
|
||||
return full_version, major_minor
|
||||
except Exception as e:
|
||||
@@ -182,7 +200,7 @@ def get_premierepro_version() -> tuple[str, str]:
|
||||
# Check if Adobe folder exists
|
||||
if not os.path.exists(base_path):
|
||||
print("Adobe directory not found.")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# Look for Adobe Premiere Pro folders
|
||||
possible_versions = sorted(
|
||||
@@ -201,8 +219,7 @@ def get_premierepro_version() -> tuple[str, str]:
|
||||
full_version = win32api.GetFileVersionInfo(exe_path, str_info_path)
|
||||
|
||||
# Trim to major.minor
|
||||
parts = full_version.split(".")
|
||||
major_minor = ".".join(parts[:2]) if len(parts) >= 2 else full_version
|
||||
major_minor = trim_to_major_minor(full_version)
|
||||
|
||||
return full_version, major_minor
|
||||
except Exception as e:
|
||||
@@ -217,7 +234,7 @@ def get_lightroom_version() -> tuple[str, str]:
|
||||
# Check if Adobe folder exists
|
||||
if not os.path.exists(base_path):
|
||||
print("Adobe directory not found.")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# Look for Adobe Lightroom Classic folders
|
||||
possible_versions = sorted(
|
||||
@@ -236,8 +253,7 @@ def get_lightroom_version() -> tuple[str, str]:
|
||||
full_version = win32api.GetFileVersionInfo(exe_path, str_info_path)
|
||||
|
||||
# Trim to major.minor
|
||||
parts = full_version.split(".")
|
||||
major_minor = ".".join(parts[:2]) if len(parts) >= 2 else full_version
|
||||
major_minor = trim_to_major_minor(full_version)
|
||||
|
||||
return full_version, major_minor
|
||||
except Exception as e:
|
||||
@@ -261,8 +277,7 @@ def get_davinci_version() -> tuple[str, str]:
|
||||
full_version = win32api.GetFileVersionInfo(path, str_info_path)
|
||||
|
||||
# Trim to major.minor
|
||||
parts = full_version.split(".")
|
||||
major_minor = ".".join(parts[:2]) if len(parts) >= 2 else full_version
|
||||
major_minor = trim_to_major_minor(full_version)
|
||||
|
||||
return full_version, major_minor
|
||||
|
||||
|
||||
Reference in New Issue
Block a user