Comments (5)
Might an alternative to adding a patch be to fix our #ifdefs
to prevent the windows code from being compiled in mingw - like we did with Cygwin?
from approvaltests.cpp.
I had a quick go on this before we pair on it on Friday, and I've found that:
- Visual Studio defines
_WIN32
when compiling C++ - cygwin provided by the current CLion does not
- mingw (provided by Qt Creator 4.9.0 with Qt 5.12.2) does define
_WIN32
This means that our way of detecting Unix-like environments on Windows for Cygwin doesn't work in mingw...
I've got a long way by using _MSC_VER
instead...
There's also a problem of mingw not providing a valid POSIX mkdir()
- as in https://stackoverflow.com/questions/12102147/too-many-arguments-to-function-int-mkdirconst-char - see the answer https://stackoverflow.com/a/14200178/104370
The changes need reviewing, but I can now get the code to build with mingw.
Sadly tests don't pass, as - I think - how Windows file paths are handled by mingw seems to be different from both native windows and cygwin.
from approvaltests.cpp.
The failing test is:
-------------------------------------------------------------------------------
Reporters Report Success Status
-------------------------------------------------------------------------------
...\ApprovalTests.cpp\ApprovalTests_Catch2_Tests\reporters\ReporterTests.cpp:39
...............................................................................
...\ApprovalTests.cpp\ApprovalTests_Catch2_Tests\reporters\ReporterTests.cpp:43: FAILED:
REQUIRE( true == result )
with expansion:
true == false
from approvaltests.cpp.
The symptom is in this code:
TEST_CASE("Reporters Report Success Status") {
std::string knownCommand = SystemUtils::isWindowsOs() ? "C:\\Windows\\System32\\user.exe" : "echo";
With our current behaviour in mingw, SystemUtils::isWindowsOs()
returns true, so knownCommand
returns C:\Windows\System32\user.exe
When the failing test is run, this code in SystemLauncher::launch()
returns false - and the front()
value checked is the user.exe
path mentioned above:
bool launch(std::vector<std::string> argv) override
{
if (!exists(argv.front()))
{
return false;
}
from approvaltests.cpp.
This issue was fixed in the v.3.4.1 release. Closing.
from approvaltests.cpp.
Related Issues (20)
- Add a copyright statement to the released single header HOT 1
- GitHub Actions: Don't run scheduled tasks on forked repos
- Using kdiff3 as diff tool, user has to specify name of output file after merge
- cygwin CI build hangs for 6 hours then fails HOT 5
- warning C4459 in MSVC with /W4 HOT 1
- Does not compile with clang13 due to -Werror/-Wdeprecated-copy-with-dtor HOT 2
- Ninja + Catch2 + mingw64
- useApprovalsSubdirectory() doesn't create the output directory in the expected location HOT 3
- "Unable to create directory" - unable to run test build with mingw provided by qt-installer HOT 5
- with CppUTest: `ApprovalMismatchException` suppresses other tests output HOT 4
- add `code -d {Received} {Approved}` to Reporters list
- Catch2 integration does not handle Generators inside sections HOT 1
- Catch2 v3 integration HOT 5
- Bug with {fmt} integration HOT 2
- CLion reporter does not open correctly if CLion is already open
- In-lining test output (as opposed to saving in files) HOT 4
- Support for catch2 v3.x.x HOT 2
- Diffing tool is never prompted to open HOT 13
- Impossible to use UNC filename in TemplatedCustomNamer [`removeRedundantDirectorySeparators()` breaks use of UNC paths, which contain `\\`] HOT 5
- _mkdir fails when asked to create more than one directory HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from approvaltests.cpp.