Skip to content

Commit 4b5064c

Browse files
committed
Refactor tests
1 parent d7957b7 commit 4b5064c

10 files changed

+110
-91
lines changed

.clang-tidy

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Checks: >-
2020
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
2121
-misc-non-private-member-variables-in-classes,
2222
-readability-function-cognitive-complexity,
23+
-readability-magic-numbers,
2324
WarningsAsErrors: ''
2425
HeaderFileExtensions:
2526
- ''

CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ file(GLOB ARGO_LIBRARY_SOURCES ${CMAKE_CURRENT_LIST_DIR}/Argo/*.cc)
2929
target_sources(Argo PUBLIC FILE_SET CXX_MODULES FILES ${ARGO_LIBRARY_SOURCES})
3030
target_compile_features(Argo PUBLIC cxx_std_23)
3131
target_include_directories(Argo PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include)
32+
3233
if(${ARGO_CLANG_TIDY_ENABLE})
3334
find_program(
3435
CLANG_TIDY_EXE

tests/BasicTypes.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import Argo;
33
#include <gmock/gmock.h>
44
#include <gtest/gtest.h>
55

6+
#include <string>
7+
#include <type_traits>
8+
69
#include "TestHelper.h"
710

811
TEST(ArgoTest, AllTypes) {
@@ -28,7 +31,7 @@ TEST(ArgoTest, AllTypes) {
2831

2932
EXPECT_EQ(parser.getArg<"arg1">(), 42);
3033
EXPECT_EQ(parser.getArg<"arg2">(), -42);
31-
EXPECT_FLOAT_EQ(parser.getArg<"arg3">(), 42.1234567890f);
34+
EXPECT_FLOAT_EQ(parser.getArg<"arg3">(), 42.1234567890F);
3235
EXPECT_DOUBLE_EQ(parser.getArg<"arg4">(), 42.12345678901234567890);
3336
EXPECT_EQ(parser.getArg<"arg5">(), "Hello,World!");
3437
EXPECT_TRUE(std::strcmp(parser.getArg<"arg6">(), "Hello,World!const char*") ==

tests/ExampleCode.cc

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import Argo;
33
#include <gmock/gmock.h>
44
#include <gtest/gtest.h>
55

6+
#include <string>
7+
#include <type_traits>
8+
69
#include "TestHelper.h"
710

811
TEST(ArgoTest, ExampleCode) {

tests/Exceptions.cc

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import Argo;
66
#include "TestHelper.h"
77

88
using testing::HasSubstr;
9-
using testing::Property;
10-
using testing::Throws;
119
using testing::ThrowsMessage;
1210

13-
using namespace Argo;
11+
using Argo::ParseError;
12+
using Argo::InvalidArgument;
13+
using Argo::nargs;
14+
using Argo::Parser;
1415

1516
auto parser1 = Parser<"ExceptionParseError">()
1617
.addArg<"arg1", int>()

tests/PositionalArgument.cc

+31-29
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@ import Argo;
55

66
#include "TestHelper.h"
77

8+
using Argo::nargs;
9+
using Argo::Parser;
10+
811
TEST(ArgoTest, Positional) {
912
{
1013
auto [argc, argv] = createArgcArgv( //
1114
"./main", //
1215
"1", "2", "3" //
1316
);
1417

15-
auto argo = Argo::Parser<"Positional arguments">("Sample Program");
18+
auto argo = Parser<"Positional arguments">("Sample Program");
1619
auto parser = argo //
17-
.addPositionalArg<"arg1", int, Argo::nargs(3)>();
20+
.addPositionalArg<"arg1", int, nargs(3)>();
1821

1922
parser.parse(argc, argv.get());
2023
EXPECT_THAT(parser.getArg<"arg1">(), testing::ElementsAre(1, 2, 3));
@@ -25,9 +28,9 @@ TEST(ArgoTest, Positional) {
2528
"--arg2", "42.195" //
2629
);
2730

28-
auto argo = Argo::Parser<"positional argument2">("Sample Program");
31+
auto argo = Parser<"positional argument2">("Sample Program");
2932
auto parser = argo //
30-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
33+
.addPositionalArg<"arg1", int, nargs(3)>()
3134
.addArg<"arg2", float>()
3235
.addFlag<"arg3,a">();
3336

@@ -43,10 +46,10 @@ TEST(ArgoTest, Positional) {
4346
"1", "2", "3" //
4447
);
4548

46-
auto argo = Argo::Parser<"positional argument3">("Sample Program");
49+
auto argo = Parser<"positional argument3">("Sample Program");
4750
auto parser = argo //
48-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
49-
.addArg<"arg2", float, Argo::nargs(1)>();
51+
.addPositionalArg<"arg1", int, nargs(3)>()
52+
.addArg<"arg2", float, nargs(1)>();
5053

5154
parser.parse(argc, argv.get());
5255

@@ -59,10 +62,10 @@ TEST(ArgoTest, Positional) {
5962
"1", "2", "3" //
6063
);
6164

62-
auto argo = Argo::Parser<"positonal argument 4">("Sample Program");
65+
auto argo = Parser<"positonal argument 4">("Sample Program");
6366
auto parser = argo //
64-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
65-
.addArg<"arg2", float, Argo::nargs(2)>();
67+
.addPositionalArg<"arg1", int, nargs(3)>()
68+
.addArg<"arg2", float, nargs(2)>();
6669

6770
parser.parse(argc, argv.get());
6871

@@ -75,9 +78,9 @@ TEST(ArgoTest, Positional) {
7578
"1", "2", "3" //
7679
);
7780

78-
auto argo = Argo::Parser<"positonal argument 5">("Sample Program");
81+
auto argo = Parser<"positonal argument 5">("Sample Program");
7982
auto parser = argo //
80-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
83+
.addPositionalArg<"arg1", int, nargs(3)>()
8184
.addFlag<"arg2">();
8285

8386
parser.parse(argc, argv.get());
@@ -91,9 +94,9 @@ TEST(ArgoTest, Positional) {
9194
"1", "2", "3", "-b" //
9295
);
9396

94-
auto argo = Argo::Parser<"positonal argument 6">("Sample Program");
97+
auto argo = Parser<"positonal argument 6">("Sample Program");
9598
auto parser = argo //
96-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
99+
.addPositionalArg<"arg1", int, nargs(3)>()
97100
.addFlag<"arg2,b">();
98101

99102
parser.parse(argc, argv.get());
@@ -107,9 +110,9 @@ TEST(ArgoTest, Positional) {
107110
"1", "2", "3", "-bc", "234.86" //
108111
);
109112

110-
auto argo = Argo::Parser<"positonal argument 7">("Sample Program");
113+
auto argo = Parser<"positonal argument 7">("Sample Program");
111114
auto parser = argo //
112-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
115+
.addPositionalArg<"arg1", int, nargs(3)>()
113116
.addFlag<"arg2,b">()
114117
.addArg<"arg3,c", float>();
115118

@@ -130,10 +133,10 @@ TEST(ArgoTest, MultiplePositional) {
130133
"-c", "234.86" //
131134
);
132135

133-
auto argo = Argo::Parser<"multiple positonal argument 0">("Sample Program");
136+
auto argo = Parser<"multiple positonal argument 0">("Sample Program");
134137
auto parser = argo //
135-
.addPositionalArg<"arg1", int, Argo::nargs(3)>()
136-
.addPositionalArg<"arg2", int, Argo::nargs(3)>()
138+
.addPositionalArg<"arg1", int, nargs(3)>()
139+
.addPositionalArg<"arg2", int, nargs(3)>()
137140
.addArg<"arg3,c", float>();
138141

139142
parser.parse(argc, argv.get());
@@ -150,12 +153,11 @@ TEST(ArgoTest, MultiplePositional) {
150153
"4", "5", "6" //
151154
);
152155

153-
auto argo = Argo::Parser<"multiple positonal argument 1">("Sample Program");
154-
auto parser =
155-
argo //
156-
.addPositionalArg<"arg1", std::array<int, 3>, Argo::nargs(3)>()
157-
.addArg<"arg3,c", float>()
158-
.addPositionalArg<"arg2", int, Argo::nargs(3)>();
156+
auto argo = Parser<"multiple positonal argument 1">("Sample Program");
157+
auto parser = argo //
158+
.addPositionalArg<"arg1", std::array<int, 3>, nargs(3)>()
159+
.addArg<"arg3,c", float>()
160+
.addPositionalArg<"arg2", int, nargs(3)>();
159161

160162
parser.parse(argc, argv.get());
161163

@@ -170,10 +172,10 @@ TEST(ArgoTest, MultiplePositional) {
170172
"4.2", "5", "Hello,World" //
171173
);
172174

173-
auto argo = Argo::Parser<"multiple positonal argument 2">("Sample Program");
175+
auto argo = Parser<"multiple positonal argument 2">("Sample Program");
174176
auto parser =
175177
argo //
176-
.addPositionalArg<"arg1", std::array<int, 3>, Argo::nargs(3)>()
178+
.addPositionalArg<"arg1", std::array<int, 3>, nargs(3)>()
177179
.addArg<"arg3,c", float>()
178180
.addPositionalArg<"arg2", std::tuple<float, int, std::string>>();
179181

@@ -192,10 +194,10 @@ TEST(ArgoTest, MultiplePositional) {
192194
"4.2", "5", "Hello,World" //
193195
);
194196

195-
auto argo = Argo::Parser<"multiple positonal argument 3">("Sample Program");
197+
auto argo = Parser<"multiple positonal argument 3">("Sample Program");
196198
auto parser =
197199
argo //
198-
.addPositionalArg<"arg1", int, Argo::nargs('+')>()
200+
.addPositionalArg<"arg1", int, nargs('+')>()
199201
.addPositionalArg<"arg2", std::tuple<float, int, std::string>>()
200202
.addArg<"arg3,c", float>();
201203

tests/STLTypes.cc

+7-4
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ import Argo;
55

66
#include "TestHelper.h"
77

8+
using Argo::nargs;
9+
using Argo::Parser;
10+
811
TEST(ArgoTest, STLTypes) {
912
{
1013
auto [argc, argv] = createArgcArgv( //
1114
"./main", //
1215
"--arg1", "42", "43", "44" // int
1316
);
14-
auto argo = Argo::Parser<"STLTypes_array">();
17+
auto argo = Parser<"STLTypes_array">();
1518
auto parser = argo.addArg<"arg1", std::array<int, 3>>();
1619
parser.parse(argc, argv.get());
1720
EXPECT_THAT(parser.getArg<"arg1">(), testing::ElementsAre(42, 43, 44));
@@ -21,8 +24,8 @@ TEST(ArgoTest, STLTypes) {
2124
"./main", //
2225
"--arg1", "42", "43", "44", "45" // int
2326
);
24-
auto argo = Argo::Parser<"STLTypes_vector">();
25-
auto parser = argo.addArg<"arg1", std::vector<int>, Argo::nargs(4)>();
27+
auto argo = Parser<"STLTypes_vector">();
28+
auto parser = argo.addArg<"arg1", std::vector<int>, nargs(4)>();
2629
parser.parse(argc, argv.get());
2730
EXPECT_THAT(parser.getArg<"arg1">(), testing::ElementsAre(42, 43, 44, 45));
2831
}
@@ -33,7 +36,7 @@ TEST(ArgoTest, STLTypes) {
3336
"--arg1", "42", "43.24", //
3437
"Hello,World" //
3538
);
36-
auto argo = Argo::Parser<"STLTypes_tuple">();
39+
auto argo = Parser<"STLTypes_tuple">();
3740
auto parser = argo.addArg<"arg1", std::tuple<int, double, std::string>>();
3841
parser.parse(argc, argv.get());
3942

tests/Subcommand.cc

+11-10
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ import Argo;
55

66
#include "TestHelper.h"
77

8+
using Argo::Parser;
9+
810
TEST(ArgoTest, SubCommands) {
911
{
1012
auto [argc, argv] = createArgcArgv( //
1113
"./main", //
12-
"cmd1", "--arg1",
13-
"42" // int
14+
"cmd1", "--arg1", "42" // int
1415
);
1516

16-
auto parser1 = Argo::Parser<"SubCommands1_cmd1">() //
17+
auto parser1 = Parser<"SubCommands1_cmd1">() //
1718
.addArg<"arg1,a", int>()
1819
.addArg<"arg2,b", int>(Argo::explicitDefault(123));
19-
auto parser2 = Argo::Parser<"SubCommands1_cmd2">() //
20+
auto parser2 = Parser<"SubCommands1_cmd2">() //
2021
.addArg<"arg3,a", int>()
2122
.addArg<"arg4,b", int>();
22-
auto parser = Argo::Parser<"SubCommands1">() //
23+
auto parser = Parser<"SubCommands1">() //
2324
.addParser<"cmd1">(parser1, Argo::description("cmd1"))
2425
.addParser<"cmd2">(parser2, Argo::description("cmd2"));
2526

@@ -43,21 +44,21 @@ TEST(ArgoTest, SubCommands) {
4344
"42" // int
4445
);
4546

46-
auto parser1 = Argo::Parser<"SubCommands2_cmd1">() //
47+
auto parser1 = Parser<"SubCommands2_cmd1">() //
4748
.addArg<"arg1,a", int>()
4849
.addArg<"arg2,b", int>(Argo::explicitDefault(123));
49-
auto parser2 = Argo::Parser<"SubCommands2_cmd2">() //
50+
auto parser2 = Parser<"SubCommands2_cmd2">() //
5051
.addArg<"arg3,a", int>()
5152
.addArg<"arg4,b", int>();
52-
auto parser3 = Argo::Parser<"SubCommands2_cmd3">() //
53+
auto parser3 = Parser<"SubCommands2_cmd3">() //
5354
.addArg<"arg5,a", int>()
5455
.addArg<"arg6,b", int>()
5556
.addParser<"cmd3">(parser1)
5657
.addParser<"cmd4">(parser2);
57-
auto parser4 = Argo::Parser<"SubCommands2_cmd4">() //
58+
auto parser4 = Parser<"SubCommands2_cmd4">() //
5859
.addArg<"arg7,a", int>()
5960
.addArg<"arg8,b", int>();
60-
auto parser = Argo::Parser<"SubCommands2">() //
61+
auto parser = Parser<"SubCommands2">() //
6162
.addParser<"cmd1">(parser3, Argo::description("cmd1"))
6263
.addParser<"cmd2">(parser4, Argo::description("cmd2"));
6364

tests/TestHelper.h

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
#pragma once
22

3-
#include <format>
43
#include <memory>
54
#include <print>
6-
#include <string>
7-
#include <type_traits>
85

96
template <typename... Args>
10-
std::tuple<int, std::unique_ptr<char*[]>> createArgcArgv(Args... args) {
7+
auto createArgcArgv(Args... args) -> std::tuple<int, std::unique_ptr<char*[]>> {
118
const size_t N = sizeof...(Args);
129
// char** array = new char*[N];
1310
auto array = std::make_unique<char*[]>(N);

0 commit comments

Comments
 (0)