ef8fb0e49bbdefccb9b482c246a99b79ca975156
[reactos.git] / kmtests / example / Example.c
1 /*
2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Kernel-Mode Test Suite Example kernel-mode test part
5 * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
6 */
7
8 #include <ntddk.h>
9 #include <kmt_test.h>
10
11 START_TEST(Example)
12 {
13 KIRQL Irql;
14
15 ok(1, "This test should succeed.\n");
16 ok(0, "This test should fail.\n");
17 trace("Message from kernel, low-irql. %s. %ls.\n", "Format strings work", L"Even with Unicode");
18 KeRaiseIrql(HIGH_LEVEL, &Irql);
19 trace("Message from kernel, high-irql. %s. %ls.\n", "Format strings work", L"Even with Unicode");
20
21 ok_irql(DISPATCH_LEVEL);
22 ok_eq_int(5, 6);
23 ok_eq_uint(6U, 7U);
24 ok_eq_long(1L, 2L);
25 ok_eq_ulong(3LU, 4LU);
26 ok_eq_pointer((PVOID)8, (PVOID)9);
27 ok_eq_hex(0x1234LU, 0x5678LU);
28 ok_eq_bool(TRUE, TRUE);
29 ok_eq_bool(TRUE, FALSE);
30 ok_eq_bool(FALSE, TRUE);
31 ok_bool_true(FALSE, "foo");
32 ok_bool_false(TRUE, "bar");
33 ok_eq_print(1, 2, "%i");
34 ok_eq_str("Hello", "world");
35 ok_eq_wstr(L"ABC", L"DEF");
36
37 if (!skip(KeGetCurrentIrql() == HIGH_LEVEL, "This should only work on HIGH_LEVEL\n"))
38 {
39 /* do tests depending on HIGH_LEVEL here */
40 ok(1, "This is fine\n");
41 }
42
43 KeLowerIrql(Irql);
44 }