Add more failing tests for MCB. These are pretty basics and deal with holes.
They are pretty handy to show how broken the current MCB implementation is, in regard to holes management: it fails at properly counting runs when there are holes and it creates virtual runs (hence the broken count) for each hole. This shouldn't happen.
CORE-11002
svn path=/trunk/; revision=71177
Add a simple test for FsRtlAddLargeMcbEntry() which shows how hard it's broken... Not only it doesn't support mismatching LBNs, but it also replaces current mapping with broken one
CORE-11002
svn path=/trunk/; revision=71141
Add more tests for LargeMcb functions.
These are not invented but real cases: they are extracted from Ext2Fsd driver attempting to read a file from disk. The read file in ReactOS is totally corrupted.
This shows how broken our current MCB implementation is. And unfortunately confirms CORE-11002.
I recommend not to import any other FSDs relying on MCB as long as this is not fixed (eg. CORE-11040); it makes them pretty pointless.
CORE-11002
svn path=/trunk/; revision=71091
- Define a new macro function KmtGetSystemOrEmbeddedRoutineAddress() which is to be used to get a function address from Mm if it exists system-wide or to fallback to embedded function if it doesn't exist
- Use this mechanism to add tests for the newly implemented FsRtlRemoveDotsFromPath() which is Vista+.
That allows, with a single build (and thus, same binaries), testing a function in ReactOS and in Windows.
svn path=/trunk/; revision=71046
- Add a test verifying that opening a file using different parent directories still yields handles to the same file
CORE-10483
svn path=/trunk/; revision=69877
- Pass the correct DeviceObject to PoRequestPowerIrp's callback
- Use the IRP stack to store callback parameters instead of a pool allocation as shown by the test
svn path=/trunk/; revision=69503
Add more tests for IoCreateFile(), this time purely dealing with symlinks reparse points.
They won't run on ReactOS (obviously) as we don't have RW NTFS support.
On Windows, they show interesting results....
With Windows 2003, creating the symlink is allowed and works, but then Windows is totally unable to deal with it and keeps complaining about an unhandled reparse tag.
The only way to open it is to open the reparse point itself. Not that working symlinks... Not sure which part is not able to handle the said reparse tag. NTFS? Io?
With Windows Vista+, it just works fine. Symlink is created & functionnal.
Broken logic!
svn path=/trunk/; revision=69353
- Properly free handles in driver (spotted by Thomas)
- Remove dead code in driver (spotted by Thomas)
- Send an IOCTL to stop on symlinks to allow more precise tests
svn path=/trunk/; revision=69336
Extend the IoCreateFile tests with two parts tests.
First part properly checks for opening/reparse handling on mount points (and ideally on symlinks, see below).
The other part checks for proper handling of the IO_STOP_ON_SYMLINK parameter.
Regarding symlink, I'm clearly not convinced that what I did is correct (hence the failure on both W2K3 & ROS). It seems to me that symlink resolution is up to the FSD and not to IO which only handles mount point traversal.
If someone (Alex?) can confirm/infirm and give more insight, that's more than welcome.
svn path=/trunk/; revision=69322
- Add missing OBJ_KERNEL_HANDLE
- OBJ_KERNEL_HANDLE in user mode has no effect... no reason to make a define around it
CORE-10207
svn path=/trunk/; revision=69296
- Add some more reserved mapping tests for special pool tags and unaligned addresses
- Validate MDL pages in MmMdl test
svn path=/trunk/; revision=69169
- Add support for intsafe signed Add functions
- Guard signed math in ENABLE_INTSAFE_SIGNED_FUNCTIONS
CORE-9947 #resolve
svn path=/trunk/; revision=68573
- Show that PAGE_NOCACHE also works for image and data sections
- Show that *MapViewOfSection returns user space addresses
CORE-9808
svn path=/trunk/; revision=68352
Don't attempt to allocate null-size buffer when copying empty string.
Note to next generations students: test your code and DON'T LEAK MEMORY!!!!
It still leaks atm, will have a look later on.
Note to Mr Bragin, beloved ReactOS Project Coordinator: did you actually reviewed your students work?
CORE-7272
svn path=/trunk/; revision=67885
- Add a test showing RtlUpcaseUnicodeString behavior with zero-length strings
- Run all test cases against FsRtlIsNameInExpressionTest on checked builds, only the Dbcs version asserts
CORE-9254
svn path=/trunk/; revision=66479
- Add some simple tests for RtlRaiseStatus to the RtlException test
- Add missing volatile in (disabled) stack overflow test that caused an infinite loop on GCC builds
CORE-8773
svn path=/trunk/; revision=66351
- Add KmtGetSystemRoutineAddress and use it to avoid importing functions that are not available in some versions of Windows. This allows running kmtests on Windows XP SP3 (and probably Server 2003 SP0/SP2). Note that failures on XP are still not valid bugs, this is purely for convenience! Dedicated to Jérôme.
ROSTESTS-150
svn path=/trunk/; revision=66281
Close your eyes.
Really do it! I see you kept them open...
There are closed now?
OK... All fine.
You can open them again.
Nothing happened.
Source code always used to be like that. A commented was never left by mistake in it.
Never, ok?
svn path=/trunk/; revision=65402
Reenable tests for MCBs. They got fixed by Hervé in r65398.
ROSTESTS-106 #resolve #comment Fixed by Hervé in r65398. Thanks!
svn path=/trunk/; revision=65401
- Move out definitions for user/kernel test utility functions into their own header (still not pretty, but at least the one header won't get as huge
- Make KmtStartThread/KmtFinishThread available to all tests
svn path=/trunk/; revision=65256
- Test what happens to the 'base' of memory allocated with ZwAllocateVirtualMemory
- Fix some tests according to w2k3sp2 behaviour.
Thanks Amine for testing ;-)
svn path=/trunk/; revision=64028
Revert the DDK compatibility hack and apply a real fix. I kept the hack for NDK exports, we should consider changing them as well for consistency reasons.
svn path=/trunk/; revision=63268
Add a temp hack that allows to compile kmtest_drv with either the current incompatible object type data imports or with the fixed ones
svn path=/trunk/; revision=63222
Complete a bit more IoCreateFile tests, taking into account relatives.
A side note (related to first commit - actually to these test as a whole):
It's pretty unfortunate that they work (on my Windows 2K3). They just expose
a totally different behavior than expected reading R. Nagar (pp 478 - 479).
The experimental behavior also being different from behavior expected from IFS
samples provided by MS.
Perhaps some magic in the callpath between IopParseDevice return and IoCreateFile return?
svn path=/trunk/; revision=62960
Add tests for volume information query. Could be completed for size, device, full size and attributes query.
This is used to validate changes made in r62663.
Tested by Thomas.
CORE-7451
svn path=/trunk/; revision=62717
- Disable IoRegisterDeviceInterface test, since it crashes on Windows
- Add test showing that IoRegisterPlugPlayNotification's callback receives the full path to the symbolic link (this was fixed in r62249)
svn path=/trunk/; revision=62553
No need now to declare a NTSTATUS ExceptionStatus; variable to be able to use KmtStartSeh() / KmtEndSeh() macros; this is done automagically.
svn path=/trunk/; revision=60320