Skip to content

Commit 69cf4be

Browse files
authored
Merge pull request #1256 from pmienk/version3
Update msvc build script and test execution.
2 parents 3596d66 + e15b557 commit 69cf4be

3 files changed

Lines changed: 54 additions & 83 deletions

File tree

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,21 +200,25 @@ jobs:
200200
configuration: "StaticRelease"
201201
platform: "Win32"
202202
version: "vs2022"
203+
tests: "*"
203204

204205
- os: windows-latest
205206
configuration: "StaticDebug"
206207
platform: "Win32"
207208
version: "vs2022"
209+
tests: "*"
208210

209211
- os: windows-latest
210212
configuration: "StaticRelease"
211213
platform: "x64"
212214
version: "vs2022"
215+
tests: "*"
213216

214217
- os: windows-latest
215218
configuration: "StaticDebug"
216219
platform: "x64"
217220
version: "vs2022"
221+
tests: "*"
218222

219223
runs-on: ${{ matrix.os }}
220224

@@ -263,7 +267,7 @@ jobs:
263267
$BC_TEST_SINGLETON = $BC_TEST_EXES.FullName;
264268
Write-Host "Executing $BC_TEST_SINGLETON $env:BOOST_UNIT_TEST_OPTIONS" -ForegroundColor Yellow;
265269
try {
266-
Invoke-Expression "$BC_TEST_SINGLETON $env:BOOST_UNIT_TEST_OPTIONS"
270+
Invoke-Expression "$BC_TEST_SINGLETON --run_test=${{ matrix.tests }} $env:BOOST_UNIT_TEST_OPTIONS"
267271
}
268272
catch {
269273
$ERR = $_;

build.cmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ IF %ERRORLEVEL% NEQ 0 (
6464
exit /b 1
6565
)
6666
call cd /d "%path_base%\%~1\builds\msvc\%proj_version%"
67-
call "%msbuild_exe%" %msbuild_args% %~1.sln
67+
call "%msbuild_exe%" %msbuild_args% %~1.sln /p:PreBuildEventUseInBuild=false /p:PostBuildEventUseInBuild=false
6868
IF %ERRORLEVEL% NEQ 0 (
6969
call :failure "%msbuild_exe% %msbuild_args% %~1.sln failed."
7070
exit /b 1
@@ -81,7 +81,7 @@ IF %ERRORLEVEL% NEQ 0 (
8181
exit /b 1
8282
)
8383
call cd /d "%path_base%\%~1\builds\msvc\%proj_version%"
84-
call "%msbuild_exe%" %msbuild_args% /target:%~1:Rebuild %~1.sln
84+
call "%msbuild_exe%" %msbuild_args% /target:%~1:Rebuild %~1.sln /p:PreBuildEventUseInBuild=false /p:PostBuildEventUseInBuild=false
8585
IF %ERRORLEVEL% NEQ 0 (
8686
call :failure "%msbuild_exe% %msbuild_args% /target:%~1:Rebuild %~1.sln"
8787
exit /b 1

test/wallet/mnemonic.cpp

Lines changed: 47 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,45 @@
2525
using namespace bc;
2626
using namespace bc::wallet;
2727

28+
bool intersects(dictionary alpha, dictionary beta)
29+
{
30+
return std::any_of(alpha.begin(), alpha.end(),
31+
[&](const char* test_right)
32+
{
33+
#if defined _MSC_VER && (!defined NDEBUG)
34+
// MSVC build error mitigation.
35+
return std::find_if(beta.begin(), beta.end(),
36+
[&](const char test_left[])
37+
{
38+
return (std::strcmp(test_left, test_right) == 0);
39+
}) != std::end(beta);
40+
#else
41+
return std::find(beta.begin(), beta.end(),
42+
test_right) != std::end(beta);
43+
#endif
44+
});
45+
}
46+
47+
dictionary::size_type intersection_count(dictionary alpha, dictionary beta)
48+
{
49+
return std::count_if(alpha.begin(), alpha.end(),
50+
[&](const char* test_right)
51+
{
52+
#if defined _MSC_VER && (!defined NDEBUG)
53+
// MSVC build error mitigation.
54+
return std::find_if(beta.begin(), beta.end(),
55+
[&](const char test_left[])
56+
{
57+
return (std::strcmp(test_left, test_right) == 0);
58+
}) != std::end(beta);
59+
#else
60+
return std::find(beta.begin(), beta.end(),
61+
test_right) != std::end(beta);
62+
#endif
63+
64+
});
65+
}
66+
2867
BOOST_AUTO_TEST_SUITE(mnemonic_tests)
2968

3069
BOOST_AUTO_TEST_CASE(mnemonic__decode_mnemonic__no_passphrase)
@@ -117,121 +156,49 @@ BOOST_AUTO_TEST_CASE(mnemonic__create_mnemonic__giant)
117156

118157
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__en_es__no_intersection)
119158
{
120-
const auto intersection = std::any_of(language::en.begin(), language::en.end(),
121-
[&](const char* test_right)
122-
{
123-
return std::find_if(language::es.begin(), language::es.end(),
124-
[&](const char test_left[])
125-
{
126-
return (std::strcmp(test_left, test_right) == 0);
127-
}) != std::end(language::es);
128-
});
129-
159+
const auto intersection = intersects(language::en, language::es);
130160
BOOST_REQUIRE(!intersection);
131161
}
132162

133163
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__it_en__no_intersection)
134164
{
135-
const auto intersection = std::any_of(language::it.begin(), language::it.end(),
136-
[&](const char* test_right)
137-
{
138-
return std::find_if(language::en.begin(), language::en.end(),
139-
[&](const char test_left[])
140-
{
141-
return (std::strcmp(test_left, test_right) == 0);
142-
}) != std::end(language::en);
143-
});
144-
165+
const auto intersection = intersects(language::it, language::en);
145166
BOOST_REQUIRE(!intersection);
146167
}
147168

148169
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__fr_es__no_intersection)
149170
{
150-
const auto intersection = std::any_of(language::fr.begin(), language::fr.end(),
151-
[&](const char* test_right)
152-
{
153-
return std::find_if(language::es.begin(), language::es.end(),
154-
[&](const char test_left[])
155-
{
156-
return (std::strcmp(test_left, test_right) == 0);
157-
}) != std::end(language::es);
158-
});
159-
171+
const auto intersection = intersects(language::fr, language::es);
160172
BOOST_REQUIRE(!intersection);
161173
}
162174

163175
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__it_es__no_intersection)
164176
{
165-
const auto intersection = std::any_of(language::it.begin(), language::it.end(),
166-
[&](const char* test_right)
167-
{
168-
return std::find_if(language::es.begin(), language::es.end(),
169-
[&](const char test_left[])
170-
{
171-
return (std::strcmp(test_left, test_right) == 0);
172-
}) != std::end(language::es);
173-
});
174-
177+
const auto intersection = intersects(language::it, language::es);
175178
BOOST_REQUIRE(!intersection);
176179
}
177180

178181
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__fr_it__no_intersection)
179182
{
180-
const auto intersection = std::any_of(language::fr.begin(), language::fr.end(),
181-
[&](const char* test_right)
182-
{
183-
return std::find_if(language::it.begin(), language::it.end(),
184-
[&](const char test_left[])
185-
{
186-
return (std::strcmp(test_left, test_right) == 0);
187-
})!= std::end(language::it);
188-
});
189-
183+
const auto intersection = intersects(language::fr, language::it);
190184
BOOST_REQUIRE(!intersection);
191185
}
192186

193187
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__cs_pt__no_intersection)
194188
{
195-
const auto intersection = std::any_of(language::cs.begin(), language::cs.end(),
196-
[&](const char* test_right)
197-
{
198-
return std::find_if(language::pt.begin(), language::pt.end(),
199-
[&](const char test_left[])
200-
{
201-
return (std::strcmp(test_left, test_right) == 0);
202-
}) != std::end(language::pt);
203-
});
204-
189+
const auto intersection = intersects(language::cs, language::pt);
205190
BOOST_REQUIRE(!intersection);
206191
}
207192

208193
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__ko_zh_Hans__no_intersection)
209194
{
210-
const auto intersection = std::any_of(language::ko.begin(), language::ko.end(),
211-
[&](const char* test_right)
212-
{
213-
return std::find_if(language::zh_Hans.begin(), language::zh_Hans.end(),
214-
[&](const char test_left[])
215-
{
216-
return (std::strcmp(test_left, test_right) == 0);
217-
}) != std::end(language::zh_Hans);
218-
});
219-
195+
const auto intersection = intersects(language::ko, language::zh_Hans);
220196
BOOST_REQUIRE(!intersection);
221197
}
222198

223199
BOOST_AUTO_TEST_CASE(mnemonic__dictionary__zh_Hans_Hant__1275_intersections)
224200
{
225-
const auto intersections = std::count_if(language::zh_Hans.begin(), language::zh_Hans.end(),
226-
[&](const char* test_right)
227-
{
228-
return std::find_if(language::zh_Hant.begin(), language::zh_Hant.end(),
229-
[&](const char test_left[])
230-
{
231-
return (std::strcmp(test_left, test_right) == 0);
232-
}) != std::end(language::zh_Hant);
233-
});
234-
201+
const auto intersections = intersection_count(language::zh_Hans, language::zh_Hant);
235202
BOOST_REQUIRE_EQUAL(intersections, 1275u);
236203
}
237204

0 commit comments

Comments
 (0)