Unterschiedliches Verhalten beim Auslesen eines Prozesses zwischen .net7 und .net8

  • C#
  • .NET 7–8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Unterschiedliches Verhalten beim Auslesen eines Prozesses zwischen .net7 und .net8

    Hallo zusammen,

    Ich habe aktuell ein Problem, wo ich schon einige Zeit dran sitze, weil es sich mir nicht erklären lässt, warum folgender Code sich zwischen .net7 und .net8 so unterschiedlich verhält.

    C#-Quellcode

    1. /// <summary>
    2. /// Simple method to find and parse the compiler's system search paths.
    3. /// </summary>
    4. public void FindIncludePaths()
    5. {
    6. if (s_searchPaths.Count > 0) { return; }
    7. using (var proc = Process.Start(new ProcessStartInfo {
    8. Arguments = "-E -Wp,-v -",
    9. FileName = "gcc",
    10. RedirectStandardError = true,
    11. RedirectStandardInput = true,
    12. RedirectStandardOutput = true
    13. })) {
    14. // Write empty message to gcc so it can continue
    15. proc.StandardInput.WriteLine();
    16. proc.StandardInput.Flush();
    17. const string searchString = "#include <...> search starts here:";
    18. const string endOfSearchString = "End of search list.";
    19. // Now fetch GCC's output for parsing.
    20. var hasFoundSysIncludes = false;
    21. while (proc.StandardError.Peek() != -1) {
    22. var line = proc.StandardError.ReadLine();
    23. if (line is null) { break; }
    24. Console.WriteLine($"Got input from compiler: { line }");
    25. if (!hasFoundSysIncludes) {
    26. hasFoundSysIncludes = line.Equals(searchString, StringComparison.InvariantCultureIgnoreCase);
    27. } else {
    28. if (line.Equals(endOfSearchString, StringComparison.InvariantCultureIgnoreCase)) { break; }
    29. s_searchPaths.Add(line.Trim());
    30. }
    31. }
    32. }
    33. s_searchPaths.ForEach(x => Console.WriteLine($"==========>> Found compiler search path { x }"));
    34. if (s_searchPaths.Count == 0) { Console.Error.WriteLine("==========>> !! NO COMPILER SEARCH PATHS FOUND! !!"); }
    35. }


    Der Code enthält einige Debugausgaben, um das Problem nachvollziehen zu können.

    Aufgabe des Codes ist es, den GNU C compiler (gcc) aufzurufen, mit einem leeren Input, damit folgender Output kommt:

    C-Quellcode

    1. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    2. ➜ echo "" | gcc -E -Wp,-v - >/dev/null
    3. ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    4. ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    5. ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    6. ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    7. #include "..." search starts here:
    8. #include <...> search starts here:
    9. /usr/lib/gcc/x86_64-linux-gnu/13/include
    10. /usr/local/include
    11. /usr/include/x86_64-linux-gnu
    12. /usr/include
    13. End of search list.


    Interessant sind für mich dabei ausschließlich die Pfade zwischen #include <...> und End of search list.

    Ich baue das Projekt für .net7 und .net8 (.net6 und älter habe ich nicht installiert, kann es deshalb auch nicht testen).

    Unter .net8 habe ich das erwartete Verhalten:

    Quellcode

    1. Starting test execution, please wait...
    2. A total of 1 test files matched the specified pattern.
    3. /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests/bin/Debug/net8.0/Tmds.LibC.Tests.dll
    4. [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.0 (64-bit .NET 8.0.0)
    5. [xUnit.net 00:00:00.25] Discovering: Tmds.LibC.Tests
    6. [xUnit.net 00:00:00.28] Discovered: Tmds.LibC.Tests
    7. [xUnit.net 00:00:00.28] Starting: Tmds.LibC.Tests
    8. Test Environment: ubuntu-23.10
    9. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    10. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    11. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    12. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    13. Got input from compiler: #include "..." search starts here:
    14. Got input from compiler: #include <...> search starts here:
    15. Got input from compiler: /usr/lib/gcc/x86_64-linux-gnu/13/include
    16. Got input from compiler: /usr/local/include
    17. Got input from compiler: /usr/include/x86_64-linux-gnu
    18. Got input from compiler: /usr/include
    19. Got input from compiler: End of search list.
    20. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    21. ==========>> Found compiler search path /usr/local/include
    22. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    23. ==========>> Found compiler search path /usr/include


    Unter .net7 bekomme ich allerdings einen völlig anderen Output, trotz dass es nur eine gcc Binary auf meinem System gibt (bzw. der Symlink ist nur einmal im PATH.)

    Quellcode

    1. Starting test execution, please wait...
    2. A total of 1 test files matched the specified pattern.
    3. /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests/bin/Debug/net7.0/Tmds.LibC.Tests.dll
    4. [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.0 (64-bit .NET 7.0.14)
    5. [xUnit.net 00:00:00.27] Discovering: Tmds.LibC.Tests
    6. [xUnit.net 00:00:00.29] Discovered: Tmds.LibC.Tests
    7. [xUnit.net 00:00:00.30] Starting: Tmds.LibC.Tests
    8. Test Environment: ubuntu-23.10
    9. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    10. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    11. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    12. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    13. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    14. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    15. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    16. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    17. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    18. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    19. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    20. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    21. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    22. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    23. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    24. Got input from compiler: #include "..." search starts here:
    25. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    26. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    27. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    28. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    29. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    30. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    31. Got input from compiler: #include "..." search starts here:
    32. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    33. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    34. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    35. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    36. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    37. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    38. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    39. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    40. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    41. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    42. Got input from compiler: ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    43. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
    44. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
    45. Got input from compiler: ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
    46. Got input from compiler: #include "..." search starts here:
    47. Got input from compiler: #include <...> search starts here:
    48. Got input from compiler: /usr/lib/gcc/x86_64-linux-gnu/13/include
    49. Got input from compiler: /usr/local/include
    50. Got input from compiler: /usr/include/x86_64-linux-gnu
    51. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    52. ==========>> Found compiler search path /usr/local/include
    53. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu


    Anbei noch alle Instanzen von "gcc" auf meinem System (nicht dass ich da was gravierendes übersehe):

    Quellcode

    1. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    2. ➜ which gcc
    3. /usr/bin/gcc
    4. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    5. ➜ find / -not \( -path "/mnt" -type d -prune \) -name "gcc" 2>/dev/null
    6. /home/simon/source/linux/scripts/dummy-tools/gcc
    7. /home/simon/source/WSL2-Linux-Kernel/scripts/dummy-tools/gcc
    8. /usr/include/boost/mpl/aux_/preprocessed/gcc
    9. /usr/libexec/gcc
    10. /usr/lib/gcc
    11. /usr/share/doc/gcc-13-base/gcc
    12. /usr/share/doc/gcc
    13. /usr/share/doc/gcc-11-base/gcc
    14. /usr/share/doc/gcc-12-mips-linux-gnu-base/gcc
    15. /usr/share/doc/gcc-12-base/gcc
    16. /usr/share/doc/gcc-13-powerpc64-linux-gnu-base/gcc
    17. /usr/share/doc/gcc-13-arm-linux-gnueabihf-base/gcc
    18. /usr/share/doc/gcc-13-aarch64-linux-gnu-base/gcc
    19. /usr/share/doc/gcc-9-base/gcc
    20. /usr/share/doc/gcc-13-i686-linux-gnu-base/gcc
    21. /usr/share/doc/gcc-13-powerpc-linux-gnu-base/gcc
    22. /usr/share/bash-completion/completions/gcc
    23. /usr/share/gcc
    24. /usr/bin/gcc
    25. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    26. ➜ ls -lah $(which gcc)
    27. lrwxrwxrwx 1 root root 6 Aug 11 20:28 /usr/bin/gcc -> gcc-13
    28. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    29. ➜ ls -lah $(which gcc-13)
    30. lrwxrwxrwx 1 root root 23 Sep 24 10:44 /usr/bin/gcc-13 -> x86_64-linux-gnu-gcc-13
    31. simon@ODIN: /home/simon/source/Tmds.LibC/test/Tmds.LibC.Tests git:(master) ✗
    32. ➜ ls -lah $(which x86_64-linux-gnu-gcc-13)
    33. -rwxr-xr-x 1 root root 995K Sep 24 10:44 /usr/bin/x86_64-linux-gnu-gcc-13


    Ich danke euch schon mal für hilfreiche Tipps und wünsche euch auch besinnliche Feiertage :)

    EDIT: Falls ihr das Projekt selber bauen wollt:
    Link zum Repo: github.com/Procyon-Systems/Tmd…-macros-and-improve-tests

    Mein Testsystem: Ubuntu 23.10.
    Dependencies: gcc und die ganzen Entwicklerheader.

    EDIT2:
    Nachdem ich nun den absoluten Pfad eingegeben habe /usr/bin/gcc habe ich immer noch ein ähnliches Verhalten, allerdings ist .net7 da nicht wirklich zuverlässig. Mal kommen 2 Pfade, mal 3 und mal 4.

    Spoiler anzeigen

    Run 1:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    2. ==========>> Found compiler search path /usr/local/include
    3. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    4. ==========>> Found compiler search path /usr/include


    Run2:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include


    Run3:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    2. ==========>> Found compiler search path /usr/local/include
    3. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    4. ==========>> Found compiler search path /usr/include


    Run4:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include


    Run5:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    2. ==========>> Found compiler search path /usr/local/include
    3. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu


    Run6:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    2. ==========>> Found compiler search path /usr/local/include
    3. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    4. ==========>> Found compiler search path /usr/include


    Run7:

    Quellcode

    1. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/13/include
    2. ==========>> Found compiler search path /usr/local/include
    3. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    4. ==========>> Found compiler search path /usr/include



    Was ich bei .net7 immer noch verwirrend finde, ist dass selten bis gar nicht die Ausgabe Got input from compiler: End of search list. kommt :/.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „siycah“ ()

    Hast du mal geschaut wie oft dein gcc ausgeführt wird?
    Man könnte bei dem Output meinen, das es mehrfach gestartet wird, wobei ich mir das nicht erklären kann - sofern du den selben Code ausführst.

    Ich hab das jetzt mal bei mir unter Debian getestet.
    Code

    C#-Quellcode

    1. using System.Diagnostics;
    2. const string searchString = "#include <...> search starts here:";
    3. const string endOfSearchString = "End of search list.";
    4. var s_searchPaths = new List<string>();
    5. var psi = new ProcessStartInfo() {
    6. Arguments = "-E -Wp,-v -",
    7. FileName = "gcc",
    8. RedirectStandardError = true,
    9. RedirectStandardInput = true,
    10. RedirectStandardOutput = true,
    11. UseShellExecute = false
    12. };
    13. bool skipLine = true;
    14. var proc = Process.Start(psi);
    15. while (proc.StandardError.Peek() != -1) {
    16. var line = proc.StandardError.ReadLine();
    17. if (line is null) {
    18. break;
    19. }
    20. if (line == endOfSearchString) {
    21. proc.Close();
    22. break;
    23. }
    24. if (line.Equals(searchString, StringComparison.InvariantCultureIgnoreCase)) {
    25. skipLine = false;
    26. continue;
    27. }
    28. if (skipLine) {
    29. continue;
    30. }
    31. Console.WriteLine($"Got input from compiler: { line }");
    32. s_searchPaths.Add(line.Trim());
    33. }
    34. s_searchPaths.ForEach(x => Console.WriteLine($"==========>> Found compiler search path { x }"));
    35. if (s_searchPaths.Count == 0) { Console.Error.WriteLine("==========>> !! NO COMPILER SEARCH PATHS FOUND! !!"); }


    TargetFramework: net7

    Quellcode

    1. Got input from compiler: /usr/lib/gcc/x86_64-linux-gnu/10/include
    2. Got input from compiler: /usr/local/include
    3. Got input from compiler: /usr/include/x86_64-linux-gnu
    4. Got input from compiler: /usr/include
    5. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/10/include
    6. ==========>> Found compiler search path /usr/local/include
    7. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    8. ==========>> Found compiler search path /usr/include


    TargetFramework: net8

    Quellcode

    1. Got input from compiler: /usr/lib/gcc/x86_64-linux-gnu/10/include
    2. Got input from compiler: /usr/local/include
    3. Got input from compiler: /usr/include/x86_64-linux-gnu
    4. Got input from compiler: /usr/include
    5. ==========>> Found compiler search path /usr/lib/gcc/x86_64-linux-gnu/10/include
    6. ==========>> Found compiler search path /usr/local/include
    7. ==========>> Found compiler search path /usr/include/x86_64-linux-gnu
    8. ==========>> Found compiler search path /usr/include


    Wenn ich gcc von Hand ausführen:

    C-Quellcode

    1. ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    2. ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/10/include-fixed"
    3. ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include"
    4. #include "..." search starts here:
    5. #include <...> search starts here:
    6. /usr/lib/gcc/x86_64-linux-gnu/10/include
    7. /usr/local/include
    8. /usr/include/x86_64-linux-gnu
    9. /usr/include
    10. End of search list.

    slice schrieb:

    Hast du mal geschaut wie oft dein gcc ausgeführt wird?
    Man könnte bei dem Output meinen, das es mehrfach gestartet wird, wobei ich mir das nicht erklären kann - sofern du den selben Code ausführst.


    Auf die Idee war ich gar nicht gekommen, aber leider wird der Befehl nur zweimal ausgeführt.

    Quellcode

    1. simon 31094 0.0 0.0 7156 1164 pts/8 S+ 00:01 0:00 /usr/bin/gcc -E -Wp,-v -
    2. simon 31945 0.0 0.0 7156 1088 pts/8 S+ 00:01 0:00 /usr/bin/gcc -E -Wp,-v -


    slice schrieb:

    TargetFramework: net7

    Na das ist ja interessant. Bei dir klappt es super

    slice schrieb:

    Wenn ich gcc von Hand ausführen:

    Der Output sieht meinem sehr ähnlich, spricht also dafür dass das schon mal klappt.

    EDIT: Ich habe mal interessenshalber den Quellcode von dir verwendet und komme leider zum selben Ergebnis wie mit meinem.
    D.h. ich kann schon mal ein falsches Disposen von dem Prozess ausschließen. Das ist alles doch sehr merkwürdig.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „siycah“ ()

    Wie führe ich denn deine Tests aus dem Repo aus?
    Bin zu faul mich da weiter einzulesen und mach das sonst immer nur unter Windows :D

    Autsch, das müsste ja auch nur dotnet test sein?

    slice schrieb:

    Autsch, das müsste ja auch nur dotnet test sein?


    Zum Ausführen der Tests verwende ich folgenden Befehl: ​printf "\033c"; dotnet test --filter "FullyQualifiedName=Tmds.Linux.Tests.FunctionsTest.Functions" -l "console;verbosity=detailed" 2>/dev/null > output.txt

    printf ist nur zum Resetten des Terminals, und das Redirect in eine Datei ist auch optional. War jetzt zum Debuggen ganz nützlich
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    So hab jetzt noch ein bissl getestet.
    Ähhhmmm also wenn ich den Test ausführe, kann ich dein Problem "reproduzieren"/ich bekomme immer unterschiedliche Ausgaben für net7.
    Wenn ich dein Code eins zu eins in eine leere Konsolenanwendung kopiere funktioniert es ohne Probleme.

    Kann es sein das das eventuell ein Problem mit XUnit und der Process-Klasse ist?
    Ich hatte auch Testweise zu deinen "Console.WriteLine" ein "File.Write..." hinzugefügt, um auszuschließen, das es vielleicht Probleme beim ITestOutputHelper gibt, aber auch in der Textdatei kamen immer unterschiedliche Ausgaben an (bei dotnet test).

    slice schrieb:

    Ähhhmmm also wenn ich den Test ausführe, kann ich dein Problem "reproduzieren"/ich bekomme immer unterschiedliche Ausgaben für net7.


    Das ist zumindest schon mal beruhigend :D
    Dann bin ich ja doch nicht so blöd, wie ich mir gerade vorkam.

    slice schrieb:

    Wenn ich dein Code eins zu eins in eine leere Konsolenanwendung kopiere funktioniert es ohne Probleme.

    Der Quellcode sah auch nach mehrmaligem Durchleuchten nicht fehlerhaft aus, also bin ich da auch sehr beruhigt.
    Nicht mal Sonarlint hatte was gesagt, also war ich schon sehr verdutzt.

    slice schrieb:

    Kann es sein das das eventuell ein Problem mit XUnit und der Process-Klasse ist?

    Das kann durchaus sein, dass Xunit/der dotnet test xunit-Adapter Probleme mit .net7 hat.

    XUnit war in dem Repo bereits vorhanden, als ich es geforked hatte. Aber dann werde ich das Ganze wohl mal auf MSTest umbauen und schauen, ob das hilft. Ich wollte nur gänzlich ungerne LibC in C# komplett selbst umsetzen ^^
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Du könntest vielleicht das ganze in ein minimal Testprojekt umsetzten und bei xunit ein Issue dazu erstellen?

    Kurzer Nachtrag zu:

    slice schrieb:

    Ich hatte auch Testweise zu deinen "Console.WriteLine" ein "File.Write..." hinzugefügt, um auszuschließen, das es vielleicht Probleme beim ITestOutputHelper gibt, aber auch in der Textdatei kamen immer unterschiedliche Ausgaben an (bei dotnet test).
    Das schmerzt irgendwie :D
    Das ist natürlich Müll, aber ich habe eine Ausrede: Ich bin krank xD

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „slice“ ()

    slice schrieb:

    Das ist natürlich Müll, aber ich habe eine Ausrede: Ich bin krank xD


    Hab ja verstanden, was du sagen willst :D Von daher alles gut.

    Ja, das könnte man natürlich auch machen. Aber mein Empfinden ist, dass man sich schon sehr mit einem Stück Software auskennen sollte, bevor man die große Klappe aufreißt und ein Fass aufmacht. Bzw. man sollte auch etwas Vergleichbares haben. Wenn ich das gleiche Problem in MSTest habe, dann liegt es eher an dem Framework irgendwie.

    Am liebsten würde ich alle Möglichkeiten ausschließen. Es ist ja kein Riesending. Es sind "nur" Tests, und Hintergrund meiner Anpassung dort ist, dass ich es nicht einsehe, libbluetooth-dev zu installieren, nur damit irgendwelche wilden Tests durchlaufen, die mit dem Hinzufügen von makedev und Co. nichts zu tun haben ^^

    Ach so und gute Besserung dir! :) Ist natürlich ätzend, über die Feiertage krank zu sein
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Kann ich verstehen, bin da auch lieber zurückhaltender, weil ich immer das Gefühl habe nichts zu Wissen aber lass dich davon nicht bremsen, manchmal muss man einfach Fragen und wo wenn nicht bei denen die das Ding geschrieben haben.

    Danke, es wird schon wieder besser aber doof ist es trotzdem :D
    PS: Frohe Weihnachten!

    slice schrieb:

    Kann ich verstehen, bin da auch lieber zurückhaltender, weil ich immer das Gefühl habe nichts zu Wissen aber lass dich davon nicht bremsen, manchmal muss man einfach Fragen und wo wenn nicht bei denen die das Ding geschrieben haben.

    Bremsen lass' ich mich nicht :D

    Ich habe nur über die Feiertage nicht gearbeitet und habe entsprechend viel Fortschritt gemacht ;)

    slice schrieb:

    PS: Frohe Weihnachten!


    Danke, dir auch! (nachträglich)
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)