public void TestBasicAddIndependentFragments() { var fragment1 = CreatePipGraphFragment(nameof(TestBasicAddIndependentFragments) + "1"); var processBuilder1 = fragment1.GetProcessBuilder(); var argumentsBuilder1 = new ArgumentsBuilder(processBuilder1); AbsolutePath outputPathToVerify1; argumentsBuilder1 .AddInputOption("input", fragment1.CreateSourceFile("f")) .AddOutputOption("output", outputPathToVerify1 = fragment1.CreateOutputFile("g").Path); (Process process1, ProcessOutputs _) = fragment1.ScheduleProcessBuilder(processBuilder1); // Fragment2 is independent of fragment1. var fragment2 = CreatePipGraphFragment(nameof(TestBasicAddIndependentFragments) + "2"); var processBuilder2 = fragment2.GetProcessBuilder(); var argumentsBuilder2 = new ArgumentsBuilder(processBuilder2); AbsolutePath outputPathToVerify2; argumentsBuilder2 .AddInputOption("input", fragment2.CreateSourceFile("i")) .AddOutputOption("output", outputPathToVerify2 = fragment2.CreateOutputFile("h").Path); (Process process2, ProcessOutputs _) = fragment2.ScheduleProcessBuilder(processBuilder2); var graph = SerializeDeserializeFragmentsInParallel(fragment1, fragment2); VerifyGraphSuccessfullyConstructed(graph); VerifyProducerExists(graph, fragment1, outputPathToVerify1); VerifyProducerExists(graph, fragment2, outputPathToVerify2); VerifyMatchingArguments(graph, fragment1, process1); VerifyMatchingArguments(graph, fragment2, process2); }
public void TestBasicDependencyBetweenFragments() { var fragment1 = CreatePipGraphFragment(nameof(TestBasicDependencyBetweenFragments) + "1"); var processBuilder1 = fragment1.GetProcessBuilder(); var argumentsBuilder1 = new ArgumentsBuilder(processBuilder1); AbsolutePath outputPathToVerify1; argumentsBuilder1 .AddInputOption("input", fragment1.CreateSourceFile("f")) .AddOutputOption("output", outputPathToVerify1 = fragment1.CreateOutputFile("g").Path); (Process process1, ProcessOutputs _) = fragment1.ScheduleProcessBuilder(processBuilder1); // Fragment2 depends on fragment1 on output file g produced by fragment1. var fragment2 = CreatePipGraphFragment(nameof(TestBasicDependencyBetweenFragments) + "2"); var processBuilder2 = fragment2.GetProcessBuilder(); var argumentsBuilder2 = new ArgumentsBuilder(processBuilder2); AbsolutePath outputPathToVerify2; argumentsBuilder2 .AddInputOption("input", fragment2.CreateOutputFile("g")) // fragment2 depends on g without any producer within the fragment. .AddOutputOption("output", outputPathToVerify2 = fragment2.CreateOutputFile("h").Path); (Process process2, ProcessOutputs _) = fragment2.ScheduleProcessBuilder(processBuilder2); var graph = SerializeDeserializeFragmentsSynchronously(fragment1, fragment2); VerifyGraphSuccessfullyConstructed(graph); VerifyProducerExists(graph, fragment1, outputPathToVerify1); VerifyProducerExists(graph, fragment2, outputPathToVerify2); VerifyMatchingArguments(graph, fragment1, process1); VerifyMatchingArguments(graph, fragment2, process2); }
public void TestAddingIpcPip() { var fragment = CreatePipGraphFragment(nameof(TestAddingIpcPip)); (IIpcMoniker moniker, PipId servicePipId) = CreateService(fragment); var processBuilder = fragment.GetProcessBuilder(); var argumentsBuilder = new ArgumentsBuilder(processBuilder); AbsolutePath outputPathToVerify; argumentsBuilder .AddInputOption("input", fragment.CreateSourceFile("f")) .AddOutputOption("output", outputPathToVerify = fragment.CreateOutputFile("g").Path); (Process process, ProcessOutputs _) = fragment.ScheduleProcessBuilder(processBuilder); var addFileProcessBuilder = fragment.GetIpcProcessBuilder(); new ArgumentsBuilder(addFileProcessBuilder) .AddOption("--command", "addFile") .AddIpcMonikerOption("--ipcMoniker", moniker) .AddInputOption("--file", fragment.CreateOutputFile("g")); fragment.ScheduleIpcPip( moniker, servicePipId, addFileProcessBuilder, fragment.CreateOutputFile("add"), false); var graph = SerializeDeserializeFragmentsSynchronously(fragment); VerifyGraphSuccessfullyConstructed(graph); }
public void TestBasicCreation() { var fragment = CreatePipGraphFragment(nameof(TestBasicCreation)); var processBuilder = fragment.GetProcessBuilder(); var argumentsBuilder = new ArgumentsBuilder(processBuilder); AbsolutePath outputPathToVerify; argumentsBuilder .AddInputOption("input", fragment.CreateSourceFile("f")) .AddOutputOption("output", outputPathToVerify = fragment.CreateOutputFile("g").Path); (Process process, ProcessOutputs _) = fragment.ScheduleProcessBuilder(processBuilder); var graph = SerializeDeserializeFragmentsSynchronously(fragment); VerifyGraphSuccessfullyConstructed(graph); VerifyProducerExists(graph, fragment, outputPathToVerify); VerifyMatchingArguments(graph, fragment, process); }