diff --git a/reactos/apps/tests/event/event.c b/reactos/apps/tests/event/event.c new file mode 100644 index 00000000000..0aaa51d6a58 --- /dev/null +++ b/reactos/apps/tests/event/event.c @@ -0,0 +1,33 @@ +#include +#include + +HANDLE events[2]; + +DWORD WINAPI thread( LPVOID crap ) +{ + SetEvent( events[0] ); + if( crap ) + SetEvent( events[1] ); + return 1; +} + +int main() +{ + DWORD id, Status; + printf( "Creating events\n" ); + events[0] = CreateEvent( 0, TRUE, FALSE, 0 ); + events[1] = CreateEvent( 0, TRUE, FALSE, 0 ); + printf( "Created events\n" ); + CreateThread( 0, 0, thread, 0, 0, &id ); + printf( "WaitForSingleObject %s\n", ( WaitForSingleObject( events[0], INFINITE ) == WAIT_OBJECT_0 ? "worked" : "failed" ) ); + ResetEvent( events[0] ); + CreateThread( 0, 0, thread, 0, 0, &id ); + printf( "WaitForMultipleObjects with waitall = FALSE %s\n", ( WaitForMultipleObjects( 2, events, FALSE, INFINITE ) == WAIT_OBJECT_0 ? "worked" : "failed" ) ); + ResetEvent( events[0] ); + CreateThread( 0, 0, thread, (void *)1, 0, &id ); + Status = WaitForMultipleObjects( 2, events, TRUE, INFINITE ); + printf( "WaitForMultipleObjects with waitall = TRUE %s\n", ( Status == WAIT_OBJECT_0 || Status == WAIT_OBJECT_0 + 1 ? "worked" : "failed" ) ); + ResetEvent( events[0] ); + printf( "WaitForSingleObject with timeout %s\n", ( WaitForSingleObject( events[0], 100 ) == WAIT_TIMEOUT ? "worked" : "failed" ) ); + return 0; +} diff --git a/reactos/apps/tests/event/makefile b/reactos/apps/tests/event/makefile new file mode 100644 index 00000000000..52624dcc674 --- /dev/null +++ b/reactos/apps/tests/event/makefile @@ -0,0 +1,41 @@ +# +# +# +PROGS = event + +all: $(PROGS:%=%.exe) + +.phony: all + +clean: $(PROGS:%=%_clean) + +$(PROGS:%=%_clean): %_clean: + - $(RM) $*.o + - $(RM) $*.exe + - $(RM) $*.sym + +.phony: clean + +floppy: # $(PROGS:%=$(FLOPPY_DIR)/apps/%.exe) + +$(PROGS:%=$(FLOPPY_DIR)/apps/%.exe): $(FLOPPY_DIR)/apps/%.exe: %.exe +ifeq ($(DOSCLI),yes) + $(CP) $*.exe $(FLOPPY_DIR)\apps\$*.exe +else + $(CP) $*.exe $(FLOPPY_DIR)/apps/$*.exe +endif + +dist: $(PROGS:%=../../$(DIST_DIR)/apps/%.exe) + +$(PROGS:%=../../$(DIST_DIR)/apps/%.exe): ../../$(DIST_DIR)/apps/%.exe: %.exe +ifeq ($(DOSCLI),yes) + $(CP) $*.exe ..\..\$(DIST_DIR)\apps\$*.exe +else + $(CP) $*.exe ../../$(DIST_DIR)/apps/$*.exe +endif + +event.exe: event.c + $(CC) $(CFLAGS) event.c -lkernel32 -o event.exe + $(NM) --numeric-sort event.exe > event.sym + +include ../../rules.mak