diff --git a/server/src/printers/TestsPrinter.cpp b/server/src/printers/TestsPrinter.cpp index f959156c5..026012e06 100644 --- a/server/src/printers/TestsPrinter.cpp +++ b/server/src/printers/TestsPrinter.cpp @@ -267,7 +267,7 @@ void TestsPrinter::genVerboseTestCase(const Tests::MethodDescription &methodDesc void TestsPrinter::initializeFiles(const Tests::MethodDescription &methodDescription, const Tests::MethodTestCase &testCase) { if (!testCase.filesValues.has_value()) { - LOG_S(WARNING) << "There are not symbolic files in the test."; + LOG_S(INFO) << "There are not symbolic files in the test."; return; } fs::path pathToSourceFile = @@ -292,7 +292,6 @@ void TestsPrinter::initializeFiles(const Tests::MethodDescription &methodDescrip void TestsPrinter::openFiles(const Tests::MethodDescription &methodDescription, const Tests::MethodTestCase &testCase) { if (!testCase.filesValues.has_value()) { - LOG_S(WARNING) << "There are not symbolic files in the test."; return; } char fileName = 'A'; diff --git a/server/test/framework/Server_Tests.cpp b/server/test/framework/Server_Tests.cpp index ac7db87e1..f4b3355df 100644 --- a/server/test/framework/Server_Tests.cpp +++ b/server/test/framework/Server_Tests.cpp @@ -1475,7 +1475,7 @@ namespace { testUtils::checkStatuses(resultMap, tests); - StatusCountMap expectedStatusCountMap{{testsgen::TEST_PASSED, 8}}; + StatusCountMap expectedStatusCountMap{{testsgen::TEST_PASSED, 7}}; testUtils::checkStatusesCount(resultMap, tests, expectedStatusCountMap); } diff --git a/server/test/framework/Syntax_Tests.cpp b/server/test/framework/Syntax_Tests.cpp index ce526a646..d26617e6d 100644 --- a/server/test/framework/Syntax_Tests.cpp +++ b/server/test/framework/Syntax_Tests.cpp @@ -3223,6 +3223,44 @@ namespace { ); } + TEST_F(Syntax_Test, run_tests_for_input_output_c) { + auto request = testUtils::createFileRequest(projectName, suitePath, buildDirRelativePath, + srcPaths, input_output_c, + GrpcUtils::UTBOT_AUTO_TARGET_PATH, true, false); + auto testGen = FileTestGen(*request, writer.get(), TESTMODE); + testGen.setTargetForSource(input_output_c); + Status status = Server::TestsGenServiceImpl::ProcessBaseTestRequest(testGen, writer.get()); + ASSERT_TRUE(status.ok()) << status.error_message(); + EXPECT_EQ(testUtils::getNumberOfTests(testGen.tests), 63); // 61 regression tests and 2 error + + fs::path testsDirPath = getTestFilePath("tests"); + + fs::path input_output_test_cpp = Paths::sourcePathToTestPath( + utbot::ProjectContext(projectName, suitePath, testsDirPath, buildDirRelativePath), + input_output_c); + auto testFilter = GrpcUtils::createTestFilterForFile(input_output_test_cpp); + auto runRequest = testUtils::createCoverageAndResultsRequest( + projectName, suitePath, testsDirPath, buildDirRelativePath, std::move(testFilter)); + + static auto coverageAndResultsWriter = + std::make_unique(nullptr); + CoverageAndResultsGenerator coverageGenerator{ runRequest.get(), + coverageAndResultsWriter.get() }; + utbot::SettingsContext settingsContext{ + true, false, 45, 30, false, false, ErrorMode::FAILING + }; + coverageGenerator.generate(false, settingsContext); + + EXPECT_FALSE(coverageGenerator.hasExceptions()); + ASSERT_TRUE(coverageGenerator.getCoverageMap().empty()); + + auto resultMap = coverageGenerator.getTestResultMap(); + auto tests = coverageGenerator.getTestsToLaunch(); + + StatusCountMap expectedStatusCountMap{ {testsgen::TEST_PASSED, 61} }; + testUtils::checkStatusesCount(resultMap, tests, expectedStatusCountMap); + } + TEST_F(Syntax_Test, file_fgetc) { auto [testGen, status] = createTestForFunction(file_c, 5); @@ -3377,6 +3415,44 @@ namespace { ); } + TEST_F(Syntax_Test, run_tests_for_file_c) { + auto request = + testUtils::createFileRequest(projectName, suitePath, buildDirRelativePath, srcPaths, + file_c, GrpcUtils::UTBOT_AUTO_TARGET_PATH, true, false); + auto testGen = FileTestGen(*request, writer.get(), TESTMODE); + testGen.setTargetForSource(file_c); + Status status = Server::TestsGenServiceImpl::ProcessBaseTestRequest(testGen, writer.get()); + ASSERT_TRUE(status.ok()) << status.error_message(); + EXPECT_EQ(testUtils::getNumberOfTests(testGen.tests), 33); + + fs::path testsDirPath = getTestFilePath("tests"); + + fs::path file_test_cpp = Paths::sourcePathToTestPath( + utbot::ProjectContext(projectName, suitePath, testsDirPath, buildDirRelativePath), + file_c); + auto testFilter = GrpcUtils::createTestFilterForFile(file_test_cpp); + auto runRequest = testUtils::createCoverageAndResultsRequest( + projectName, suitePath, testsDirPath, buildDirRelativePath, std::move(testFilter)); + + static auto coverageAndResultsWriter = + std::make_unique(nullptr); + CoverageAndResultsGenerator coverageGenerator{ runRequest.get(), + coverageAndResultsWriter.get() }; + utbot::SettingsContext settingsContext{ + true, false, 45, 0, false, false, ErrorMode::FAILING + }; + coverageGenerator.generate(false, settingsContext); + + EXPECT_FALSE(coverageGenerator.hasExceptions()); + ASSERT_TRUE(coverageGenerator.getCoverageMap().empty()); + + auto resultMap = coverageGenerator.getTestResultMap(); + auto tests = coverageGenerator.getTestsToLaunch(); + + StatusCountMap expectedStatusCountMap{ { testsgen::TEST_PASSED, 33 } }; + testUtils::checkStatusesCount(resultMap, tests, expectedStatusCountMap); + } + template bool checkBitfieldFit(const std::shared_ptr &fieldView, size_t size) { T val = StringUtils::stot(fieldView->getEntryValue(nullptr)); diff --git a/submodules/klee b/submodules/klee index ece7b097c..53020a3b2 160000 --- a/submodules/klee +++ b/submodules/klee @@ -1 +1 @@ -Subproject commit ece7b097c1c584366ebb5fc239bbee94e8dae184 +Subproject commit 53020a3b273f13cf632f2649109c4d87da48844e