unsloth/tests
Daniel Han 2043c734c4
Take two ubuntu jobs off their own runners: absorb one, delete the other (#9360)
Over 400 completed main push runs, 25 of 96 job types execute in under 120s:
1116s of work spread across 25 runners, each queuing for about three hours. Two
of them are dealt with here.

  Security audit :: pytest tests/security                72s exec, 11096s queue
  Unsloth export capability :: capability (ubuntu-latest) 67s exec, 10642s queue

Different problems, so different treatments.

The security suite MOVED, onto the Workflow trigger lint runner
------------------------------------------------------------------------
Same argument that put the lockfile and load-orchestrator lanes into Lint CI in
#9176: work with a narrow trigger, moved into a job that was going to occupy a
runner on this commit anyway, can only reduce the slots a commit takes. Here the
trigger widens too, since this host has no paths filter and security-audit.yml's
pull_request does, so the suite now runs on every pull request rather than on the
ones that touch its paths.

This host and NOT Lint CI, where the other lanes went, and that is the whole
decision. Lint CI installs shellcheck from apt, so its harden-runner has to
permit escalation and an apt mirror; a security gate moved there would run under
a policy weaker than the one it has today. Workflow trigger lint's harden-runner
block is byte-for-byte identical to the one the job carried in security-audit.yml
(block, disable-sudo, the same six endpoints), so nothing about its isolation
changes. harden-runner binds per runner, not per step, which is what makes that
the deciding constraint rather than a detail.

Folded into the existing pytest invocation rather than added as a step of its
own. I wrote it as a separate step first, so a security regression would not be
reported as a workflow-guard failure, and
test_the_guards_run_in_one_pytest_invocation rejected it: one step per module
costs about 15s of interpreter and conftest startup, measured in this repo at
53.9s as one invocation against 300.8s as one each. The guard is right and the
attribution preference is not worth 15s.

pytest and PyYAML are now pinned here to the versions security-audit.yml pinned
them to. That suite runs scripts/lint_workflow_triggers.py as a SUBPROCESS and
asserts on its exit semantics, so a pytest or PyYAML that resolves differently
changes what it is asserting against.

The capability ubuntu leg was DELETED, because it was already duplicated
------------------------------------------------------------------------
That workflow's own comment already explains why it has no macOS leg: every test
in tests/test_export_capability.py goes through _patch(), which monkeypatches
_has_torch, get_device and is_apple_silicon, so a real Mac proves nothing a Linux
runner does not -- and studio-backend-ci.yml runs the same file on ubuntu-latest
as part of `pytest tests/`.

That argument reaches one step further than it was taken. If Backend CI covers
the file on Linux, the ubuntu leg HERE is the duplicate too. Checked: the file is
not in that job's --ignore list. The import-safety test does not need a
torch-free image either; it installs its own builtins.__import__ blocker and
drops preloaded torch/unsloth from sys.modules, so it proves the same thing
inside Backend CI's fully installed environment.

Windows stays. Nothing else in CI runs that file there, and _has_torch's import
probe is the per-OS behaviour the job exists for.

The guard
------------------------------------------------------------------------
tests/studio/test_short_job_absorption.py, wired into the unfiltered job. Both
changes fail silently rather than loudly if they regress, which is what it is
for:

  - the suite still runs somewhere, and no longer runs twice
  - the absorbing job's harden-runner has not widened past the six endpoints the
    suite came with, since "the policy is identical" is the entire justification
    for this host
  - the absorbing job has not gained a paths filter
  - capability still has its Windows leg
  - studio-backend-ci.yml still runs the whole tests/ tree and does not name
    test_export_capability.py, because one line added to that --ignore list
    would remove the coverage the ubuntu leg was deleted for, and nothing would
    turn red

Mutation-tested, each failing exactly one test: drop tests/security from the
invocation; add one endpoint to the allowlist; add
--ignore=tests/test_export_capability.py to Backend CI; remove the Windows leg.

Also corrected a docstring in tests/security/test_scan_packages.py that named
tests-security and what it installs. It was about to become false.

Verification
------------------------------------------------------------------------
tests/security under the host's own -n 4: 409 passed, 6 skipped.
scripts/lint_workflow_triggers.py: OK across 41 workflow files.
All three workflows still parse; security-audit.yml keeps its other 4 jobs.

Net: 7 short ubuntu slots per commit, down to 5.

A note for whoever extends this. The census that found these 15 candidates was
partly stale and I nearly acted on it: the lockfile and load-orchestrator rows
were already absorbed by #9176 and their samples were pre-merge tails, and the
two Local Agent Guides rows show ~0s because they are if-gated to schedule and
dispatch, which is a skip and not a fast job. Read the trigger before ranking by
duration. Of the remaining candidates, Scorecard is blocked by its job-level
id-token: write, the Kaggle gate by a downstream needs:, npm-provenance by an
audit egress policy plus registry.npmjs.org, and the notransport clean-install
lane by a container that asserts several common tools are absent.
2026-08-20 00:05:28 -07:00
..
_shared Give each xdist worker its own torch.compile cache directory (#9134) 2026-08-17 18:48:11 -07:00
fast_inference test: fast end-to-end GRPO fast_inference vLLM rollout test (#7136) 2026-07-26 00:22:48 -07:00
kaggle Make a hung kaggle launcher say where it is stuck (#9104) 2026-08-17 18:47:48 -07:00
notebooks Make the Colab oracle tripwire able to fire, and stop blaming start.py for a hung agent CLI (#7838) 2026-08-04 07:42:42 -07:00
python Stub the two helpers the sliced harnesses started importing (#9342) 2026-08-19 22:06:51 -07:00
qlora Formatting: ruff line-length 100, kwarg-spacing passes, drop blank after short local imports (#6079) 2026-06-08 04:24:13 -07:00
saving Use Kaggle's large overlay for saves, and refuse a GGUF export that cannot fit (#8439) 2026-08-13 18:56:43 -07:00
security Take two ubuntu jobs off their own runners: absorb one, delete the other (#9360) 2026-08-20 00:05:28 -07:00
sh Studio: propagate required backend version to repair pipeline (#8610) (#8670) 2026-08-19 19:12:22 +01:00
studio Take two ubuntu jobs off their own runners: absorb one, delete the other (#9360) 2026-08-20 00:05:28 -07:00
studio_setup_ps1 Studio: route every Windows installer line through the UTF-8 stdout sink (#8148) 2026-08-08 06:47:03 -07:00
utils Keep xFormers attention masks on the GPU running each layer (#8516) 2026-08-19 19:28:34 -03:00
version_compat Hand the LoRA to vLLM on TRL 1.x GRPO rollouts (#8701) 2026-08-14 06:46:48 -07:00
vllm_compat Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
__init__.py Qwen 3, Bug Fixes (#2445) 2025-04-30 22:38:39 -07:00
_grpo_dispatch_source.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
_rl_source.py Stop the GRPO hidden-states wrapper paying for logits it discards (#8576) 2026-08-13 05:15:07 -07:00
_zoo_aggressive_cuda_spoof.py Stop the CUDA test spoofs reporting an exhausted card (#8123) 2026-08-08 04:45:25 -07:00
_zoo_rocm_spoof.py AMD: CI coverage for recent fixes, plus three wrong gfx ids (#7431) 2026-07-25 18:58:02 -05:00
conftest.py Give each xdist worker its own torch.compile cache directory (#9134) 2026-08-17 18:48:11 -07:00
run_all.sh Anchor the host-defaults assertions and take the file off the skip list (#7774) 2026-08-03 02:42:26 -07:00
test_allow_cpu_import_driverless.py Ask whether a device is present before asking what it can do (#8653) 2026-08-13 04:40:07 -07:00
test_attention_implementation.py fix(gpt-oss): prefer flex attention over sdpa (#5701) 2026-05-22 08:38:38 -07:00
test_attn_impl_honor_explicit.py Honor an explicit sdpa or flex_attention request when flash is disabled (#6847) 2026-07-06 05:45:45 -07:00
test_bad_mappings_redirect.py Keep the newer-mapper probe from replacing the installed FP8 mappers (#7478) 2026-07-27 04:21:27 -07:00
test_broken_tf_does_not_break_import.py Do not let a broken TensorFlow install break the Unsloth import (#8124) 2026-08-09 05:15:40 -07:00
test_broken_torchvision_probe.py Name a torchvision whose compiled ops do not match torch (#8128) 2026-08-09 04:30:12 -07:00
test_callback_signature_drift.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_cli_export_unpacking.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_collection_hygiene.py tests: make pytest tests collect cleanly and drop the deleted QVQ registry mirror (#8206) 2026-08-08 20:03:55 -07:00
test_compressed_export_gpu_release.py studio: shard export checkpoint loads across all visible GPUs (#7215) 2026-07-26 04:16:36 -07:00
test_cuda_spoof_reports_free_memory.py Stop the CUDA test spoofs reporting an exhausted card (#8123) 2026-08-08 04:45:25 -07:00
test_dataclass_default_backfill.py Keep up with transformers 5.x, TRL 0.22.x and peft (#7866) 2026-08-07 06:33:05 -07:00
test_deliberate_crashes_suppress_cores.py Crash guard: read dumpability in order, and stop losing crashes to scope and naming (#8808) 2026-08-16 01:05:31 -07:00
test_device_helpers.py Report the real cause when a save or GGUF export fails (#7861) 2026-08-06 00:12:32 -07:00
test_enforce_kwargs_spacing.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_fa2_fast_generate_bypass.py Bypass fast_generate for flash_attention_2 models (StaticCache + FA2 produces gibberish) (#7429) 2026-07-26 23:07:33 -07:00
test_fast_gemv_dispatch.py Fix fast inference crash on compressed-tensors FP8 models (#7025) 2026-07-09 04:10:59 -07:00
test_fast_generate_slow_guard.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_finetune_last_n_layers.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_flash_attn_4_namespace_shadow.py Keep xFormers working when flash-attn 4 is installed, and guard the varlen int32 overflow (#8957) 2026-08-16 02:39:37 -07:00
test_flex_attention_needs_ampere.py Do not choose flex attention on a card that cannot run its kernel (#8137) 2026-08-08 05:31:23 -07:00
test_float32_generate_autocast.py Do not enter CUDA autocast for a float32 model during generate (#7900) 2026-08-05 04:35:21 -07:00
test_float32_no_fp16_autocast.py Keep an explicitly requested float32 model in float32 without bfloat16 (#7867) 2026-08-09 05:12:02 -07:00
test_fp8_device_context.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_fp8_restore_dropped_scale.py Restore dropped FP8 weight_scale_inv tensors on load (#6978) 2026-07-09 06:44:44 -07:00
test_fp8_tiny_e8m0.py fix: enable XPU support and update hardcoded CUDA selections for tests (#7401) 2026-07-28 15:38:57 -07:00
test_fused_ce_not_return_dict_logits.py fix: use EMPTY_LOGITS on the fused-CE not-return_dict path (#2068) (#6482) 2026-06-23 01:26:55 -07:00
test_gemma4_chat_template.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_gemma_2b_mapper_key.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_generate_kwarg_gate.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_generation_failure_is_visible.py Restore warnings_issued for trl trainers on transformers 5.1+ (#7854) 2026-08-05 04:34:23 -07:00
test_get_model_name.py Keep the newer-mapper probe from replacing the installed FP8 mappers (#7478) 2026-07-27 04:21:27 -07:00
test_gguf_basename_platform_matrix.py Fix GGUF export writing outside the chosen save directory on Windows (#7897) (#7937) 2026-08-05 08:24:48 -07:00
test_gguf_disk_headroom.py Free the intermediate 16-bit merge when the GGUF quants will not fit (#8500) 2026-08-13 04:42:31 -07:00
test_gguf_model_basename.py Fix GGUF export writing outside the chosen save directory on Windows (#7897) (#7937) 2026-08-05 08:24:48 -07:00
test_gguf_windows_export_routing.py Fix GGUF export writing outside the chosen save directory on Windows (#7897) (#7937) 2026-08-05 08:24:48 -07:00
test_gguf_windows_native.py Fix GGUF export writing outside the chosen save directory on Windows (#7897) (#7937) 2026-08-05 08:24:48 -07:00
test_gradient_checkpointing_restore.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_grouped_gemm_optional_gather_indices.py fix grouped_gemm crash on the documented gather_indices=None default (#8629) 2026-08-14 05:27:25 -07:00
test_grpo_accumulated_loss_hidden_states_signal.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_grpo_autocast_disabled.py Keep an explicitly requested float32 model in float32 without bfloat16 (#7867) 2026-08-09 05:12:02 -07:00
test_grpo_autocast_per_trainer.py Keep an explicitly requested float32 model in float32 without bfloat16 (#7867) 2026-08-09 05:12:02 -07:00
test_grpo_hidden_states_logits_cost.py Stop the GRPO hidden-states wrapper paying for logits it discards (#8576) 2026-08-13 05:15:07 -07:00
test_grpo_hidden_states_per_call_degradation.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_grpo_hidden_states_signal.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_grpo_hidden_states_wrap_target.py GRPO: wrap the model that owns the head when falling back to hidden states (#8231) 2026-08-09 04:48:46 -07:00
test_grpo_packed_raw_logits_nograd.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_grpo_padded_raw_logits.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_grpo_width_dispatch_sites.py GRPO: dispatch on width at the remaining lm_head matmul call sites (#8204) 2026-08-11 10:44:06 -07:00
test_ignored_tokenizer_casing.py Match IGNORED_TOKENIZER_NAMES case-insensitively (#6620) 2026-06-23 19:40:50 -03:00
test_import_fixes_drift.py Fix Apple Silicon M4+ CPU frequency reported as MHz instead of GHz (#8571) 2026-08-12 17:02:52 -03:00
test_installer_interactive_prompts.py Make install.ps1 work with the user's PowerShell profile loaded (#8161) 2026-08-09 04:27:28 -07:00
test_installer_profile_hardening.py Windows: stop depending on the generated unsloth.exe console script (#8592) 2026-08-13 07:54:51 -07:00
test_installer_shortcut_icons.py feat(install): use pre-built Tauri icon for macOS .app bundle (#7628) 2026-07-31 12:05:34 +02:00
test_installer_skip_autostart.py fix(install): fail non-tauri installer errors (#7123) 2026-07-15 04:37:03 -07:00
test_installer_system32_guard.py Windows: stop the oversize guard tests from emptying os.environ (#8696) 2026-08-13 07:00:50 -07:00
test_installer_unsloth_version.py Installer: report the installed Unsloth version (#7265) 2026-07-21 03:48:49 -07:00
test_kaggle_gguf_error_message.py Report the real cause when a save or GGUF export fails (#7861) 2026-08-06 00:12:32 -07:00
test_lint_no_parallel_clamp.py Studio: stop MTP forcing llama-server to a single parallel slot (#8172) 2026-08-08 21:09:58 -07:00
test_loader_glob_skip.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_map_eos_token.py Honor an explicit map_eos_token=False in get_chat_template (#7475) 2026-07-30 10:09:38 -03:00
test_mapper_no_duplicate_keys.py Add test to guard against duplicate keys in __INT_TO_FLOAT_MAPPER (#7419) 2026-07-29 02:37:10 -07:00
test_missing_optional_dep_skips.py Keep an explicitly requested float32 model in float32 without bfloat16 (#7867) 2026-08-09 05:12:02 -07:00
test_missing_torchvision_vlm.py Fix misleading 'only for image models' error for Qwen3-VL when torchvision is missing (#6525) 2026-06-23 01:28:09 -07:00
test_model_registry.py tests: build the hub-error fixtures without calling __init__ (huggingface_hub 1.x) (#8207) 2026-08-08 21:09:00 -07:00
test_moe_lora_targets.py Scope MoE expert LoRA detection to actual MLP projection targets (#6849) 2026-07-06 05:45:06 -07:00
test_multi_image_grpo_chunking.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_new_mapper_fetched_fp8.py Cover the FP8 row-scaling path in the newer-mapper probe (#7516) 2026-07-28 16:13:00 -07:00
test_new_mapper_no_global_leak.py Keep the newer-mapper probe from replacing the installed FP8 mappers (#7478) 2026-07-27 04:21:27 -07:00
test_nvfp4_quant_load.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_offline_loading_helpers.py Report the network error when the offline retry finds nothing cached (#8121) 2026-08-09 05:01:02 -07:00
test_offload_embedding_hooks.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_offload_tied_autodisable.py Turn off embedding offload when the model is dispatched across devices (#8272) 2026-08-09 09:26:01 -07:00
test_offload_tied_guard.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_offloaded_parameter_hint.py Report the real cause when a save or GGUF export fails (#7861) 2026-08-06 00:12:32 -07:00
test_peft_stale_torchao.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_peft_symbol_backfill.py Keep up with transformers 5.x, TRL 0.22.x and peft (#7866) 2026-08-07 06:33:05 -07:00
test_peft_tensor_parallel_compat.py fix: keep LoRA reloads working with PEFT 0.19 (#6748) 2026-06-30 20:26:57 +01:00
test_peft_weight_converter_compat.py Formatting: ruff line-length 100, kwarg-spacing passes, drop blank after short local imports (#6079) 2026-06-08 04:24:13 -07:00
test_prefetch_snapshot_scope.py Fetch a sentence-transformers model's subfolder weights instead of pruning them (#7855) 2026-08-05 04:34:48 -07:00
test_pretrain_compile_reset.py Add regression tests for the stray-forward compile-cache reset (#6569) 2026-06-22 07:22:47 -07:00
test_profile_startup_gate.py Make the startup profile a gate, with budgets from its own measurements (#8965) 2026-08-16 02:37:32 -07:00
test_psutil_apple_cpu_freq.py Fix Apple Silicon M4+ CPU frequency reported as MHz instead of GHz (#8571) 2026-08-12 17:02:52 -03:00
test_public_api_surface.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00
test_python39_compatibility.py Do not scan vendored packages that refuse to import on our floor (#8252) 2026-08-09 04:06:19 -07:00
test_pythonpath_empty_components.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_raw_text.py tests: make pytest tests collect cleanly and drop the deleted QVQ registry mirror (#8206) 2026-08-08 20:03:55 -07:00
test_raw_text_json_loading.py Parse a .json dataset file as one JSON document instead of line-by-line (#7422) 2026-07-28 21:40:43 -03:00
test_resolve_model_class.py Formatting: ruff line-length 100, kwarg-spacing passes, drop blank after short local imports (#6079) 2026-06-08 04:24:13 -07:00
test_rl_config_compat.py Read rl.py with an explicit utf-8 encoding in the config compat test (#8333) 2026-08-10 05:47:09 -07:00
test_runtime_text_encoding.py Pin utf-8 on shipping-code text I/O instead of the operator locale (#7486) 2026-07-27 02:14:20 -07:00
test_save_entrypoints_reach_converter.py Report the real cause when a save or GGUF export fails (#7861) 2026-08-06 00:12:32 -07:00
test_save_lora_without_vllm.py Attach save_lora without a vLLM engine (#8127) 2026-08-08 06:14:12 -07:00
test_settle_eager_fallbacks_between_steps.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_sft_vision_dataset_gate.py Keep up with transformers 5.x, TRL 0.22.x and peft (#7866) 2026-08-07 06:33:05 -07:00
test_source_read_encoding.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_st_save_merged_signature.py Report the real cause when a save or GGUF export fails (#7861) 2026-08-06 00:12:32 -07:00
test_st_subfolder_weights_are_fetched.py Fetch a sentence-transformers model's subfolder weights instead of pruning them (#7855) 2026-08-05 04:34:48 -07:00
test_studio_install_workspace_guard.py Installer: suppress macOS uv developer tools dialog (#8479) 2026-08-11 12:19:30 -07:00
test_studio_root_resilience.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_studio_shutdown_thread_wait.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
test_synthetic_chunk_data.py Fix SyntheticDataKit.chunk_data emitting chunks over max_tokens (#7073) 2026-07-12 05:06:11 -07:00
test_synthetic_vllm_startup_failure.py Cut Repo tests (CPU) roughly in half: stop the synthetic vLLM tests reaping a fake server (#8993) 2026-08-16 07:39:43 -07:00
test_tool_mask_zoo_compat.py tests: read checked-in files as UTF-8 instead of the platform default (#7438) 2026-07-26 23:31:56 -07:00
test_torchao_aten_grouped_mm.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_torchao_nf4tensor_move.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_torchao_subprocess_fix.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_torchao_torch_symbol_skew.py Settle deferred compile-mode switches between training steps (#7955) 2026-08-06 02:45:50 -07:00
test_torchaudio_cuda_mismatch.py Do not let a CUDA-mismatched torchaudio take the whole import with it (#8496) 2026-08-13 05:12:36 -07:00
test_transformers5_bare_annotation_live.py Keep up with transformers 5.x, TRL 0.22.x and peft (#7866) 2026-08-07 06:33:05 -07:00
test_transformers_dependency_floor.py Tell users to upgrade the dependency, not transformers, when a --no-deps install leaves a floor unmet (#8212) 2026-08-09 01:45:07 -07:00
test_uma_safetensors_load.py Faster safetensors weight loading on unified-memory (integrated) GPUs (#5988) 2026-07-22 05:20:59 -07:00
test_uninitialized_position_ids.py Load DeepSeek-OCR and other VLMs that register AutoModel in auto_map (#6421) 2026-06-18 07:03:43 -07:00
test_version_single_source.py Report unsloth's own version on the MLX path (#8395) 2026-08-11 01:10:03 -07:00
test_video_path_validation.py Fix formatting_func race in UnslothVisionDataCollator without a lock (#7698) 2026-08-02 22:44:09 -07:00
test_vllm_broken_detection.py Fix fast_inference crash on ABI-broken vLLM: probe compiled extensions, not just import vllm (#6621) 2026-06-26 22:43:36 -07:00
test_vllm_cuda_mismatch_wheel_url.py Stop the vLLM CUDA mismatch hint printing a wheel URL that 404s (#8200) 2026-08-10 06:42:39 -07:00
test_warnings_issued_guard.py Apply the moved trainer kwargs to the config instead of dropping them (#8374) 2026-08-11 04:35:10 -07:00
test_windows_amd_gpu_scan_fallback.py Windows: stop depending on the generated unsloth.exe console script (#8592) 2026-08-13 07:54:51 -07:00
test_windows_rocm_bnb_version.py Reduce and tighten comments and docstrings across the test suite (#6429) 2026-06-18 01:07:09 -07:00