1ba5d6e97SPierre Schweitzer /*
2ba5d6e97SPierre Schweitzer  * PROJECT:         ReactOS kernel-mode tests
3ba5d6e97SPierre Schweitzer  * LICENSE:         GPLv2+ - See COPYING in the top level directory
4ba5d6e97SPierre Schweitzer  * PURPOSE:         Kernel-Mode Test Suite CcSetFileSizes test user-mode part
5ba5d6e97SPierre Schweitzer  * PROGRAMMER:      Pierre Schweitzer <pierre@reactos.org>
6ba5d6e97SPierre Schweitzer  */
7ba5d6e97SPierre Schweitzer 
8ba5d6e97SPierre Schweitzer #include <kmt_test.h>
9ba5d6e97SPierre Schweitzer 
10ba5d6e97SPierre Schweitzer #define IOCTL_START_TEST  1
11ba5d6e97SPierre Schweitzer #define IOCTL_FINISH_TEST 2
12ba5d6e97SPierre Schweitzer 
START_TEST(CcSetFileSizes)13ba5d6e97SPierre Schweitzer START_TEST(CcSetFileSizes)
14ba5d6e97SPierre Schweitzer {
15ba5d6e97SPierre Schweitzer     DWORD Ret;
16ba5d6e97SPierre Schweitzer     ULONG TestId;
17ba5d6e97SPierre Schweitzer 
18*9e12af56STimo Kreuzer     Ret = KmtLoadAndOpenDriver(L"CcSetFileSizes", FALSE);
19*9e12af56STimo Kreuzer     ok_eq_int(Ret, ERROR_SUCCESS);
20*9e12af56STimo Kreuzer     if (Ret)
21*9e12af56STimo Kreuzer         return;
22ba5d6e97SPierre Schweitzer 
23f7c0236fSPierre Schweitzer     /* 0: mapped data - only FS
24f7c0236fSPierre Schweitzer      * 1: copy read - only FS
25f7c0236fSPierre Schweitzer      * 2: mapped data - FS & AS
26f7c0236fSPierre Schweitzer      * 3: copy read - FS & AS
2734b6a287SPierre Schweitzer      * 4: dirty VACB - only FS
2834b6a287SPierre Schweitzer      * 5: dirty VACB - FS & AS
2969294515SJérôme Gardou      * 6: CcSetFileSizes with mapped data at tail of file
30ba5d6e97SPierre Schweitzer      */
3169294515SJérôme Gardou     for (TestId = 0; TestId < 7; ++TestId)
32ba5d6e97SPierre Schweitzer     {
33ba5d6e97SPierre Schweitzer         Ret = KmtSendUlongToDriver(IOCTL_START_TEST, TestId);
34ba5d6e97SPierre Schweitzer         ok(Ret == ERROR_SUCCESS, "KmtSendUlongToDriver failed: %lx\n", Ret);
35ba5d6e97SPierre Schweitzer         Ret = KmtSendUlongToDriver(IOCTL_FINISH_TEST, TestId);
36ba5d6e97SPierre Schweitzer         ok(Ret == ERROR_SUCCESS, "KmtSendUlongToDriver failed: %lx\n", Ret);
37ba5d6e97SPierre Schweitzer     }
38ba5d6e97SPierre Schweitzer 
39ba5d6e97SPierre Schweitzer     KmtCloseDriver();
40ba5d6e97SPierre Schweitzer     KmtUnloadDriver();
41ba5d6e97SPierre Schweitzer }
42