2
0
mikymod 12 жил өмнө
parent
commit
61ae0d5fe1
1 өөрчлөгдсөн 52 нэмэгдсэн , 11 устгасан
  1. 52 11
      engine/tests/events.cpp

+ 52 - 11
engine/tests/events.cpp

@@ -12,38 +12,79 @@ struct TestEvent
 };
 
 //-----------------------------------------------------------------------------
-int main()
+void fill_events(EventBuffer& event_buffer, uint32_t num)
 {
-	EventBuffer event_buffer;
-
 	TestEvent event;
 	event.a = 1;
 	event.b = 2;
 	event.c = 3;
 
-	for (uint32_t i = 0; i < 10; i++)
+	for (uint32_t i = 0; i < num; i++)
 	{
 		event_buffer.push_event(0, &event, sizeof(TestEvent));
 	}
 
-	CE_ASSERT(event_buffer.size() == (10 * (sizeof(TestEvent) + sizeof(uint32_t) + sizeof(size_t))), "Something ha gone wrong");
+	uint32_t size = num * (sizeof(TestEvent) + sizeof(uint32_t) + sizeof(size_t));
+
+	CE_ASSERT(event_buffer.size() == size, "Something ha gone wrong, size is %d, should be %d", event_buffer.size(), size);
+}
 
+void get_events(EventBuffer& event_buffer, uint32_t num)
+{
 	TestEvent* result;
 	uint32_t type = 0;
 	size_t size = 0;
 
 	uint32_t count = 0;
+
+	for (uint32_t i = 0; i < num; i++)
+	{
+		result = (TestEvent*)event_buffer.get_next_event(type, size);
+
+		if (result)
+		{
+			count++;
+		}
+
+		Log::i("count: %d", count);
+	}
+
+	CE_ASSERT(count == num, "Something ha gone wrong, count: %d, num: %d", count, num);
+}
+
+void get_event_until_end(EventBuffer& event_buffer)
+{
+	TestEvent* result;
+	uint32_t type = 0;
+	size_t size = 0;
+
+	int32_t count = 0;
+
 	while ((result = (TestEvent*)event_buffer.get_next_event(type, size)) != NULL)
 	{
-		Log::i("type => %d", type);
-		Log::i("size => %d", size);	
-		Log::i("a    => %d", result->a);
-		Log::i("b    => %d", result->b);
-		Log::i("c    => %d", result->c);
 		count++;
 	}
 
-	CE_ASSERT(count == 10, "Something ha gone wrong");
+	Log::i("count: %d", count);
+}
+
+//-----------------------------------------------------------------------------
+int main()
+{
+	EventBuffer event_buffer;
+
+	fill_events(event_buffer, 10);
+	get_events(event_buffer, 10);
+
+	event_buffer.clear();
+
+	fill_events(event_buffer, 5);
+	get_events(event_buffer, 5);
+
+	event_buffer.clear();
+
+	fill_events(event_buffer, 30);
+	get_event_until_end(event_buffer);
 
 	return 0;
 }