summaryrefslogtreecommitdiffhomepage
path: root/dev/tests/chunk_string/chunk_test.cc
blob: 3498fa864760e6f51126eb9c313c30a1e24fcdb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * File: tests/chunk_test.cc
 * Purpose: Chunk unit tests in C++
 * Author: Amlal El Mahrouss (amlal@nekernel.org)
 * Copyright 2025, Amlal El Mahrouss, licensed under the Boost Software License.
 */

#include <lib/io/print.hpp>
#include <lib/tests/gtest.hpp>
#include <lib/core/chunk_string.hpp>

TEST(ChunkTest, BasicChunkUsage)
{
	const char* test_string = "HELLO, WORLD!\r\n";
	const auto iterations = 1024000;
	const auto limit = 30;

	auto start = std::chrono::high_resolution_clock::now();

	ocl::basic_chunk_string<char, iterations> optimized;

	for (unsigned i = 0; i < iterations; ++i)
 	{
		optimized += test_string;
	}

	auto end = std::chrono::high_resolution_clock::now();
	auto optimized_time = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);

	EXPECT_TRUE(optimized_time.count() < 100U);
}