Skip to content

Commit efe6722

Browse files
authored
docs: update help message about unit test-suite pattern matching (#4846)
Update the "rippled --help" message for the "-u" parameter. This documents the unit test name pattern matching rule implemented by #4634. Fix #4800
1 parent a41f385 commit efe6722

File tree

6 files changed

+70
-52
lines changed

6 files changed

+70
-52
lines changed

CONTRIBUTING.md

+19
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,25 @@ pip3 install pre-commit
125125
pre-commit install
126126
```
127127

128+
## Unit Tests
129+
To execute all unit tests:
130+
131+
```rippled --unittest --unittest-jobs=<number of cores>```
132+
133+
(Note: Using multiple cores on a Mac M1 can cause spurious test failures. The
134+
cause is still under investigation. If you observe this problem, try specifying fewer jobs.)
135+
136+
To run a specific set of test suites:
137+
138+
```
139+
rippled --unittest TestSuiteName
140+
```
141+
Note: In this example, all tests with prefix `TestSuiteName` will be run, so if
142+
`TestSuiteName1` and `TestSuiteName2` both exist, then both tests will run.
143+
Alternatively, if the unit test name finds an exact match, it will stop
144+
doing partial matches, i.e. if a unit test with a title of `TestSuiteName`
145+
exists, then no other unit test will be executed, apart from `TestSuiteName`.
146+
128147
## Avoid
129148

130149
1. Proliferation of nearly identical code.

src/ripple/app/main/Main.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -431,9 +431,8 @@ run(int argc, char** argv)
431431
po::value<std::string>()->implicit_value(""),
432432
"Perform unit tests. The optional argument specifies one or "
433433
"more comma-separated selectors. Each selector specifies a suite name, "
434-
"full-name (lib.module.suite), module, or library "
435-
"(checked in that "
436-
"order).")(
434+
"suite name prefix, full-name (lib.module.suite), module, or library "
435+
"(checked in that order).")(
437436
"unittest-arg",
438437
po::value<std::string>()->implicit_value(""),
439438
"Supplies an argument string to unit tests. If provided, this argument "

src/test/app/NFTokenBurn_test.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
namespace ripple {
2828

29-
class NFTokenBurn0_test : public beast::unit_test::suite
29+
class NFTokenBurnBaseUtil_test : public beast::unit_test::suite
3030
{
3131
// Helper function that returns the owner count of an account root.
3232
static std::uint32_t
@@ -815,39 +815,39 @@ class NFTokenBurn0_test : public beast::unit_test::suite
815815
}
816816
};
817817

818-
class NFTokenBurn1_test : public NFTokenBurn0_test
818+
class NFTokenBurnWOfixFungTokens_test : public NFTokenBurnBaseUtil_test
819819
{
820820
public:
821821
void
822822
run() override
823823
{
824-
NFTokenBurn0_test::run(1);
824+
NFTokenBurnBaseUtil_test::run(1);
825825
}
826826
};
827827

828-
class NFTokenBurn2_test : public NFTokenBurn0_test
828+
class NFTokenBurnWOFixTokenRemint_test : public NFTokenBurnBaseUtil_test
829829
{
830830
public:
831831
void
832832
run() override
833833
{
834-
NFTokenBurn0_test::run(2);
834+
NFTokenBurnBaseUtil_test::run(2);
835835
}
836836
};
837837

838-
class NFTokenBurn3_test : public NFTokenBurn0_test
838+
class NFTokenBurnAllFeatures_test : public NFTokenBurnBaseUtil_test
839839
{
840840
public:
841841
void
842842
run() override
843843
{
844-
NFTokenBurn0_test::run(3, true);
844+
NFTokenBurnBaseUtil_test::run(3, true);
845845
}
846846
};
847847

848-
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurn0, tx, ripple, 3);
849-
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurn1, tx, ripple, 3);
850-
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurn2, tx, ripple, 3);
851-
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurn3, tx, ripple, 3);
848+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurnBaseUtil, tx, ripple, 3);
849+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurnWOfixFungTokens, tx, ripple, 3);
850+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurnWOFixTokenRemint, tx, ripple, 3);
851+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBurnAllFeatures, tx, ripple, 3);
852852

853853
} // namespace ripple

src/test/app/NFToken_test.cpp

+14-14
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
namespace ripple {
2929

30-
class NFToken0_test : public beast::unit_test::suite
30+
class NFTokenBaseUtil_test : public beast::unit_test::suite
3131
{
3232
FeatureBitset const disallowIncoming{featureDisallowIncoming};
3333

@@ -6863,46 +6863,46 @@ class NFToken0_test : public beast::unit_test::suite
68636863
}
68646864
};
68656865

6866-
class NFToken1_test : public NFToken0_test
6866+
class NFTokenDisallowIncoming_test : public NFTokenBaseUtil_test
68676867
{
68686868
void
68696869
run() override
68706870
{
6871-
NFToken0_test::run(1);
6871+
NFTokenBaseUtil_test::run(1);
68726872
}
68736873
};
68746874

6875-
class NFToken2_test : public NFToken0_test
6875+
class NFTokenWOfixV1_test : public NFTokenBaseUtil_test
68766876
{
68776877
void
68786878
run() override
68796879
{
6880-
NFToken0_test::run(2);
6880+
NFTokenBaseUtil_test::run(2);
68816881
}
68826882
};
68836883

6884-
class NFToken3_test : public NFToken0_test
6884+
class NFTokenWOTokenRemint_test : public NFTokenBaseUtil_test
68856885
{
68866886
void
68876887
run() override
68886888
{
6889-
NFToken0_test::run(3);
6889+
NFTokenBaseUtil_test::run(3);
68906890
}
68916891
};
68926892

6893-
class NFToken4_test : public NFToken0_test
6893+
class NFTokenAllFeatures_test : public NFTokenBaseUtil_test
68946894
{
68956895
void
68966896
run() override
68976897
{
6898-
NFToken0_test::run(4, true);
6898+
NFTokenBaseUtil_test::run(4, true);
68996899
}
69006900
};
69016901

6902-
BEAST_DEFINE_TESTSUITE_PRIO(NFToken0, tx, ripple, 2);
6903-
BEAST_DEFINE_TESTSUITE_PRIO(NFToken1, tx, ripple, 2);
6904-
BEAST_DEFINE_TESTSUITE_PRIO(NFToken2, tx, ripple, 2);
6905-
BEAST_DEFINE_TESTSUITE_PRIO(NFToken3, tx, ripple, 2);
6906-
BEAST_DEFINE_TESTSUITE_PRIO(NFToken4, tx, ripple, 2);
6902+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenBaseUtil, tx, ripple, 2);
6903+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenDisallowIncoming, tx, ripple, 2);
6904+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenWOfixV1, tx, ripple, 2);
6905+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenWOTokenRemint, tx, ripple, 2);
6906+
BEAST_DEFINE_TESTSUITE_PRIO(NFTokenAllFeatures, tx, ripple, 2);
69076907

69086908
} // namespace ripple

src/test/app/Offer_test.cpp

+18-18
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
namespace ripple {
2828
namespace test {
2929

30-
class Offer0_test : public beast::unit_test::suite
30+
class OfferBaseUtil_test : public beast::unit_test::suite
3131
{
3232
XRPAmount
3333
reserve(jtx::Env& env, std::uint32_t count)
@@ -5371,52 +5371,52 @@ class Offer0_test : public beast::unit_test::suite
53715371
}
53725372
};
53735373

5374-
class Offer1_test : public Offer0_test
5374+
class OfferWOFlowCross_test : public OfferBaseUtil_test
53755375
{
53765376
void
53775377
run() override
53785378
{
5379-
Offer0_test::run(1);
5379+
OfferBaseUtil_test::run(1);
53805380
}
53815381
};
53825382

5383-
class Offer2_test : public Offer0_test
5383+
class OfferWTakerDryOffer_test : public OfferBaseUtil_test
53845384
{
53855385
void
53865386
run() override
53875387
{
5388-
Offer0_test::run(2);
5388+
OfferBaseUtil_test::run(2);
53895389
}
53905390
};
53915391

5392-
class Offer3_test : public Offer0_test
5392+
class OfferWOSmallQOffers_test : public OfferBaseUtil_test
53935393
{
53945394
void
53955395
run() override
53965396
{
5397-
Offer0_test::run(3);
5397+
OfferBaseUtil_test::run(3);
53985398
}
53995399
};
54005400

5401-
class Offer4_test : public Offer0_test
5401+
class OfferWOFillOrKill_test : public OfferBaseUtil_test
54025402
{
54035403
void
54045404
run() override
54055405
{
5406-
Offer0_test::run(4);
5406+
OfferBaseUtil_test::run(4);
54075407
}
54085408
};
54095409

5410-
class Offer5_test : public Offer0_test
5410+
class OfferAllFeatures_test : public OfferBaseUtil_test
54115411
{
54125412
void
54135413
run() override
54145414
{
5415-
Offer0_test::run(5, true);
5415+
OfferBaseUtil_test::run(5, true);
54165416
}
54175417
};
54185418

5419-
class Offer_manual_test : public Offer0_test
5419+
class Offer_manual_test : public OfferBaseUtil_test
54205420
{
54215421
void
54225422
run() override
@@ -5439,12 +5439,12 @@ class Offer_manual_test : public Offer0_test
54395439
}
54405440
};
54415441

5442-
BEAST_DEFINE_TESTSUITE_PRIO(Offer0, tx, ripple, 4);
5443-
BEAST_DEFINE_TESTSUITE_PRIO(Offer1, tx, ripple, 4);
5444-
BEAST_DEFINE_TESTSUITE_PRIO(Offer2, tx, ripple, 4);
5445-
BEAST_DEFINE_TESTSUITE_PRIO(Offer3, tx, ripple, 4);
5446-
BEAST_DEFINE_TESTSUITE_PRIO(Offer4, tx, ripple, 4);
5447-
BEAST_DEFINE_TESTSUITE_PRIO(Offer5, tx, ripple, 4);
5442+
BEAST_DEFINE_TESTSUITE_PRIO(OfferBaseUtil, tx, ripple, 4);
5443+
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOFlowCross, tx, ripple, 4);
5444+
BEAST_DEFINE_TESTSUITE_PRIO(OfferWTakerDryOffer, tx, ripple, 4);
5445+
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOSmallQOffers, tx, ripple, 4);
5446+
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOFillOrKill, tx, ripple, 4);
5447+
BEAST_DEFINE_TESTSUITE_PRIO(OfferAllFeatures, tx, ripple, 4);
54485448
BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(Offer_manual, tx, ripple, 20);
54495449

54505450
} // namespace test

src/test/app/TxQ_test.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace ripple {
3535

3636
namespace test {
3737

38-
class TxQ1_test : public beast::unit_test::suite
38+
class TxQPosNegFlows_test : public beast::unit_test::suite
3939
{
4040
void
4141
checkMetrics(
@@ -4949,7 +4949,7 @@ class TxQ1_test : public beast::unit_test::suite
49494949
}
49504950

49514951
void
4952-
run2()
4952+
runMetaInfo()
49534953
{
49544954
testAcctInQueueButEmpty();
49554955
testRPC();
@@ -4970,17 +4970,17 @@ class TxQ1_test : public beast::unit_test::suite
49704970
}
49714971
};
49724972

4973-
class TxQ2_test : public TxQ1_test
4973+
class TxQMetaInfo_test : public TxQPosNegFlows_test
49744974
{
49754975
void
49764976
run() override
49774977
{
4978-
run2();
4978+
runMetaInfo();
49794979
}
49804980
};
49814981

4982-
BEAST_DEFINE_TESTSUITE_PRIO(TxQ1, app, ripple, 1);
4983-
BEAST_DEFINE_TESTSUITE_PRIO(TxQ2, app, ripple, 1);
4982+
BEAST_DEFINE_TESTSUITE_PRIO(TxQPosNegFlows, app, ripple, 1);
4983+
BEAST_DEFINE_TESTSUITE_PRIO(TxQMetaInfo, app, ripple, 1);
49844984

49854985
} // namespace test
49864986
} // namespace ripple

0 commit comments

Comments
 (0)