1a8c51b3fSopenharmony_ci#include "benchmark/benchmark.h"
2a8c51b3fSopenharmony_ci#include "gtest/gtest.h"
3a8c51b3fSopenharmony_ci
4a8c51b3fSopenharmony_cinamespace {
5a8c51b3fSopenharmony_ci
6a8c51b3fSopenharmony_ciusing namespace benchmark;
7a8c51b3fSopenharmony_ciusing namespace benchmark::internal;
8a8c51b3fSopenharmony_ci
9a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, Empty) {
10a8c51b3fSopenharmony_ci  const auto name = BenchmarkName();
11a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), std::string());
12a8c51b3fSopenharmony_ci}
13a8c51b3fSopenharmony_ci
14a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, FunctionName) {
15a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
16a8c51b3fSopenharmony_ci  name.function_name = "function_name";
17a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name");
18a8c51b3fSopenharmony_ci}
19a8c51b3fSopenharmony_ci
20a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, FunctionNameAndArgs) {
21a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
22a8c51b3fSopenharmony_ci  name.function_name = "function_name";
23a8c51b3fSopenharmony_ci  name.args = "some_args:3/4/5";
24a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/some_args:3/4/5");
25a8c51b3fSopenharmony_ci}
26a8c51b3fSopenharmony_ci
27a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, MinTime) {
28a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
29a8c51b3fSopenharmony_ci  name.function_name = "function_name";
30a8c51b3fSopenharmony_ci  name.args = "some_args:3/4";
31a8c51b3fSopenharmony_ci  name.min_time = "min_time:3.4s";
32a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/some_args:3/4/min_time:3.4s");
33a8c51b3fSopenharmony_ci}
34a8c51b3fSopenharmony_ci
35a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, MinWarmUpTime) {
36a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
37a8c51b3fSopenharmony_ci  name.function_name = "function_name";
38a8c51b3fSopenharmony_ci  name.args = "some_args:3/4";
39a8c51b3fSopenharmony_ci  name.min_warmup_time = "min_warmup_time:3.5s";
40a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/some_args:3/4/min_warmup_time:3.5s");
41a8c51b3fSopenharmony_ci}
42a8c51b3fSopenharmony_ci
43a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, Iterations) {
44a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
45a8c51b3fSopenharmony_ci  name.function_name = "function_name";
46a8c51b3fSopenharmony_ci  name.min_time = "min_time:3.4s";
47a8c51b3fSopenharmony_ci  name.iterations = "iterations:42";
48a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/min_time:3.4s/iterations:42");
49a8c51b3fSopenharmony_ci}
50a8c51b3fSopenharmony_ci
51a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, Repetitions) {
52a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
53a8c51b3fSopenharmony_ci  name.function_name = "function_name";
54a8c51b3fSopenharmony_ci  name.min_time = "min_time:3.4s";
55a8c51b3fSopenharmony_ci  name.repetitions = "repetitions:24";
56a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/min_time:3.4s/repetitions:24");
57a8c51b3fSopenharmony_ci}
58a8c51b3fSopenharmony_ci
59a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, TimeType) {
60a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
61a8c51b3fSopenharmony_ci  name.function_name = "function_name";
62a8c51b3fSopenharmony_ci  name.min_time = "min_time:3.4s";
63a8c51b3fSopenharmony_ci  name.time_type = "hammer_time";
64a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/min_time:3.4s/hammer_time");
65a8c51b3fSopenharmony_ci}
66a8c51b3fSopenharmony_ci
67a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, Threads) {
68a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
69a8c51b3fSopenharmony_ci  name.function_name = "function_name";
70a8c51b3fSopenharmony_ci  name.min_time = "min_time:3.4s";
71a8c51b3fSopenharmony_ci  name.threads = "threads:256";
72a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "function_name/min_time:3.4s/threads:256");
73a8c51b3fSopenharmony_ci}
74a8c51b3fSopenharmony_ci
75a8c51b3fSopenharmony_ciTEST(BenchmarkNameTest, TestEmptyFunctionName) {
76a8c51b3fSopenharmony_ci  auto name = BenchmarkName();
77a8c51b3fSopenharmony_ci  name.args = "first:3/second:4";
78a8c51b3fSopenharmony_ci  name.threads = "threads:22";
79a8c51b3fSopenharmony_ci  EXPECT_EQ(name.str(), "first:3/second:4/threads:22");
80a8c51b3fSopenharmony_ci}
81a8c51b3fSopenharmony_ci
82a8c51b3fSopenharmony_ci}  // end namespace
83