From 36ed474bfe0f67d2545467f34440f7bed9986981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Tue, 31 Jan 2023 23:46:35 +0100 Subject: [PATCH] v0.0.76 --- cmdext/cmdrunner_test.go | 112 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/cmdext/cmdrunner_test.go b/cmdext/cmdrunner_test.go index e4f2327..2deac37 100644 --- a/cmdext/cmdrunner_test.go +++ b/cmdext/cmdrunner_test.go @@ -84,3 +84,115 @@ func TestPartialRead(t *testing.T) { } } + +func TestPartialReadStderr(t *testing.T) { + res1, err := Runner("python"). + Arg("-c"). + Arg("import sys; import time; print(\"first message\", file=sys.stderr, flush=True); time.sleep(5); print(\"cant see me\", file=sys.stderr, flush=True);"). + Timeout(100 * time.Millisecond). + Run() + if err != nil { + t.Errorf("%v", err) + } + if !res1.CommandTimedOut { + t.Errorf("!CommandTimedOut") + } + if res1.StdErr != "first message\n" { + t.Errorf("res1.StdErr == '%v'", res1.StdErr) + } + if res1.StdOut != "" { + t.Errorf("res1.StdOut == '%v'", res1.StdOut) + } + if res1.StdCombined != "first message\n" { + t.Errorf("res1.StdCombined == '%v'", res1.StdCombined) + } + +} + +func TestReadUnflushedStdout(t *testing.T) { + + res1, err := Runner("python").Arg("-c").Arg("import sys; print(\"message101\", file=sys.stdout, end='')").Run() + if err != nil { + t.Errorf("%v", err) + } + if res1.StdErr != "" { + t.Errorf("res1.StdErr == '%v'", res1.StdErr) + } + if res1.StdOut != "message101" { + t.Errorf("res1.StdOut == '%v'", res1.StdOut) + } + if res1.StdCombined != "message101\n" { + t.Errorf("res1.StdCombined == '%v'", res1.StdCombined) + } + +} + +func TestReadUnflushedStderr(t *testing.T) { + + res1, err := Runner("python").Arg("-c").Arg("import sys; print(\"message101\", file=sys.stderr, end='')").Run() + if err != nil { + t.Errorf("%v", err) + } + if res1.StdErr != "message101" { + t.Errorf("res1.StdErr == '%v'", res1.StdErr) + } + if res1.StdOut != "" { + t.Errorf("res1.StdOut == '%v'", res1.StdOut) + } + if res1.StdCombined != "message101\n" { + t.Errorf("res1.StdCombined == '%v'", res1.StdCombined) + } + +} + +func TestPartialReadUnflushed(t *testing.T) { + t.SkipNow() + + res1, err := Runner("python"). + Arg("-c"). + Arg("import sys; import time; print(\"first message\", end=''); time.sleep(5); print(\"cant see me\", end='');"). + Timeout(100 * time.Millisecond). + Run() + if err != nil { + t.Errorf("%v", err) + } + if !res1.CommandTimedOut { + t.Errorf("!CommandTimedOut") + } + if res1.StdErr != "" { + t.Errorf("res1.StdErr == '%v'", res1.StdErr) + } + if res1.StdOut != "first message" { + t.Errorf("res1.StdOut == '%v'", res1.StdOut) + } + if res1.StdCombined != "first message" { + t.Errorf("res1.StdCombined == '%v'", res1.StdCombined) + } + +} + +func TestPartialReadUnflushedStderr(t *testing.T) { + t.SkipNow() + + res1, err := Runner("python"). + Arg("-c"). + Arg("import sys; import time; print(\"first message\", file=sys.stderr, end=''); time.sleep(5); print(\"cant see me\", file=sys.stderr, end='');"). + Timeout(100 * time.Millisecond). + Run() + if err != nil { + t.Errorf("%v", err) + } + if !res1.CommandTimedOut { + t.Errorf("!CommandTimedOut") + } + if res1.StdErr != "first message" { + t.Errorf("res1.StdErr == '%v'", res1.StdErr) + } + if res1.StdOut != "" { + t.Errorf("res1.StdOut == '%v'", res1.StdOut) + } + if res1.StdCombined != "first message" { + t.Errorf("res1.StdCombined == '%v'", res1.StdCombined) + } + +}