Skip to content

Commit 3405d87

Browse files
committed
Enable test paramters
1 parent 0c2e950 commit 3405d87

File tree

3 files changed

+91
-89
lines changed

3 files changed

+91
-89
lines changed

src/test/MsQuicTests.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,28 +642,41 @@ QuicTestEcn(
642642
const FamilyArgs& Params
643643
);
644644

645+
struct AppProvidedBuffersConfig {
646+
uint32_t StreamStartBuffersNum;
647+
uint32_t StreamStartBuffersSize;
648+
uint32_t AdditionalBuffersNum;
649+
uint32_t AdditionalBuffersSize;
650+
};
651+
645652
void
646653
QuicTestStreamAppProvidedBuffers_ClientSend(
654+
const AppProvidedBuffersConfig& BufferConfig
647655
);
648656

649657
void
650658
QuicTestStreamAppProvidedBuffers_ServerSend(
659+
const AppProvidedBuffersConfig& BufferConfig
651660
);
652661

653662
void
654663
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream(
664+
const AppProvidedBuffersConfig& BufferConfig
655665
);
656666

657667
void
658668
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer(
669+
const AppProvidedBuffersConfig& BufferConfig
659670
);
660671

661672
void
662673
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream(
674+
const AppProvidedBuffersConfig& BufferConfig
663675
);
664676

665677
void
666678
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer(
679+
const AppProvidedBuffersConfig& BufferConfig
667680
);
668681

669682
//

src/test/bin/quic_gtest.cpp

Lines changed: 47 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#include "quic_gtest.cpp.clog.h"
1111
#endif
1212

13+
#include <MsQuicTests.h>
14+
1315
#include <array>
1416

1517
#ifdef QUIC_TEST_DATAPATH_HOOKS_ENABLED
@@ -2372,61 +2374,81 @@ TEST(Misc, StreamMultiReceive) {
23722374
}
23732375
}
23742376

2375-
TEST(Misc, StreamAppProvidedBuffers_ClientSend) {
2376-
TestLogger Logger("StreamAppProvidedBuffers_ClientSend");
2377+
// App-provided receive buffer tests
2378+
2379+
struct WithAppProvidedBuffersConfigArgs: public testing::TestWithParam<AppProvidedBuffersConfig> {
2380+
static ::std::vector<AppProvidedBuffersConfig> Generate() {
2381+
return {
2382+
{ 8, 0x500, 8, 0x500}
2383+
};
2384+
}
2385+
};
2386+
2387+
std::ostream& operator << (std::ostream& o, const AppProvidedBuffersConfig& args) {
2388+
return o <<
2389+
"Start:" << args.StreamStartBuffersNum << " buffers of" << args.StreamStartBuffersSize << "bytes," <<
2390+
"Additional:" << args.AdditionalBuffersNum << " buffers of " << args.AdditionalBuffersSize << "bytes.";
2391+
}
2392+
2393+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffers_ClientSend) {
2394+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffers_ClientSend", GetParam());
23772395
if (TestingKernelMode) {
2378-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffers_ClientSend)));
2396+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffers_ClientSend), GetParam()));
23792397
} else {
2380-
QuicTestStreamAppProvidedBuffers_ClientSend();
2398+
QuicTestStreamAppProvidedBuffers_ClientSend(GetParam());
23812399
}
23822400
}
23832401

2384-
TEST(Misc, StreamAppProvidedBuffers_ServerSend) {
2385-
TestLogger Logger("StreamAppProvidedBuffers_ServerSend");
2402+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffers_ServerSend) {
2403+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffers_ServerSend", GetParam());
23862404
if (TestingKernelMode) {
2387-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffers_ServerSend)));
2405+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffers_ServerSend), GetParam()));
23882406
} else {
2389-
QuicTestStreamAppProvidedBuffers_ServerSend();
2407+
QuicTestStreamAppProvidedBuffers_ServerSend(GetParam());
23902408
}
23912409
}
23922410

2393-
// Invoke the following test functions
2394-
TEST(Misc, StreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream) {
2395-
TestLogger Logger("StreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream");
2411+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream) {
2412+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream", GetParam());
23962413
if (TestingKernelMode) {
2397-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream)));
2414+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream), GetParam()));
23982415
} else {
2399-
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream();
2416+
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream(GetParam());
24002417
}
24012418
}
24022419

2403-
TEST(Misc, StreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer) {
2404-
TestLogger Logger("StreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer");
2420+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer) {
2421+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer", GetParam());
24052422
if (TestingKernelMode) {
2406-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer)));
2423+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer), GetParam()));
24072424
} else {
2408-
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer();
2425+
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer(GetParam());
24092426
}
24102427
}
24112428

2412-
TEST(Misc, StreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream) {
2413-
TestLogger Logger("StreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream");
2429+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream) {
2430+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream", GetParam());
24142431
if (TestingKernelMode) {
2415-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream)));
2432+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream), GetParam()));
24162433
} else {
2417-
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream();
2434+
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream(GetParam());
24182435
}
24192436
}
24202437

2421-
TEST(Misc, StreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer) {
2422-
TestLogger Logger("StreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer");
2438+
TEST_P(WithAppProvidedBuffersConfigArgs, StreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer) {
2439+
TestLoggerT<ParamType> Logger("StreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer", GetParam());
24232440
if (TestingKernelMode) {
2424-
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer)));
2441+
ASSERT_TRUE(InvokeKernelTest(FUNC(QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer), GetParam()));
24252442
} else {
2426-
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer();
2443+
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer(GetParam());
24272444
}
24282445
}
24292446

2447+
INSTANTIATE_TEST_SUITE_P(
2448+
Misc,
2449+
WithAppProvidedBuffersConfigArgs,
2450+
testing::ValuesIn(WithAppProvidedBuffersConfigArgs::Generate()));
2451+
24302452
#endif // QUIC_API_ENABLE_PREVIEW_FEATURES
24312453

24322454
TEST(Misc, StreamBlockUnblockUnidiConnFlowControl) {

src/test/lib/DataTest.cpp

Lines changed: 31 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4696,19 +4696,18 @@ struct AppProvidedBuffers {
46964696
bool Initialized{false};
46974697

46984698
AppProvidedBuffers(
4699-
uint32_t StreamStartBuffersNum, uint32_t StreamStartBuffersSize,
4700-
uint32_t AdditionalBuffersNum, uint32_t AdditionalBuffersSize
4699+
const AppProvidedBuffersConfig& Config
47014700
) {
47024701

4703-
const uint32_t BufferSize = StreamStartBuffersNum * StreamStartBuffersSize +
4704-
AdditionalBuffersNum * AdditionalBuffersSize;
4702+
const uint32_t BufferSize = Config.StreamStartBuffersNum * Config.StreamStartBuffersSize +
4703+
Config.AdditionalBuffersNum * Config.AdditionalBuffersSize;
47054704

47064705
if (BufferSize == 0) {
47074706
return;
47084707
}
47094708

4710-
NumStreamStartBuffers = StreamStartBuffersNum;
4711-
NumAdditionalBuffers = AdditionalBuffersNum;
4709+
NumStreamStartBuffers = Config.StreamStartBuffersNum;
4710+
NumAdditionalBuffers = Config.AdditionalBuffersNum;
47124711

47134712
SendDataSize = BufferSize;
47144713
SendDataBuffer.reset(new(std::nothrow) uint8_t[SendDataSize]);
@@ -4725,28 +4724,28 @@ struct AppProvidedBuffers {
47254724
return;
47264725
}
47274726

4728-
if (StreamStartBuffersNum > 0) {
4729-
StreamStartBuffers.reset(new(std::nothrow) QUIC_BUFFER[StreamStartBuffersNum]);
4727+
if (Config.StreamStartBuffersNum > 0) {
4728+
StreamStartBuffers.reset(new(std::nothrow) QUIC_BUFFER[Config.StreamStartBuffersNum]);
47304729
if (!StreamStartBuffers) {
47314730
return;
47324731
}
47334732

4734-
for (auto i = 0u; i < StreamStartBuffersNum; ++i) {
4735-
StreamStartBuffers[i].Buffer = ReceiveDataBuffer.get() + i * StreamStartBuffersSize;
4736-
StreamStartBuffers[i].Length = StreamStartBuffersSize;
4733+
for (auto i = 0u; i < Config.StreamStartBuffersNum; ++i) {
4734+
StreamStartBuffers[i].Buffer = ReceiveDataBuffer.get() + i * Config.StreamStartBuffersSize;
4735+
StreamStartBuffers[i].Length = Config.StreamStartBuffersSize;
47374736
}
47384737
}
47394738

4740-
if (AdditionalBuffersNum > 0) {
4741-
AdditionalBuffers.reset(new(std::nothrow) QUIC_BUFFER[AdditionalBuffersNum]);
4739+
if (Config.AdditionalBuffersNum > 0) {
4740+
AdditionalBuffers.reset(new(std::nothrow) QUIC_BUFFER[Config.AdditionalBuffersNum]);
47424741
if (!AdditionalBuffers) {
47434742
return;
47444743
}
47454744

4746-
for (auto i = 0u; i < AdditionalBuffersNum; ++i) {
4745+
for (auto i = 0u; i < Config.AdditionalBuffersNum; ++i) {
47474746
AdditionalBuffers[i].Buffer = ReceiveDataBuffer.get() +
4748-
StreamStartBuffersNum * StreamStartBuffersSize + i * AdditionalBuffersSize;
4749-
AdditionalBuffers[i].Length = AdditionalBuffersSize;
4747+
Config.StreamStartBuffersNum * Config.StreamStartBuffersSize + i * Config.AdditionalBuffersSize;
4748+
AdditionalBuffers[i].Length = Config.AdditionalBuffersSize;
47504749
}
47514750
}
47524751

@@ -4760,17 +4759,12 @@ struct AppProvidedBuffers {
47604759

47614760
void
47624761
QuicTestStreamAppProvidedBuffers_ClientSend(
4762+
const AppProvidedBuffersConfig& BufferConfig
47634763
)
47644764
{
47654765
// Client side sending data, server side receiving with app-provided buffers
47664766

4767-
const uint32_t StreamStartBuffersNum = 8;
4768-
const uint32_t StreamStartBuffersSize = 0x500;
4769-
const uint32_t AdditionalBuffersNum = 8;
4770-
const uint32_t AdditionalBuffersSize = 0x500;
4771-
AppProvidedBuffers Buffers{
4772-
StreamStartBuffersNum, StreamStartBuffersSize,
4773-
AdditionalBuffersNum, AdditionalBuffersSize };
4767+
AppProvidedBuffers Buffers{BufferConfig};
47744768
TEST_TRUE(Buffers.IsValid());
47754769

47764770
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.
@@ -4799,7 +4793,8 @@ QuicTestStreamAppProvidedBuffers_ClientSend(
47994793
ReceiveContext.NumBuffersForStreamStarted = Buffers.NumStreamStartBuffers;
48004794
ReceiveContext.BuffersForThreshold = Buffers.AdditionalBuffers.get();
48014795
ReceiveContext.NumBuffersForThreshold = Buffers.NumAdditionalBuffers;
4802-
ReceiveContext.MoreBufferThreshold = StreamStartBuffersSize * StreamStartBuffersNum / 2;
4796+
ReceiveContext.MoreBufferThreshold =
4797+
BufferConfig.StreamStartBuffersSize * BufferConfig.StreamStartBuffersNum / 2;
48034798
ReceiveContext.ReceivedBytesThreshold = ReceiveContext.MoreBufferThreshold;
48044799

48054800
// Setup a listener
@@ -4841,17 +4836,12 @@ QuicTestStreamAppProvidedBuffers_ClientSend(
48414836

48424837
void
48434838
QuicTestStreamAppProvidedBuffers_ServerSend(
4839+
const AppProvidedBuffersConfig& BufferConfig
48444840
)
48454841
{
48464842
// Sever side sending data, client side receiving with app-provided buffers
48474843

4848-
const uint32_t StreamStartBuffersNum = 8;
4849-
const uint32_t StreamStartBuffersSize = 0x2800;
4850-
const uint32_t AdditionalBuffersNum = 8;
4851-
const uint32_t AdditionalBuffersSize = 0x2800;
4852-
AppProvidedBuffers Buffers{
4853-
StreamStartBuffersNum, StreamStartBuffersSize,
4854-
AdditionalBuffersNum, AdditionalBuffersSize };
4844+
AppProvidedBuffers Buffers{ BufferConfig };
48554845
TEST_TRUE(Buffers.IsValid());
48564846

48574847
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.
@@ -4897,7 +4887,8 @@ QuicTestStreamAppProvidedBuffers_ServerSend(
48974887
// - an event will be signaled at that point to synchronize with the sender.
48984888
ReceiveContext.BuffersForThreshold = Buffers.AdditionalBuffers.get();
48994889
ReceiveContext.NumBuffersForThreshold = Buffers.NumAdditionalBuffers;
4900-
ReceiveContext.MoreBufferThreshold = StreamStartBuffersSize * StreamStartBuffersNum / 2;
4890+
ReceiveContext.MoreBufferThreshold =
4891+
BufferConfig.StreamStartBuffersSize * BufferConfig.StreamStartBuffersNum / 2;
49014892
ReceiveContext.ReceivedBytesThreshold = ReceiveContext.MoreBufferThreshold;
49024893

49034894
MsQuicStream ClientStream(
@@ -4935,18 +4926,12 @@ QuicTestStreamAppProvidedBuffers_ServerSend(
49354926

49364927
void
49374928
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream(
4929+
const AppProvidedBuffersConfig& BufferConfig
49384930
)
49394931
{
49404932
// Client side sending data - abort the stream on insufficient receive buffer notification
49414933

4942-
const uint32_t StreamStartBuffersNum = 10;
4943-
const uint32_t StreamStartBuffersSize = 100;
4944-
const uint32_t AdditionalBuffersNum = 1;
4945-
const uint32_t AdditionalBuffersSize = 100;
4946-
4947-
AppProvidedBuffers Buffers{
4948-
StreamStartBuffersNum, StreamStartBuffersSize,
4949-
AdditionalBuffersNum, AdditionalBuffersSize };
4934+
AppProvidedBuffers Buffers{BufferConfig};
49504935
TEST_TRUE(Buffers.IsValid());
49514936

49524937
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.
@@ -5012,18 +4997,12 @@ QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_AbortStream(
50124997

50134998
void
50144999
QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer(
5000+
const AppProvidedBuffersConfig& BufferConfig
50155001
)
50165002
{
50175003
// Client side sending data - provide more buffer on insufficient receive buffer notification
50185004

5019-
const uint32_t StreamStartBuffersNum = 8;
5020-
const uint32_t StreamStartBuffersSize = 0x500;
5021-
const uint32_t AdditionalBuffersNum = 8;
5022-
const uint32_t AdditionalBuffersSize = 0x500;
5023-
5024-
AppProvidedBuffers Buffers{
5025-
StreamStartBuffersNum, StreamStartBuffersSize,
5026-
AdditionalBuffersNum, AdditionalBuffersSize };
5005+
AppProvidedBuffers Buffers{BufferConfig};
50275006
TEST_TRUE(Buffers.IsValid());
50285007

50295008
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.
@@ -5088,18 +5067,12 @@ QuicTestStreamAppProvidedBuffersOutOfSpace_ClientSend_ProvideMoreBuffer(
50885067

50895068
void
50905069
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream(
5070+
const AppProvidedBuffersConfig& BufferConfig
50915071
)
50925072
{
50935073
// Server side sending data - abort the stream on insufficient receive buffer notification
50945074

5095-
const uint32_t StreamStartBuffersNum = 8;
5096-
const uint32_t StreamStartBuffersSize = 0x500;
5097-
const uint32_t AdditionalBuffersNum = 8;
5098-
const uint32_t AdditionalBuffersSize = 0x500;
5099-
5100-
AppProvidedBuffers Buffers{
5101-
StreamStartBuffersNum, StreamStartBuffersSize,
5102-
AdditionalBuffersNum, AdditionalBuffersSize };
5075+
AppProvidedBuffers Buffers{BufferConfig};
51035076
TEST_TRUE(Buffers.IsValid());
51045077

51055078
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.
@@ -5174,18 +5147,12 @@ QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_AbortStream(
51745147

51755148
void
51765149
QuicTestStreamAppProvidedBuffersOutOfSpace_ServerSend_ProvideMoreBuffer(
5150+
const AppProvidedBuffersConfig& BufferConfig
51775151
)
51785152
{
51795153
// Server side sending data - provide more buffer on insufficient receive buffer notification
51805154

5181-
const uint32_t StreamStartBuffersNum = 8;
5182-
const uint32_t StreamStartBuffersSize = 0x500;
5183-
const uint32_t AdditionalBuffersNum = 8;
5184-
const uint32_t AdditionalBuffersSize = 0x500;
5185-
5186-
AppProvidedBuffers Buffers{
5187-
StreamStartBuffersNum, StreamStartBuffersSize,
5188-
AdditionalBuffersNum, AdditionalBuffersSize };
5155+
AppProvidedBuffers Buffers{BufferConfig};
51895156
TEST_TRUE(Buffers.IsValid());
51905157

51915158
// Declare all contexts before the registration to ensure they outlive all MsQuic objects.

0 commit comments

Comments
 (0)