Files
runner/src/Test/L0/Worker/SetEnvFileCommandL0.cs
T

178 lines
5.3 KiB
C#
Raw Normal View History

2023-06-02 21:47:59 +02:00
using System;
2020-08-29 23:18:35 -04:00
using System.Collections.Generic;
using System.Linq;
using GitHub.Runner.Worker;
using Xunit;
namespace GitHub.Runner.Common.Tests.Worker
{
public sealed class SetEnvFileCommandL0 : FileCommandTestBase<SetEnvFileCommand>
2020-08-29 23:18:35 -04:00
{
protected override IDictionary<string, string> PostSetup()
{
return _executionContext.Object.Global.EnvironmentVariables;
}
2020-08-29 23:18:35 -04:00
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_DirectoryNotFound()
{
base.TestDirectoryNotFound();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_NotFound()
{
base.TestNotFound();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_EmptyFile()
{
base.TestEmptyFile();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Simple()
{
base.TestSimple();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Simple_SkipEmptyLines()
{
base.TestSimple_SkipEmptyLines();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Simple_EmptyValue()
{
base.TestSimple_EmptyValue();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Simple_MultipleValues()
{
base.TestSimple_MultipleValues();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Simple_SpecialCharacters()
{
base.TestSimple_SpecialCharacters();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc()
{
base.TestHeredoc();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_EmptyValue()
{
base.TestHeredoc_EmptyValue();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_SkipEmptyLines()
{
base.TestHeredoc_SkipEmptyLines();
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_EdgeCases()
{
base.TestHeredoc_EdgeCases();
}
[Theory]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
// All of the following are not only valid, but quite plausible end markers.
// Most are derived straight from the example at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
#pragma warning disable format
[InlineData("=EOF")][InlineData("==EOF")][InlineData("EO=F")][InlineData("EO==F")][InlineData("EOF=")][InlineData("EOF==")]
[InlineData("<EOF")][InlineData("<<EOF")][InlineData("EO<F")][InlineData("EO<<F")][InlineData("EOF<")][InlineData("EOF<<")]
[InlineData("+EOF")][InlineData("++EOF")][InlineData("EO+F")][InlineData("EO++F")][InlineData("EOF+")][InlineData("EOF++")]
[InlineData("/EOF")][InlineData("//EOF")][InlineData("EO/F")][InlineData("EO//F")][InlineData("EOF/")][InlineData("EOF//")]
#pragma warning restore format
[InlineData("<<//++==")]
[InlineData("contrivedBase64==")]
[InlineData("khkIhPxsVA==")]
[InlineData("D+Y8zE/EOw==")]
[InlineData("wuOWG4S6FQ==")]
[InlineData("7wigCJ//iw==")]
[InlineData("uifTuYTs8K4=")]
[InlineData("M7N2ITg/04c=")]
[InlineData("Xhh+qp+Y6iM=")]
[InlineData("5tdblQajc/b+EGBZXo0w")]
[InlineData("jk/UMjIx/N0eVcQYOUfw")]
[InlineData("/n5lsw73Cwl35Hfuscdz")]
[InlineData("ZvnAEW+9O0tXp3Fmb3Oh")]
public void SetEnvFileCommand_Heredoc_EndMarkerVariations(string validEndMarker)
{
base.TestHeredoc_EndMarkerVariations(validEndMarker);
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_EqualBeforeMultilineIndicator()
2020-08-29 23:18:35 -04:00
{
base.TestHeredoc_EqualBeforeMultilineIndicator();
2020-08-29 23:18:35 -04:00
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_MissingNewLine()
{
base.TestHeredoc_MissingNewLine();
}
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_MissingNewLineMultipleLines()
{
base.TestHeredoc_MissingNewLineMultipleLines();
}
2020-08-29 23:18:35 -04:00
#if OS_WINDOWS
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void SetEnvFileCommand_Heredoc_PreservesNewline()
{
base.TestHeredoc_PreservesNewline();
2020-08-29 23:18:35 -04:00
}
#endif
}
}