mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-31 00:50:45 +01:00
Fix test suite
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -257,7 +257,7 @@ namespace Tgstation.Server.Host.Components.Byond
|
||||
var versionKey = VersionKey(versionToUse, true);
|
||||
var binPathForVersion = ioManager.ConcatPath(versionKey, BinPath);
|
||||
|
||||
logger.LogTrace("Creating ByondExecutableLock lock for version {0}", requiredVersion);
|
||||
logger.LogTrace("Creating ByondExecutableLock lock for version {0}", versionToUse);
|
||||
return new ByondExecutableLock(
|
||||
ioManager,
|
||||
semaphore,
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Mono.Unix;
|
||||
using Mono.Unix.Native;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Tgstation.Server.Api.Models;
|
||||
@@ -79,29 +76,8 @@ namespace Tgstation.Server.Host.System
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<string> GetExecutingUsername(global::System.Diagnostics.Process process, CancellationToken cancellationToken)
|
||||
{
|
||||
if (process == null)
|
||||
throw new ArgumentNullException(nameof(process));
|
||||
|
||||
// Need to read /proc/[pid]/status
|
||||
// http://man7.org/linux/man-pages/man5/proc.5.html
|
||||
// https://unix.stackexchange.com/questions/102676/why-is-uid-information-not-in-proc-x-stat
|
||||
var pid = process.Id;
|
||||
var statusFile = ioManager.ConcatPath("/proc", pid.ToString(CultureInfo.InvariantCulture), "status");
|
||||
var statusBytes = await ioManager.ReadAllBytes(statusFile, cancellationToken).ConfigureAwait(false);
|
||||
var statusText = Encoding.UTF8.GetString(statusBytes);
|
||||
var splits = statusText.Split('\n', StringSplitOptions.RemoveEmptyEntries);
|
||||
var entry = splits.FirstOrDefault(x => x.Trim().StartsWith("Uid:", StringComparison.Ordinal));
|
||||
if (entry == default)
|
||||
return "UNKNOWN";
|
||||
|
||||
return entry
|
||||
.Substring(4)
|
||||
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
|
||||
.FirstOrDefault(x => !String.IsNullOrWhiteSpace(x))
|
||||
?? "UNPARSABLE";
|
||||
}
|
||||
public Task<string> GetExecutingUsername(global::System.Diagnostics.Process process, CancellationToken cancellationToken)
|
||||
=> throw new NotSupportedException();
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task CreateDump(global::System.Diagnostics.Process process, string outputFile, CancellationToken cancellationToken)
|
||||
|
||||
Reference in New Issue
Block a user