tsl-devkit/lsp-server/test/test_provider/test_main.cppm

52 lines
1.6 KiB
C++

module;
export module lsp.test.provider.main;
import std;
import lsp.test.framework;
import lsp.test.provider.completion;
import lsp.test.provider.definitions;
import lsp.test.provider.json_flow;
import lsp.test.provider.misc;
import lsp.test.provider.surface;
import lsp.test.provider.fixtures;
export int Run(int argc, char** argv)
{
if (argc > 0 && argv && argv[0])
{
lsp::test::provider::SetExecutablePath(std::filesystem::absolute(argv[0]).string());
}
for (int i = 1; i < argc; ++i)
{
if (std::string_view(argv[i]) == "--exit-provider")
{
return lsp::test::provider::RunExitProviderChild();
}
}
lsp::test::TestRunner runner;
std::cout << "\n========================================" << std::endl;
std::cout << " LSP Provider Test Suite" << std::endl;
std::cout << "========================================\n"
<< std::endl;
std::cout << "Registering tests..." << std::endl;
std::cout << " - Completion tests" << std::endl;
lsp::test::provider::CompletionTests::Register(runner);
std::cout << " - Definition tests" << std::endl;
lsp::test::provider::DefinitionTests::Register(runner);
std::cout << " - JSON flow tests" << std::endl;
lsp::test::provider::JsonFlowTests::Register(runner);
std::cout << " - Other provider tests" << std::endl;
lsp::test::provider::ProviderMiscTests::Register(runner);
std::cout << " - Provider surface tests" << std::endl;
lsp::test::provider::ProviderSurfaceTests::Register(runner);
runner.runAllTests();
return runner.getFailedCount();
}