mirror of
https://github.com/github/codeql.git
synced 2026-05-05 13:45:19 +02:00
C#: Introduce extractor mode to identify DBs created with codeql test run
This commit is contained in:
@@ -8,7 +8,7 @@ namespace Semmle.Extraction
|
||||
/// </summary>
|
||||
public abstract class Extractor
|
||||
{
|
||||
public abstract bool Standalone { get; }
|
||||
public abstract ExtractorMode Mode { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new extractor instance for one compilation unit.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
|
||||
namespace Semmle.Extraction
|
||||
{
|
||||
/// <summary>
|
||||
/// The mode in which a file is extracted.
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum ExtractorMode
|
||||
{
|
||||
None = 0,
|
||||
Standalone = 1,
|
||||
Pdb = 2,
|
||||
QlTest = 4,
|
||||
}
|
||||
}
|
||||
@@ -4,15 +4,19 @@ namespace Semmle.Extraction
|
||||
{
|
||||
public class StandaloneExtractor : Extractor
|
||||
{
|
||||
public override bool Standalone => true;
|
||||
private readonly ExtractorMode mode;
|
||||
public override ExtractorMode Mode => mode;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new extractor instance for one compilation unit.
|
||||
/// </summary>
|
||||
/// <param name="logger">The object used for logging.</param>
|
||||
/// <param name="pathTransformer">The object used for path transformations.</param>
|
||||
public StandaloneExtractor(ILogger logger, PathTransformer pathTransformer) : base(logger, pathTransformer)
|
||||
public StandaloneExtractor(ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(logger, pathTransformer)
|
||||
{
|
||||
mode = ExtractorMode.Standalone;
|
||||
if (options.QlTest)
|
||||
mode |= ExtractorMode.QlTest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ namespace Semmle.Extraction
|
||||
{
|
||||
public class TracingExtractor : Extractor
|
||||
{
|
||||
public override bool Standalone => false;
|
||||
|
||||
private readonly ExtractorMode mode;
|
||||
public override ExtractorMode Mode => mode;
|
||||
public string OutputPath { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -14,9 +14,12 @@ namespace Semmle.Extraction
|
||||
/// <param name="outputPath">The name of the output DLL/EXE, or null if not specified (standalone extraction).</param>
|
||||
/// <param name="logger">The object used for logging.</param>
|
||||
/// <param name="pathTransformer">The object used for path transformations.</param>
|
||||
public TracingExtractor(string outputPath, ILogger logger, PathTransformer pathTransformer) : base(logger, pathTransformer)
|
||||
public TracingExtractor(string outputPath, ILogger logger, PathTransformer pathTransformer, CommonOptions options) : base(logger, pathTransformer)
|
||||
{
|
||||
OutputPath = outputPath;
|
||||
mode = ExtractorMode.None;
|
||||
if (options.QlTest)
|
||||
mode |= ExtractorMode.QlTest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user