MCPcopy Create free account
hub / github.com/FastLED/FastLED / runner

Function runner

ci/util/test_runner.py:1473–1936  ·  view source on GitHub ↗

Main test runner function that determines what to run and executes tests Args: args: Parsed command line arguments src_code_change: Whether source code has changed since last run cpp_test_change: Whether C++ test-related files (src/ or tests/) have changed e

(
    args: TestArgs,
    src_code_change: bool = True,
    cpp_test_change: bool = True,
    examples_change: bool = True,
    python_test_change: bool = True,
    wasm_change: bool = True,
    fingerprint_manager: Optional["FingerprintManager"] = None,
)

Source from the content-addressed store, hash-verified

1471
1472
1473def runner(
1474 args: TestArgs,
1475 src_code_change: bool = True,
1476 cpp_test_change: bool = True,
1477 examples_change: bool = True,
1478 python_test_change: bool = True,
1479 wasm_change: bool = True,
1480 fingerprint_manager: Optional["FingerprintManager"] = None,
1481) -> None:
1482 """
1483 Main test runner function that determines what to run and executes tests
1484
1485 Args:
1486 args: Parsed command line arguments
1487 src_code_change: Whether source code has changed since last run
1488 cpp_test_change: Whether C++ test-related files (src/ or tests/) have changed
1489 examples_change: Whether example-related files have changed
1490 python_test_change: Whether Python test-related files have changed
1491 wasm_change: Whether WASM-related files have changed
1492 fingerprint_manager: Optional fingerprint manager for test metadata
1493 """
1494 # Debug logging - only shown in verbose mode to reduce UI clutter
1495 if args.verbose:
1496 # Show only active/non-default flags instead of full TestArgs dump
1497 active_flags: list[str] = []
1498 if args.test:
1499 active_flags.append(f"test={args.test}")
1500 if args.examples:
1501 # Format list as comma-separated values instead of Python list syntax
1502 active_flags.append(f"examples={','.join(args.examples)}")
1503 if args.debug:
1504 active_flags.append("debug")
1505 if args.clean:
1506 active_flags.append("clean")
1507 if args.full:
1508 active_flags.append("full")
1509 if args.no_parallel:
1510 active_flags.append("no-parallel")
1511 if args.build_mode:
1512 active_flags.append(f"build_mode={args.build_mode}")
1513 if args.no_fingerprint:
1514 active_flags.append("no-fingerprint")
1515 if args.no_pch:
1516 active_flags.append("no-pch")
1517
1518 if active_flags:
1519 ts_print(f"Active flags: {', '.join(active_flags)}")
1520
1521 # Clear zccache stats at start to show only metrics from this build
1522 from ci.util.zccache_config import clear_zccache_stats
1523
1524 clear_zccache_stats()
1525
1526 # Determine test categories first to check if we should use meson
1527 test_categories = determine_test_categories(args)
1528
1529 # Always use Meson build system for unit tests (Python build system has been removed)
1530 # Only return early if unit tests are the ONLY thing running (unit_only mode)

Callers

nothing calls this directly

Calls 15

ts_printFunction · 0.90
clear_zccache_statsFunction · 0.90
run_meson_build_and_testFunction · 0.90
show_zccache_statsFunction · 0.90
print_cache_hitFunction · 0.90
save_full_run_resultFunction · 0.90
get_full_run_cache_fileFunction · 0.90
_format_failure_summaryFunction · 0.85
FailedTestEntryClass · 0.85
ProcessTimingClass · 0.85

Tested by

no test coverage detected