Skip to content

Commit 52acf86

Browse files
authored
Merge pull request #34 from 5cript/feat/fix-tests
Fixed unit tests since status code change.
2 parents a787bce + d3dc357 commit 52acf86

7 files changed

Lines changed: 78 additions & 78 deletions

File tree

.github/workflows/build_and_test.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,31 +91,31 @@ jobs:
9191
steps:
9292
- uses: actions/checkout@v3
9393

94-
- run: brew install ninja boost cryptopp curl llvm@19
94+
- run: brew install ninja boost cryptopp curl llvm@19 lld@19
9595

96-
- name: Get Brew Prefix
96+
- name: Get LLVM Paths
9797
run: |
9898
echo "BREW_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
99-
100-
- name: Set Env Vars
101-
run: |
102-
echo "export LDFLAGS=-L$BREW_PREFIX/lib" >> $GITHUB_ENV
103-
echo "export CPPFLAGS=-I$BREW_PREFIX/include" >> $GITHUB_ENV
99+
echo "LLVM_PREFIX=$(brew --prefix llvm@19)" >> $GITHUB_ENV
100+
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
104101
105102
- name: Configure CMake
106103
run: >
107104
cmake
108-
-DCMAKE_C_COMPILER=$BREW_PREFIX/opt/llvm@19/bin/clang
109-
-DCMAKE_CXX_COMPILER=$BREW_PREFIX/opt/llvm@19/bin/clang++
110-
-DCMAKE_LINKER=$BREW_PREFIX/opt/llvm@19/bin/lld
105+
-DCMAKE_C_COMPILER=${{env.LLVM_PREFIX}}/bin/clang
106+
-DCMAKE_CXX_COMPILER=${{env.LLVM_PREFIX}}/bin/clang++
107+
-DCMAKE_LINKER=${{env.BREW_PREFIX}}/opt/lld@19/bin/lld
108+
-DCMAKE_OSX_SYSROOT=${{env.SDKROOT}}
109+
-DCMAKE_CXX_FLAGS="-stdlib=libc++"
110+
-DCMAKE_EXE_LINKER_FLAGS="-L${{env.LLVM_PREFIX}}/lib/c++ -L${{env.LLVM_PREFIX}}/lib/unwind -lunwind -Wl,-rpath,${{env.LLVM_PREFIX}}/lib/c++"
111111
-DROAR_BUILD_TESTS=on
112112
-S ${{github.workspace}}
113113
-B ${{github.workspace}}/build/clang_${{env.BUILD_TYPE}}
114114
-G"Ninja"
115115
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
116-
-DBREW_PREFIX="$BREW_PREFIX"
116+
-DBREW_PREFIX="${{env.BREW_PREFIX}}"
117117
-DCMAKE_CXX_EXTENSIONS=on
118118
-DCMAKE_CXX_STANDARD=20
119119
120120
- name: Build
121-
run: cmake --build ${{github.workspace}}/build/clang_${{env.BUILD_TYPE}} --config ${{env.BUILD_TYPE}}
121+
run: cmake --build ${{github.workspace}}/build/clang_${{env.BUILD_TYPE}} --config ${{env.BUILD_TYPE}}

test/curl/test_request.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ namespace Roar::Tests
7575
TEST_F(CurlRequestTests, CanMakeSimpleGetRequest)
7676
{
7777
auto response = Request{}.get(url("/index.txt"));
78-
EXPECT_EQ(response.code(), http::status::ok) << response.result();
78+
EXPECT_EQ(response.code(), 200) << response.result();
7979
}
8080

8181
TEST_F(CurlRequestTests, CanRetrieveBodyWithStringSink)
@@ -117,7 +117,7 @@ namespace Roar::Tests
117117
TEST_F(CurlRequestTests, CanGetResponseCode)
118118
{
119119
const auto response = Request{}.get(url("/index.txt"));
120-
EXPECT_EQ(response.code(), boost::beast::http::status::ok);
120+
EXPECT_EQ(response.code(), 200) << response.result();
121121
}
122122

123123
TEST_F(CurlRequestTests, CanGetSizeOfDownload)
@@ -174,19 +174,19 @@ namespace Roar::Tests
174174
TEST_F(CurlRequestTests, CanMakeDeleteRequest)
175175
{
176176
const auto result = Request{}.delete_(url("/deleteHere"));
177-
EXPECT_EQ(result.code(), boost::beast::http::status::ok);
177+
EXPECT_EQ(result.code(), 200) << result.result();
178178
}
179179

180180
TEST_F(CurlRequestTests, CanMakeOptionsRequest)
181181
{
182182
const auto result = Request{}.options(url("/optionsHere"));
183-
EXPECT_EQ(result.code(), boost::beast::http::status::ok);
183+
EXPECT_EQ(result.code(), 200) << result.result();
184184
}
185185

186186
TEST_F(CurlRequestTests, CanMakeHeadRequest)
187187
{
188188
const auto result = Request{}.head(url("/headHere"));
189-
EXPECT_EQ(result.code(), boost::beast::http::status::ok);
189+
EXPECT_EQ(result.code(), 200) << result.result();
190190
}
191191

192192
TEST_F(CurlRequestTests, CanUseFileAsSource)
@@ -243,6 +243,6 @@ namespace Roar::Tests
243243
TEST_F(CurlRequestTests, CanPerformBodylessPutViaCustomRequest)
244244
{
245245
const auto result = Request{}.custom("PUT", url("/putHereNothing"));
246-
EXPECT_EQ(result.code(), boost::beast::http::status::no_content);
246+
EXPECT_EQ(result.code(), 204) << result.result();
247247
}
248248
}

test/test_cors.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ namespace Roar::Tests
205205
{
206206
std::unordered_map<std::string, std::string> headers;
207207
auto res = Curl::Request{}.headerSink(headers).options(url("/permissiveCors"));
208-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
208+
EXPECT_EQ(res.code(), 200) << res.result();
209209
ASSERT_NE(std::end(headers), headers.find("Access-Control-Allow-Origin"));
210210
EXPECT_EQ(headers["Access-Control-Allow-Origin"], "*");
211211
}
@@ -233,13 +233,13 @@ namespace Roar::Tests
233233
{
234234
std::unordered_map<std::string, std::string> headers;
235235
auto res = Curl::Request{}.headerSink(headers).options(urlEncryptedServer("/permissiveCors"));
236-
EXPECT_EQ(res.code(), boost::beast::http::status::forbidden);
236+
EXPECT_EQ(res.code(), 403);
237237
}
238238

239239
TEST_F(CorsTests, PreflightRequestOnEncryptedServerIsAccessibleUnencryptedWhenAllowed)
240240
{
241241
std::unordered_map<std::string, std::string> headers;
242242
auto res = Curl::Request{}.headerSink(headers).options(urlEncryptedServer("/unsecurePermissiveCors"));
243-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
243+
EXPECT_EQ(res.code(), 200);
244244
}
245245
}

test/test_http_server.hpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ namespace Roar::Tests
8787
TEST_F(HttpServerTests, StringPathIsCorrectlyRouted)
8888
{
8989
auto res = Curl::Request{}.get(url("/index.txt"));
90-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
90+
EXPECT_EQ(res.code(), 200);
9191
}
9292

9393
TEST_F(HttpServerTests, RegexPathIsCorrectlyRouted)
@@ -96,7 +96,7 @@ namespace Roar::Tests
9696

9797
nlohmann::json body;
9898
auto res = Curl::Request{}.sink(body).get(url("/something/here"));
99-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
99+
EXPECT_EQ(res.code(), 200);
100100
EXPECT_EQ(body["path"], "/something/here");
101101
ASSERT_THAT(body["matches"], ElementsAre("something", "here"));
102102
}
@@ -107,15 +107,15 @@ namespace Roar::Tests
107107

108108
std::string body;
109109
auto res = Curl::Request{}.sink(body).get(url("/a/b"));
110-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
110+
EXPECT_EQ(res.code(), 200);
111111
EXPECT_EQ(body, "AB");
112112
}
113113

114114
TEST_F(HttpServerTests, EncryptedServerAcceptsEncryptedConnection)
115115
{
116116
auto res =
117117
Curl::Request{}.verifyPeer(false).verifyHost(false).get(urlEncryptedServer("/index.txt", {.secure = true}));
118-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
118+
EXPECT_EQ(res.code(), 200);
119119
}
120120

121121
TEST_F(HttpServerTests, EncryptedServerDoesNotAcceptUnencryptedConnection)
@@ -124,35 +124,35 @@ namespace Roar::Tests
124124
auto res = Curl::Request{}.headerSink(headers).verifyPeer(false).verifyHost(false).get(
125125
urlEncryptedServer("/index.txt", {.secure = false}));
126126
EXPECT_NE(headers.find("Strict-Transport-Security"), std::end(headers));
127-
EXPECT_EQ(res.code(), boost::beast::http::status::forbidden);
127+
EXPECT_EQ(res.code(), 403);
128128
}
129129

130130
TEST_F(HttpServerTests, UnencryptedServerDoesNotAcceptEncryptedConnection)
131131
{
132132
auto res = Curl::Request{}.get(url("/a/b", {.secure = true}));
133133
EXPECT_NE(res.result(), CURLE_OK);
134-
EXPECT_NE(res.code(), boost::beast::http::status::ok);
134+
EXPECT_NE(res.code(), 200);
135135
}
136136

137137
TEST_F(HttpServerTests, EncryptedServerDoesAcceptUnencryptedConnectionWhenExplicitlyAllowed)
138138
{
139139
auto res = Curl::Request{}.get(urlEncryptedServer("/unsecure", {.secure = false}));
140-
EXPECT_EQ(res.code(), boost::beast::http::status::no_content);
140+
EXPECT_EQ(res.code(), 204) << res.result();
141141
}
142142

143143
TEST_F(HttpServerTests, CanSendUsingSendIntermediate)
144144
{
145145
std::string body;
146146
auto res = Curl::Request{}.sink(body).get(url("/sendIntermediate", {.secure = false}));
147-
EXPECT_EQ(res.code(), boost::beast::http::status::ok);
147+
EXPECT_EQ(res.code(), 200) << res.result();
148148
EXPECT_EQ(body, "Hi");
149149
}
150150

151151
TEST_F(HttpServerTests, CanSendFilePartially)
152152
{
153153
std::string body;
154154
auto res = Curl::Request{}.sink(body).setHeader("Range", "bytes=0-100").get(url("/slice"));
155-
EXPECT_EQ(res.code(), boost::beast::http::status::partial_content);
155+
EXPECT_EQ(res.code(), 206) << res.result();
156156
ASSERT_EQ(body.size(), 100);
157157
LetterGenerator gen;
158158
bool allEqual = true;
@@ -177,7 +177,7 @@ namespace Roar::Tests
177177
base.push_back(gen());
178178
auto pos = headers["Content-Type"].find("boundary=");
179179
EXPECT_EQ(pos, std::string::npos);
180-
EXPECT_EQ(res.code(), boost::beast::http::status::partial_content);
180+
EXPECT_EQ(res.code(), 206) << res.result();
181181
EXPECT_EQ(body, base.substr(200, 150));
182182
}
183183

@@ -194,7 +194,7 @@ namespace Roar::Tests
194194
LetterGenerator gen;
195195
for (int i = 0; i != 1024; ++i)
196196
base.push_back(gen());
197-
EXPECT_EQ(res.code(), boost::beast::http::status::partial_content);
197+
EXPECT_EQ(res.code(), 206);
198198
auto pos = headers["Content-Type"].find("boundary=");
199199
ASSERT_NE(pos, std::string::npos);
200200
const auto boundary = headers["Content-Type"].substr(pos + 9);
@@ -225,7 +225,7 @@ namespace Roar::Tests
225225
LetterGenerator gen;
226226
for (int i = 0; i != 25000; ++i)
227227
base.push_back(gen());
228-
EXPECT_EQ(res.code(), boost::beast::http::status::partial_content);
228+
EXPECT_EQ(res.code(), 206);
229229
auto pos = headers["Content-Type"].find("boundary=");
230230
ASSERT_NE(pos, std::string::npos);
231231
const auto boundary = headers["Content-Type"].substr(pos + 9);
@@ -246,28 +246,28 @@ namespace Roar::Tests
246246
TEST_F(HttpServerTests, InvalidRangeRequestIsRejected)
247247
{
248248
auto res = Curl::Request{}.setHeader("Range", "bytes?0-100").get(url("/slice"));
249-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
249+
EXPECT_EQ(res.code(), 400) << res.result();
250250

251251
res = Curl::Request{}.setHeader("Range", "=0-100").get(url("/slice"));
252-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
252+
EXPECT_EQ(res.code(), 400) << res.result();
253253

254254
res = Curl::Request{}.setHeader("Range", "asdf").get(url("/slice"));
255-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
255+
EXPECT_EQ(res.code(), 400) << res.result();
256256

257257
res = Curl::Request{}.setHeader("Range", "bytes=0").get(url("/slice"));
258-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
258+
EXPECT_EQ(res.code(), 400) << res.result();
259259

260260
res = Curl::Request{}.setHeader("Range", "bytes=x").get(url("/slice"));
261-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
261+
EXPECT_EQ(res.code(), 400) << res.result();
262262

263263
res = Curl::Request{}.setHeader("Range", "bytes=0-").get(url("/slice"));
264-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
264+
EXPECT_EQ(res.code(), 400) << res.result();
265265

266266
res = Curl::Request{}.setHeader("Range", "bytes=0-x").get(url("/slice"));
267-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
267+
EXPECT_EQ(res.code(), 400) << res.result();
268268

269269
res = Curl::Request{}.setHeader("Range", "bytes=100-0").get(url("/slice"));
270-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
270+
EXPECT_EQ(res.code(), 400) << res.result();
271271
}
272272

273273
TEST_F(HttpServerTests, CanExtractAuthorizationScheme)

test/test_reading.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ namespace Roar::Tests
101101
using namespace Roar::Literals;
102102
auto now = std::chrono::system_clock::now();
103103
const auto res = Curl::Request{}.emplaceSource<ChunkedSource>(1_MiB).put(url("/failPut"));
104-
EXPECT_EQ(res.code(), boost::beast::http::status::bad_request);
104+
EXPECT_EQ(res.code(), 400);
105105
EXPECT_LT(std::chrono::system_clock::now() - now, std::chrono::seconds{1});
106106
}
107107
}

0 commit comments

Comments
 (0)