Skip to content

Commit

Permalink
Merge bitcoin#12895: tests: Add note about test suite name uniqueness…
Browse files Browse the repository at this point in the history
… requirement to developer notes

d1b622b tests: Add check for test suite name uniqueness in lint-tests.sh (practicalswift)
dc8067b tests: Add note about uniqueness requirement for test suite names (practicalswift)
3ebfb2d tests: Avoid test suite name collision in wallet crypto_tests (MarcoFalke)

Pull request description:

  * Add documentation: Add note about test suite name uniqueness requirement in developer notes
  * Add regression test: Update `lint-tests.sh` to make it check also for test suite name uniqueness

  Context: bitcoin#12894 (`tests: Avoid test suite name collision in wallet crypto_tests`)

Tree-SHA512: 3c8502db069ef3d753f534976a86a997b12bac539e808a7285193bf81c9dd8c1b06821c3dd1bdf870ab87722b02c8aa9574c62ace70c2a1b8091785cb8c9aace
  • Loading branch information
laanwj authored and PastaPastaPasta committed Jun 10, 2020
1 parent 394e044 commit db44f19
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 7 deletions.
19 changes: 17 additions & 2 deletions contrib/devtools/lint-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
# Check the test suite naming convention
# Check the test suite naming conventions

EXIT_CODE=0

NAMING_INCONSISTENCIES=$(git grep -E '^BOOST_FIXTURE_TEST_SUITE\(' -- \
"src/test/**.cpp" "src/wallet/test/**.cpp" | \
Expand All @@ -15,5 +17,18 @@ if [[ ${NAMING_INCONSISTENCIES} != "" ]]; then
echo "that convention:"
echo
echo "${NAMING_INCONSISTENCIES}"
exit 1
EXIT_CODE=1
fi

TEST_SUITE_NAME_COLLISSIONS=$(git grep -E '^BOOST_FIXTURE_TEST_SUITE\(' -- \
"src/test/**.cpp" "src/wallet/test/**.cpp" | cut -f2 -d'(' | cut -f1 -d, | \
sort | uniq -d)
if [[ ${TEST_SUITE_NAME_COLLISSIONS} != "" ]]; then
echo "Test suite names must be unique. The following test suite names"
echo "appear to be used more than once:"
echo
echo "${TEST_SUITE_NAME_COLLISSIONS}"
EXIT_CODE=1
fi

exit ${EXIT_CODE}
3 changes: 2 additions & 1 deletion doc/developer-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ code.
- Class names, function names and method names are UpperCamelCase
(PascalCase). Do not prefix class names with `C`.
- Test suite naming convention: The Boost test suite in file
`src/test/foo_tests.cpp` should be named `foo_tests`.
`src/test/foo_tests.cpp` should be named `foo_tests`. Test suite names
must be unique.

- **Miscellaneous**
- `++i` is preferred over `i++`.
Expand Down
2 changes: 1 addition & 1 deletion src/Makefile.test.include
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ BITCOIN_TESTS += \
wallet/test/wallet_test_fixture.h \
wallet/test/accounting_tests.cpp \
wallet/test/wallet_tests.cpp \
wallet/test/crypto_tests.cpp
wallet/test/wallet_crypto_tests.cpp
endif

test_test_dash_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
Expand Down
4 changes: 2 additions & 2 deletions src/wallet/crypter.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,15 @@ class CMasterKey

typedef std::vector<unsigned char, secure_allocator<unsigned char> > CKeyingMaterial;

namespace crypto_tests
namespace wallet_crypto_tests
{
class TestCrypter;
}

/** Encryption/decryption context with key information */
class CCrypter
{
friend class crypto_tests::TestCrypter; // for test access to chKey/chIV
friend class wallet_crypto_tests::TestCrypter; // for test access to chKey/chIV
private:
std::vector<unsigned char, secure_allocator<unsigned char>> vchKey;
std::vector<unsigned char, secure_allocator<unsigned char>> vchIV;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

#include <boost/test/unit_test.hpp>

BOOST_FIXTURE_TEST_SUITE(crypto_tests, BasicTestingSetup)
BOOST_FIXTURE_TEST_SUITE(wallet_crypto_tests, BasicTestingSetup)

void TestAES256CBC(const std::string &hexkey, const std::string &hexiv, const std::string &hexin, const std::string &hexout)
{
Expand Down

0 comments on commit db44f19

Please sign in to comment.