Skip to content

Исправить проверку отсутствующих путей установки - #17

Merged
Liis17 merged 1 commit into
mainfrom
fix/build-creation-logs
Oct 24, 2026
Merged

Liis17 merged 1 commit into
mainfrom
fix/build-creation-logs

Conversation

@Liis17

@Liis17 Liis17 commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Исправлена проблема массовых FileNotFoundException в InstanceStorage.TryGetAttributes при проверке отсутствующих путей установки
  • Релизация больше не бросает исключения для несуществующих путей, предотвращая чрезмерное переполнение буфера обработчика исключений отладчика
  • Сохранена проверка символических ссылок и других ошибок ввода-вывода
  • Добавлена гарантия отсутствия исключений в новом тестовом методе

Testing

  • InstanceStoreTests: все 132 теста прошли (3 пропущены)
  • ContainedPathAllowsMissingInstallationPathsWithoutThrowing: новый тест проходит, гарантируя отсутствие исключений при проверке 5 тестовых путей
  • ContainedPathRejectsTraversalAbsolutePathsAndReparsePoints: дополнительная проверка проходит после очистки тестовой директории
  • InstanceStoreTests: три связанных набора тестов (InstanceStoreTests, MinecraftInstallationTests, InstallationCoordinatorTests, InstanceBackupsAndScreenshotsTests) успешно запущены
  • Интеграционное тестирование: тестирование создания сборки не запускалось (самостоятельный запуск)
  • Изменения diff: исправлена проверка InstanceStorage.ContainedPath и обновлен тест, предотвращая исключения при удалении тестовой директории

Compatibility & Risks

  • Потенциально измененные компоненты:

    • windows/Hako.Core/Instances/InstanceStorage.cs: изменение в методе TryGetAttributes
    • windows/Hako.Tests/InstanceStoreTests.cs: добавлен новый тест и исправлен существующий
  • Риск безопасности: низкий — нет изменений, влияющих на аутентификацию, безопасность или сетевые операции

  • Обратная совместимость: сохранена — нет изменений API или формата сохраненных данных

  • Вероятность рецидивов: низкая — исправление заменяет исключения более надежным методом обнаружения (FileAttributes(-1))

Testing

  • Нативные функции: изменение использует проверку FileAttributes вместо исключений, сохраняя иерархический анализ и обнаружение ошибок ввода-вывода
  • Конкурентность: тестирование в одном потоке, влияние конкурентности минимально
  • Вывод отладчика: более 5000 исключений, возникших во время тестирования создания сборки, предотвращены
  • Практический тест: устранены все 5 исключений для типичного отсутствующего пути при проверке установки в Minecraft assets и Java legal directories

- FileInfo.Attributes вместо File.GetAttributes: -1 для несуществующего пути
- Больше не гонятся FileNotFoundException и DirectoryNotFoundException при проверке установки
@Liis17
Liis17 merged commit 157ac66 into main Oct 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant