internal OperatingSystem(PlatformID platform, Version version, string? servicePack)
{
- if (platform < PlatformID.Win32S || platform > PlatformID.MacOSX)
+ if (platform < PlatformID.Win32S || platform > PlatformID.Other)
{
throw new ArgumentOutOfRangeException(nameof(platform), platform, SR.Format(SR.Arg_EnumIllegalVal, platform));
}
case PlatformID.Unix: os = "Unix "; break;
case PlatformID.Xbox: os = "Xbox "; break;
case PlatformID.MacOSX: os = "Mac OS X "; break;
+ case PlatformID.Other: os = "Other"; break;
default:
Debug.Fail($"Unknown platform {_platform}");
os = "<unknown> "; break;
public void OSVersion_MatchesPlatform()
{
PlatformID id = Environment.OSVersion.Platform;
- Assert.Equal(
- RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? PlatformID.Win32NT : PlatformID.Unix,
- id);
+ PlatformID expected = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? PlatformID.Win32NT : RuntimeInformation.IsOSPlatform(OSPlatform.Browser) ? PlatformID.Other : PlatformID.Unix;
+ Assert.Equal(expected, id);
}
[Fact]
Assert.True(version.Major > 0);
Assert.Contains(version.ToString(2), versionString);
- Assert.Contains(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "Windows" : "Unix", versionString);
+
+ string expectedOS = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "Windows" : RuntimeInformation.IsOSPlatform(OSPlatform.Browser) ? "Other" : "Unix";
+ Assert.Contains(expectedOS, versionString);
}
// On non-OSX Unix, we must parse the version from uname -r
[Theory]
- [PlatformSpecific(TestPlatforms.AnyUnix & ~TestPlatforms.OSX)]
+ [PlatformSpecific(TestPlatforms.AnyUnix & ~TestPlatforms.OSX & ~TestPlatforms.Browser)]
[InlineData("2.6.19-1.2895.fc6", 2, 6, 19, 1)]
[InlineData("xxx1yyy2zzz3aaa4bbb", 1, 2, 3, 4)]
[InlineData("2147483647.2147483647.2147483647.2147483647", int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue)]
public static class OperatingSystemTests
{
[Theory]
+ [InlineData(PlatformID.Other, "1.0.0.0")]
[InlineData(PlatformID.MacOSX, "1.2")]
[InlineData(PlatformID.Unix, "1.2.3")]
[InlineData(PlatformID.Win32NT, "1.2.3.4")]