61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
|
#include "TestFramework.h"
|
||
|
|
||
|
#include "CommandLineArgs.h"
|
||
|
#include "MainApplication.h"
|
||
|
#include "GuiApplication.h"
|
||
|
#include "Widget.h"
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#include "Win32WindowInterface.h"
|
||
|
#include <windows.h>
|
||
|
#endif
|
||
|
|
||
|
#include <iostream>
|
||
|
|
||
|
class TestApp : public GuiApplication
|
||
|
{
|
||
|
public:
|
||
|
TestApp(std::unique_ptr<CommandLineArgs> args = nullptr, std::unique_ptr<MainApplication> mainApp = nullptr)
|
||
|
: GuiApplication(std::move(args), std::move(mainApp))
|
||
|
{
|
||
|
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
|
||
|
{
|
||
|
std::ofstream out("out.txt");
|
||
|
std::cout.rdbuf(out.rdbuf());
|
||
|
|
||
|
CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
|
||
|
|
||
|
auto args = CommandLineArgs::Create();
|
||
|
CommandLineArgs::initialize(args.get());
|
||
|
|
||
|
auto main_app = MainApplication::Create();
|
||
|
|
||
|
auto applicationContext = std::make_unique<Win32ApplicationContext>();
|
||
|
applicationContext->hInstance = reinterpret_cast<void*>(hInstance);
|
||
|
applicationContext->nCmdShow = nCmdShow;
|
||
|
|
||
|
main_app->initialize(std::move(args), std::move(applicationContext));
|
||
|
|
||
|
auto gui_app = std::make_unique<TestApp>(nullptr, std::move(main_app));
|
||
|
|
||
|
#else
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
auto args = CommandLineArgs::Create();
|
||
|
args->process(argc, argv);
|
||
|
#endif
|
||
|
|
||
|
TestCaseRunner::getInstance().setTestApplication(gui_app.get());
|
||
|
auto result = TestCaseRunner::getInstance().run({});
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
CoUninitialize();
|
||
|
#endif
|
||
|
return 0;
|
||
|
}
|