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

Structured Storage Reference Implementation #165

Open
jeremy-visionaid opened this issue Sep 24, 2024 · 4 comments
Open

Structured Storage Reference Implementation #165

jeremy-visionaid opened this issue Sep 24, 2024 · 4 comments

Comments

@jeremy-visionaid
Copy link
Contributor

If it's of interest, the current implementation of CFB I'm using is a dotnet wrapper of the Windows Structured Storage APIs:
https://learn.microsoft.com/en-us/windows/win32/stg/structured-storage-start-page

It uses CsWin32 to provide COM interop for the relevant interfaces, so it could be leveraged in unit tests to ensure that the files serialized by OpenMcdf are valid/compliant.

I'm happy to share it, but it would mean that any tests written against it would require a platform specific TFM (e.g. net6.0-windows)

If we also wanted to use that for CI, it would require transitioning to windows-latest instead of ubuntu-latest

@jeremy-visionaid
Copy link
Contributor Author

@ironfede @Numpsy The reference implementation might also be useful for benchmarking purposes

@Numpsy
Copy link
Contributor

Numpsy commented Sep 24, 2024

If we also wanted to use that for CI, it would require transitioning to windows-latest instead of ubuntu-latest

fwiw I think it'd be nice for validation purposes if the CI run the tests in multiple platforms rather than just one

@ironfede
Copy link
Owner

I think that this is really interesting. My only concern (as you've highlighted) @jeremy-visionaid , is that this would make OpenMcdf solution platform-dependent. Is there any solution you can think about it? A separate validation-test repository maybe?

@jeremy-visionaid
Copy link
Contributor Author

Locally I have a branch with an additional net8.0-windows test project with some extra tests. I think that's fine, it is what it is, just extra tests - but it can obviously only run on Windows.

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

No branches or pull requests

3 participants