Files
spoopyghosty0--frameport/tests/test_files.py
T
spoopyghosty0 428e8ffe05 Quest binary fixes, PC VR launch modes + SteamVR tuning, file sending, GUI scaling
Quest (Frame):
- frame.swapchain_limit (default on): overport's dispatcher aborted on swapchains
  > 4096 px (4XVR's 7680x3840 theatre textures); guard raised to 16384.
- frame.vk_sanitize (default on, Unreal): Vulkan shim (native/vkshim) that drops
  invalid render-pass pNext pointers; Lepton's Fossilize layer crashed Deadpool VR on them.
- FrameBridge: cylinder layers (curved menus / movie screens) shown as flat quad
  strips (setting cylinder_strips). Equirect (360°) layers still can't be shown.
- Launch tests read Lepton's crash logcat (agent v24); triage signatures for both crashes.
- Send files to Lepton apps (frameport frame send/storage, GUI "Send files"):
  ~/Videos, ~/Downloads, ~/Documents = /sdcard/Movies, Download, Documents in every app.

PC VR:
- Launch modes from the game files (repack with bundled Revive -> run directly,
  dual-API builds -> launch args, Oculus-only -> Revive); patches pcvr.repack_launcher,
  pcvr.launch_args; Platform SDK games routed to the PC.
- pcvr.steamvr_tuning (default on): reads SteamVR's session summary (dropped frames
  + compositor timeouts, fpsVR if installed) and sets per-app refresh rate / motion
  smoothing via fp_vrsettings.exe (OpenVR IVRSettings).

GUI: upload speed / ETA, UI scale (auto from Windows DPI under WSL, Settings ->
Appearance), fixed grey box in Problems & feedback.
2026-09-30 21:51:37 -04:00

20 lines
682 B
Python

import pytest
from frameport.install import files
def test_items_keep_folder_structure(tmp_path):
(tmp_path / "Show/S1").mkdir(parents=True)
(tmp_path / "Show/S1/e1.mp4").write_bytes(b"12345")
(tmp_path / "movie.mkv").write_bytes(b"12")
items = files._items([tmp_path / "Show", tmp_path / "movie.mkv"], "Films")
assert [(i[1], i[2]) for i in items] == [("Films/Show/S1/e1.mp4", 5), ("Films/movie.mkv", 2)]
with pytest.raises(FileNotFoundError):
files._items([tmp_path / "missing"], "")
def test_subdir_stays_inside():
assert files._safe_subdir("a\\b/./c/") == "a/b/c"
with pytest.raises(ValueError):
files._safe_subdir("../etc")