MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / runBuiltProgram

Function runBuiltProgram

Tests/SCBuildTest/SCBuildFixtureTest.cpp:1793–1851  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1791 return Result(true);
1792}
1793
1794static Result writeSelfHostingBuildFixture(FileSystem& fs, StringView projectRoot)
1795{
1796 SC_TRY(fs.makeDirectoryRecursive(projectRoot));
1797
1798 String buildDefinitionPath = StringEncoding::Utf8;
1799 SC_TRY(Path::join(buildDefinitionPath, {projectRoot, "SC-build.cpp"}));
1800
1801 String buildDefinitionContents = StringEncoding::Utf8;
1802 SC_TRY(StringBuilder::format(
1803 buildDefinitionContents,
1804 "#if defined(SC_BUILD)\n"
1805 "#include \"SaneCppBuild.h\"\n"
1806 "\n"
1807 "namespace SC\n"
1808 "{{\n"
1809 "namespace Build\n"
1810 "{{\n"
1811 "Result configure(Definition& definition, const Parameters& parameters)\n"
1812 "{{\n"
1813 " Project project = {{\"{}\", TargetType::ConsoleExecutable}};\n"
1814 " SC_TRY(project.setRootDirectory(parameters.directories.projectDirectory.view()));\n"
1815 " SC_TRY(project.addPresetConfiguration(Configuration::Preset::Debug, parameters));\n"
1816 " SC_TRY(project.addPresetConfiguration(Configuration::Preset::Release, parameters));\n"
1817 " SC_TRY(project.addFile(\"SC-build.cpp\"));\n"
1818 " return definition.addProject(move(project));\n"
1819 "}}\n"
1820 "}} // namespace Build\n"
1821 "}} // namespace SC\n"
1822 "#else\n"
1823 "#include <stdio.h>\n"
1824 "\n"
1825 "int main()\n"
1826 "{{\n"
1827 " puts(\"self-hosting-build-file\");\n"
1828 " return 0;\n"
1829 "}}\n"
1830 "#endif\n",
1831 SelfHostingFixtureProjectName));
1832
1833 SC_TRY(fs.writeString(buildDefinitionPath.view(), buildDefinitionContents.view()));
1834 return Result(true);
1835}
1836
1837static Result writeStaticLibraryFixture(FileSystem& fs, StringView sourceRoot)
1838{
1839 SC_TRY(fs.makeDirectoryRecursive(sourceRoot));
1840
1841 String sourcePath = StringEncoding::Utf8;
1842 SC_TRY(Path::join(sourcePath, {sourceRoot, "library.cpp"}));
1843 SC_TRY(fs.writeString(sourcePath.view(), "int fixture_library_value()\n"
1844 "{\n"
1845 " return 42;\n"
1846 "}\n"));
1847 return Result(true);
1848}
1849
1850static Result writeStaticLibraryConsumerFixture(FileSystem& fs, StringView sourceRoot)

Callers 1

SCBuildFixtureTestMethod · 0.85

Calls 15

normalizeFunction · 0.85
dirnameFunction · 0.85
fromNullTerminatedFunction · 0.85
basenameFunction · 0.85
createFunction · 0.85
existsAndIsLinkMethod · 0.80
existsAndIsDirectoryMethod · 0.80
createSymbolicLinkMethod · 0.80
setWorkingDirectoryMethod · 0.80
formatFunction · 0.50
joinFunction · 0.50
ResultClass · 0.50

Tested by

no test coverage detected