From: Rémi Bernon rbernon@codeweavers.com
--- dlls/ntoskrnl.exe/tests/driver.c | 2 +- dlls/ntoskrnl.exe/tests/utils.h | 370 ++++++------------------------- 2 files changed, 70 insertions(+), 302 deletions(-)
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c index 4d6bae60431..de68dcc8bed 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c @@ -2254,7 +2254,7 @@ static void test_process_memory(const struct main_test_input *test_input) win_skip("MmCopyVirtualMemory is not available.\n"); }
- if (!running_under_wine) + if (!winetest_platform_is_wine) { KeStackAttachProcess((PKPROCESS)process, &state); todo_wine ok(!strcmp(teststr, (char *)(base + test_input->teststr_offset)), diff --git a/dlls/ntoskrnl.exe/tests/utils.h b/dlls/ntoskrnl.exe/tests/utils.h index 023f78b5318..787302d90a8 100644 --- a/dlls/ntoskrnl.exe/tests/utils.h +++ b/dlls/ntoskrnl.exe/tests/utils.h @@ -30,119 +30,98 @@
#include <ddk/wdm.h>
-#ifdef __MINGW32__ -#define __WINE_PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args))) -#else -#define __WINE_PRINTF_ATTR(fmt,args) -#endif +#include "wine/test.h" + +/* kernel/user shared data */ +struct winetest_shared_data +{ + int running_under_wine; + int winetest_report_success; + int winetest_debug; + LONG successes; + LONG failures; + LONG todo_successes; + LONG todo_failures; + LONG skipped; +};
static HANDLE okfile; -static LONG successes; -static LONG failures; -static LONG skipped; -static LONG todo_successes; -static LONG todo_failures; -static LONG muted_traces; -static LONG muted_skipped; -static LONG muted_todo_successes; - -static int running_under_wine; -static int winetest_debug; -static int winetest_report_success; - -/* silence todos and skips above this threshold */ -static int winetest_mute_threshold = 42;
-/* counts how many times a given line printed a message */ -static LONG line_counters[16384]; +LONG winetest_successes = 0; +LONG winetest_failures = 0; +LONG winetest_flaky_failures = 0; +LONG winetest_skipped = 0; +LONG winetest_todo_successes = 0; +LONG winetest_todo_failures = 0; +LONG winetest_muted_traces = 0; +LONG winetest_muted_skipped = 0; +LONG winetest_muted_todo_successes = 0; + +const char *winetest_platform; +int winetest_platform_is_wine; +int winetest_debug; +int winetest_report_success; +int winetest_color = 0; +int winetest_time = 0; +int winetest_start_time, winetest_last_time;
-/* The following data must be kept track of on a per-thread basis */ -struct tls_data -{ - HANDLE thread; - const char* current_file; /* file of current check */ - int current_line; /* line of current check */ - unsigned int todo_level; /* current todo nesting level */ - int todo_do_loop; - char *str_pos; /* position in debug buffer */ - char strings[2000]; /* buffer for debug strings */ - char context[8][128]; /* data to print before messages */ - unsigned int context_count; /* number of context prefixes */ -}; +/* silence todos and skips above this threshold */ +int winetest_mute_threshold = 42;
static KSPIN_LOCK tls_data_lock; -static struct tls_data tls_data_pool[128]; +static struct winetest_thread_data tls_data_pool[128]; +static HANDLE tls_data_thread[ARRAY_SIZE(tls_data_pool)]; static DWORD tls_data_count;
-static inline struct tls_data *get_tls_data(void) +struct winetest_thread_data *winetest_get_thread_data(void) { - static struct tls_data tls_overflow; - struct tls_data *data; HANDLE thread = PsGetCurrentThreadId(); + struct winetest_thread_data *data; KIRQL irql; + UINT i;
KeAcquireSpinLock(&tls_data_lock, &irql); - for (data = tls_data_pool; data != tls_data_pool + tls_data_count; ++data) - if (data->thread == thread) break; - if (data == tls_data_pool + ARRAY_SIZE(tls_data_pool)) - data = &tls_overflow; - else if (data == tls_data_pool + tls_data_count) + + for (i = 0; i < tls_data_count; i++) if (tls_data_thread[i] == thread) break; + data = tls_data_pool + i; + + if (tls_data_thread[i] != thread) { - data->thread = thread; + tls_data_count = min(tls_data_count + 1, ARRAY_SIZE(tls_data_pool)); + tls_data_thread[i] = thread; data->str_pos = data->strings; - tls_data_count++; } + KeReleaseSpinLock(&tls_data_lock, irql);
return data; }
-static inline void winetest_set_location( const char* file, int line ) +void winetest_print_lock(void) { - struct tls_data *data = get_tls_data(); - data->current_file=strrchr(file,'/'); - if (data->current_file==NULL) - data->current_file=strrchr(file,'\'); - if (data->current_file==NULL) - data->current_file=file; - else - data->current_file++; - data->current_line=line; }
-static inline void kvprintf(const char *format, va_list ap) +void winetest_print_unlock(void) { - struct tls_data *data = get_tls_data(); - IO_STATUS_BLOCK io; - int len = vsnprintf(data->strings, sizeof(data->strings), format, ap); - ZwWriteFile(okfile, NULL, NULL, NULL, &io, data->strings, len, NULL, NULL); }
-static inline void WINAPIV kprintf(const char *format, ...) __WINE_PRINTF_ATTR(1,2); -static inline void WINAPIV kprintf(const char *format, ...) +int winetest_vprintf(const char *format, va_list ap) { - va_list valist; - - va_start(valist, format); - kvprintf(format, valist); - va_end(valist); + struct winetest_thread_data *data = winetest_get_thread_data(); + IO_STATUS_BLOCK io; + int len = vsnprintf(data->strings, sizeof(data->strings), format, ap); + ZwWriteFile(okfile, NULL, NULL, NULL, &io, data->strings, len, NULL, NULL); + return len; }
-static inline void WINAPIV winetest_printf( const char *msg, ... ) __WINE_PRINTF_ATTR(1,2); -static inline void WINAPIV winetest_printf( const char *msg, ... ) +int winetest_get_time(void) { - struct tls_data *data = get_tls_data(); - va_list valist; - - kprintf( "%s:%d: ", data->current_file, data->current_line ); - va_start( valist, msg ); - kvprintf( msg, valist ); - va_end( valist ); + return 0; }
static inline NTSTATUS winetest_init(void) { - const struct test_data *data; + const struct winetest_shared_data *data; SIZE_T size = sizeof(*data); OBJECT_ATTRIBUTES attr; UNICODE_STRING string; @@ -166,7 +145,8 @@ static inline NTSTATUS winetest_init(void) return ret; } data = addr; - running_under_wine = data->running_under_wine; + winetest_platform_is_wine = data->running_under_wine; + winetest_platform = winetest_platform_is_wine ? "wine" : "windows"; winetest_debug = data->winetest_debug; winetest_report_success = data->winetest_report_success;
@@ -180,7 +160,7 @@ static inline NTSTATUS winetest_init(void)
static inline void winetest_cleanup(void) { - struct test_data *data; + struct winetest_shared_data *data; SIZE_T size = sizeof(*data); OBJECT_ATTRIBUTES attr; UNICODE_STRING string; @@ -189,10 +169,10 @@ static inline void winetest_cleanup(void)
if (winetest_debug) { - kprintf("%04lx:ntoskrnl: %ld tests executed (%ld marked as todo, 0 as flaky, %ld %s), %ld skipped.\n", - (DWORD)(DWORD_PTR)PsGetCurrentProcessId(), successes + failures + todo_successes + todo_failures, - todo_successes, failures + todo_failures, - (failures + todo_failures != 1) ? "failures" : "failure", skipped ); + winetest_printf("%04lx:ntoskrnl: %ld tests executed (%ld marked as todo, 0 as flaky, %ld %s), %ld skipped.\n", + (DWORD)(DWORD_PTR)PsGetCurrentProcessId(), winetest_successes + winetest_failures + winetest_todo_successes + winetest_todo_failures, + winetest_todo_successes, winetest_failures + winetest_todo_failures, + (winetest_failures + winetest_todo_failures != 1) ? "failures" : "failure", winetest_skipped); }
RtlInitUnicodeString(&string, L"\BaseNamedObjects\winetest_ntoskrnl_section"); @@ -206,8 +186,11 @@ static inline void winetest_cleanup(void) { data = addr;
- InterlockedExchangeAdd(&data->failures, failures); - InterlockedExchangeAdd(&data->todo_failures, todo_failures); + InterlockedExchangeAdd(&data->successes, winetest_successes); + InterlockedExchangeAdd(&data->failures, winetest_failures); + InterlockedExchangeAdd(&data->todo_successes, winetest_todo_successes); + InterlockedExchangeAdd(&data->todo_failures, winetest_todo_failures); + InterlockedExchangeAdd(&data->skipped, winetest_skipped);
ZwUnmapViewOfSection(NtCurrentProcess(), addr); } @@ -216,218 +199,3 @@ static inline void winetest_cleanup(void)
ZwClose(okfile); } - -static inline void winetest_print_context( const char *msgtype ) -{ - struct tls_data *data = get_tls_data(); - unsigned int i; - - winetest_printf( "%s", msgtype ); - for (i = 0; i < data->context_count; ++i) - kprintf( "%s: ", data->context[i] ); -} - -static inline LONG winetest_add_line( void ) -{ - struct tls_data *data; - int index, count; - - if (winetest_debug > 1) - return 0; - - data = get_tls_data(); - index = data->current_line % ARRAY_SIZE(line_counters); - count = InterlockedIncrement(line_counters + index) - 1; - if (count == winetest_mute_threshold) - winetest_printf( "Line has been silenced after %d occurrences\n", winetest_mute_threshold ); - - return count; -} - -static inline int winetest_vok( int condition, const char *msg, va_list args ) -{ - struct tls_data *data = get_tls_data(); - - if (data->todo_level) - { - if (condition) - { - winetest_print_context( "Test succeeded inside todo block: " ); - kvprintf(msg, args); - InterlockedIncrement(&todo_failures); - return 0; - } - else - { - if (!winetest_debug || - winetest_add_line() < winetest_mute_threshold) - { - if (winetest_debug > 0) - { - winetest_print_context( "Test marked todo: " ); - kvprintf(msg, args); - } - InterlockedIncrement(&todo_successes); - } - else - InterlockedIncrement(&muted_todo_successes); - return 1; - } - } - else - { - if (!condition) - { - winetest_print_context( "Test failed: " ); - kvprintf(msg, args); - InterlockedIncrement(&failures); - return 0; - } - else - { - if (winetest_report_success) - winetest_printf("Test succeeded\n"); - InterlockedIncrement(&successes); - return 1; - } - } -} - -static inline void WINAPIV winetest_ok( int condition, const char *msg, ... ) __WINE_PRINTF_ATTR(2,3); -static inline void WINAPIV winetest_ok( int condition, const char *msg, ... ) -{ - va_list args; - va_start(args, msg); - winetest_vok(condition, msg, args); - va_end(args); -} - -static inline void winetest_vskip( const char *msg, va_list args ) -{ - if (winetest_add_line() < winetest_mute_threshold) - { - winetest_print_context( "Driver tests skipped: " ); - kvprintf(msg, args); - InterlockedIncrement(&skipped); - } - else - InterlockedIncrement(&muted_skipped); -} - -static inline void WINAPIV winetest_skip( const char *msg, ... ) __WINE_PRINTF_ATTR(1,2); -static inline void WINAPIV winetest_skip( const char *msg, ... ) -{ - va_list args; - va_start(args, msg); - winetest_vskip(msg, args); - va_end(args); -} - -static inline void WINAPIV winetest_win_skip( const char *msg, ... ) __WINE_PRINTF_ATTR(1,2); -static inline void WINAPIV winetest_win_skip( const char *msg, ... ) -{ - va_list args; - va_start(args, msg); - if (!running_under_wine) - winetest_vskip(msg, args); - else - winetest_vok(0, msg, args); - va_end(args); -} - -static inline void WINAPIV winetest_trace( const char *msg, ... ) __WINE_PRINTF_ATTR(1,2); -static inline void WINAPIV winetest_trace( const char *msg, ... ) -{ - va_list args; - - if (!winetest_debug) - return; - if (winetest_add_line() < winetest_mute_threshold) - { - winetest_print_context( "" ); - va_start(args, msg); - kvprintf( msg, args ); - va_end(args); - } - else - InterlockedIncrement(&muted_traces); -} - -static inline void winetest_start_todo( int is_todo ) -{ - struct tls_data *data = get_tls_data(); - data->todo_level = (data->todo_level << 1) | (is_todo != 0); - data->todo_do_loop=1; -} - -static inline int winetest_loop_todo(void) -{ - struct tls_data *data = get_tls_data(); - int do_loop=data->todo_do_loop; - data->todo_do_loop=0; - return do_loop; -} - -static inline void winetest_end_todo(void) -{ - struct tls_data *data = get_tls_data(); - data->todo_level >>= 1; -} - -static inline void WINAPIV winetest_push_context( const char *fmt, ... ) __WINE_PRINTF_ATTR(1, 2); -static inline void WINAPIV winetest_push_context( const char *fmt, ... ) -{ - struct tls_data *data = get_tls_data(); - va_list valist; - - if (data->context_count < ARRAY_SIZE(data->context)) - { - va_start(valist, fmt); - vsnprintf( data->context[data->context_count], sizeof(data->context[data->context_count]), fmt, valist ); - va_end(valist); - data->context[data->context_count][sizeof(data->context[data->context_count]) - 1] = 0; - } - ++data->context_count; -} - -static inline void winetest_pop_context(void) -{ - struct tls_data *data = get_tls_data(); - - if (data->context_count) - --data->context_count; -} - -static inline int broken(int condition) -{ - return !running_under_wine && condition; -} - -#ifdef WINETEST_NO_LINE_NUMBERS -# define subtest_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_subtest -# define ignore_exceptions_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_ignore_exceptions -# define ok_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_ok -# define skip_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_skip -# define win_skip_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_win_skip -# define trace_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_trace -# define wait_child_process_(file, line) (winetest_set_location(file, 0), 0) ? (void)0 : winetest_wait_child_process -#else -# define subtest_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_subtest -# define ignore_exceptions_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_ignore_exceptions -# define ok_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_ok -# define skip_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_skip -# define win_skip_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_win_skip -# define trace_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_trace -# define wait_child_process_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_wait_child_process -#endif - -#define ok ok_(__FILE__, __LINE__) -#define skip skip_(__FILE__, __LINE__) -#define trace trace_(__FILE__, __LINE__) -#define win_skip win_skip_(__FILE__, __LINE__) - -#define todo_if(is_todo) for (winetest_start_todo(is_todo); \ - winetest_loop_todo(); \ - winetest_end_todo()) -#define todo_wine todo_if(running_under_wine) -#define todo_wine_if(is_todo) todo_if((is_todo) && running_under_wine)
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=137129
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w7u_adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w7u_el (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w8 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w8adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w864 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064v1507 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064v1809 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064_tsign (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w11pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w7pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w864 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064v1507 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064v1809 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064_2qxl (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064_adm (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w1064_tsign (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64_en_AE_u8 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64_ar (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64_ja (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w10pro64_zh_CN (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w11pro64_amd (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver' does not exist.
=== w7u_2qxl (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w7u_adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w7u_el (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w8 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w8adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w864 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064v1507 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064v1809 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064_tsign (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w11pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w7pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w864 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064v1507 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064v1809 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064_2qxl (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064_adm (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w1064_tsign (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64_en_AE_u8 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64_ar (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64_ja (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w10pro64_zh_CN (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w11pro64_amd (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver2' does not exist.
=== w7u_2qxl (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w7u_adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w7u_el (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w8 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w8adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w864 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064v1507 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064v1809 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064_tsign (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w11pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w7pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w864 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064v1507 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064v1809 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064_2qxl (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064_adm (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w1064_tsign (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64_en_AE_u8 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64_ar (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64_ja (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w10pro64_zh_CN (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w11pro64_amd (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver3' does not exist.
=== w7u_2qxl (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w7u_adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w7u_el (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w8 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w8adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w864 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064v1507 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064v1809 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064_tsign (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w11pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w7pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w864 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064v1507 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064v1809 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064_2qxl (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064_adm (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w1064_tsign (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64_en_AE_u8 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64_ar (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64_ja (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w10pro64_zh_CN (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w11pro64_amd (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_netio' does not exist.
=== w7u_2qxl (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w7u_adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w7u_el (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w8 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w8adm (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w864 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064v1507 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064v1809 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064_tsign (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w11pro64 (32 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w7pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w864 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064v1507 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064v1809 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064_2qxl (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064_adm (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w1064_tsign (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64_en_AE_u8 (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64_ar (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64_ja (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w10pro64_zh_CN (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w11pro64_amd (64 bit report) ===
ntoskrnl.exe: Fatal: test 'driver_pnp' does not exist.
=== w7u_2qxl (32 bit report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== w7u_el (32 bit report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== w8 (32 bit report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== w1064_tsign (64 bit report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit ar:MA report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit de report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit fr report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit he:IL report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit hi:IN report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit ja:JP report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11 (32 bit zh:CN report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages
=== debian11b (64 bit WoW report) ===
Report validation errors: ntoskrnl.exe:ntoskrnl is missing some failure messages