Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add some dos directory resolving tests #368

Conversation

JorisVanEijden
Copy link
Contributor

No description provided.

@maximilien-noal
Copy link
Member

Nice ! I'll merge them into the branch. Thank you ! :)

@maximilien-noal maximilien-noal merged commit 4927bed into OpenRakis:fix/dos_file_manager Jul 6, 2023
maximilien-noal added a commit that referenced this pull request Jul 24, 2023
…e: Select and Get Default Drive. Fix: '..' and '.' support. (#358)

* Feature: Create Folder. Fix: '..' and '.' support.

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: IMemory interface. (DOSFileManager)

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: DosFilePathResolver class for DosFileManager

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DOSFileManager: use GetParentDirectoryFullPath more

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: GetDirectoryCaseSensitive -> TryGetFullNameOnDiskOfParentFolder

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: GetActualCaseForFileName -> TryGetHostFullNameForFile

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: parent parameter for TryGetFullNameOnDiskOfParentDirectory is not nullable

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: use bang instead of false

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: support filepaths such as 'C:file.ext'

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: temp file creation (Krondor)

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: recursive folder creation. Documentation.

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: moved IsThereAnyDirectoryOrFileWithTheSameName

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* doc: added missing XML documentation

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: rooted file path support (Dune 2)

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* git: ignore VSharp files

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: Moved current folder and DriveMap

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: current drive folder

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: relative path support with DOS drive

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: removed useless null checks

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* cleanup

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: removed useless null check

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: renamed forCreation parameter

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: renamed directory parameter

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: moved var closer to its usage

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* typo

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: Use OrdinalIgnoreCase for DOS names comparisons

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DOSFileManager: private DosPathResolver is readonly

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: SetCurrentDir expects a DOS path

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: clearer dos/Host parameters strings names

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: per-drive current folder path

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: use IEnumerable for DOS drive letters

Co-authored-by: Joris van Eijden <joris.vaneijden@gmail.com>

* refactor: don't convert char to string.

Co-authored-by: Joris van Eijden <joris.vaneijden@gmail.com>

* refactor: renamed a method

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: give searchPattern directly

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: enumerate folders first, then files

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: moved ToUpperInvariant before loop

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: use IDictionary interface

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: removed duplicated API (DosPathResolver)

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: removed boolean in public API

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: consider paths that start with '\' as rooted

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: Convert CurrentHostDirectory to forward slashes

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: renamed DosPathResolver method

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: DOS can't access folders above mountPoint

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: return the right paths. Fixes Krondor.

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: return PathNotFound, not FileNotFound

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: emulate 64 ASCIIZ limit for current path

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: RemoveDirectory INT21H function

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: initialize DriveMap in ctor

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: check whether paths are within mountpoints

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: INT21H GetCurrentDirectory

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: DriveLetter property for MountedFolder

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* Add some dos directory resolving tests (#368)

* fix: dos file mamager current directory format

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: DOSPathResolver as internal class

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* feature: Select/Get Default Drive (INT21H)

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: DosPathResolver doesn't expose state

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* doc: fixed RemoveDirectory documentation

Also simplified the function a bit.
It doesn't search for the parent anymore.

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: renamed DOS property

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: removed redundant cast

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: DosFPathResolver relative path calculations

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: GetCurrentDir calls SetZeroTerminatedString

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: SetCurrentFolder with relative paths

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* fix: OpenFile trying to resolve DOS path with host path

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: simplified CreateDirectory

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* refactor: removed useless Trim(DirSeparator), renamed vars

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DOSFileManager: access denied if folder alreasy exists

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DOSFileManager: Renamed TryGet... to GetXOrDefault pattern

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DOSFileManager: CreateFolder is no longer recursive

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DosPathResolver: startup currentDrive is a ctor parameter

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* MountedFolder: moved FullCurrentDosPathOnDrive into DosPathResolver method

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DosPathResolver: removed unused method

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DosPathResolver: renamed Try... method to GetXOrDefault pattern

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* MountedFolder: track Current DOS Folder, relative to drive

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* IMemory: removed duplicated UInt8/16/32 from Indexable

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

* DosPathResolver: pass string to GetExeParentFolder, call it only if needed

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>

---------

Signed-off-by: Maximilien Noal <noal.maximilien@gmail.com>
Co-authored-by: Joris van Eijden <joris.vaneijden@gmail.com>
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.

2 participants