protected void Run(CodeGenerationTarget target, string outputPath, string apiDescriptionFile, string expectedPath, string[] additionalSupportPaths = null) { Cleanup(outputPath); Options.CodeGenerationTarget = target; Options.ApiDescriptionFile = apiDescriptionFile; Options.ManagedCallableWrapperSourceOutputDirectory = outputPath; if (additionalSupportPaths != null) { AdditionalSourceDirectories.AddRange(additionalSupportPaths); } Execute(); CompareOutputs(expectedPath, outputPath); }
protected void Run(CodeGenerationTarget target, string outputPath, string apiDescriptionFile, string expectedPath, string[] additionalSupportPaths = null, string enumFieldsMapFile = null, string enumMethodMapFile = null) { Cleanup(outputPath); AdditionalSourceDirectories.Clear(); Options.CodeGenerationTarget = target; Options.ApiDescriptionFile = FullPath(apiDescriptionFile); Options.ManagedCallableWrapperSourceOutputDirectory = FullPath(outputPath); if (!string.IsNullOrWhiteSpace(enumFieldsMapFile)) { Options.EnumFieldsMapFile = FullPath(enumFieldsMapFile); } if (!string.IsNullOrWhiteSpace(enumMethodMapFile)) { Options.EnumMethodsMapFile = FullPath(enumMethodMapFile); } var adjuster_output = Path.Combine(Path.GetTempPath(), "generator-tests"); Directory.CreateDirectory(adjuster_output); // Put this in a temp folder so it doesn't end up in "expected", which breaks the compare. Options.ApiXmlAdjusterOutput = Path.Combine(adjuster_output, Path.GetFileName(apiDescriptionFile) + ".adjusted"); if (additionalSupportPaths != null) { AdditionalSourceDirectories.AddRange(additionalSupportPaths.Select(p => FullPath(p))); } Execute(); // Try to clean up after ourselves. try { Directory.Delete(adjuster_output, true); } catch { } CompareOutputs(expectedPath, outputPath); }