summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatt Davis <mdavis@ansible.com>2016-10-25 16:06:57 -0700
committerMatt Davis <mdavis@ansible.com>2016-10-25 17:38:25 -0700
commit79e43925b18115688f40998389cca79d79d16331 (patch)
tree331ecfb7022c5a844609381306bbf5976852592f /test
parent0eb23f5a8678c50b3a7827c7abdf29154984b837 (diff)
downloadansible-79e43925b18115688f40998389cca79d79d16331.tar.gz
add large interleaved stdout/stderr integration tests for win_shell/win_command
(cherry picked from commit c1b7d2e560b27033ac2ecdf7ed5069815b865667)
Diffstat (limited to 'test')
-rw-r--r--test/integration/roles/test_win_command/tasks/main.yml15
-rw-r--r--test/integration/roles/test_win_shell/tasks/main.yml15
2 files changed, 18 insertions, 12 deletions
diff --git a/test/integration/roles/test_win_command/tasks/main.yml b/test/integration/roles/test_win_command/tasks/main.yml
index 98f39b3c27..31c172f714 100644
--- a/test/integration/roles/test_win_command/tasks/main.yml
+++ b/test/integration/roles/test_win_command/tasks/main.yml
@@ -124,11 +124,14 @@
- cmdout|failed
- cmdout.rc == 254
-- name: write large buffer to stdout
- win_command: powershell /c "$ba = New-Object byte[] 16384; (New-Object System.Random 32).NextBytes($ba); [Convert]::ToBase64String($ba) | Write-Output"
+- name: interleave large writes between stdout/stderr (check for buffer consumption deadlock)
+ win_command: powershell /c "$ba = New-Object byte[] 4096; (New-Object System.Random 32).NextBytes($ba); $text = [Convert]::ToBase64String($ba); Write-Output startout; Write-Error starterror; Write-Error $text; Write-Output $text; Write-Error $text; Write-Output $text; Write-Error $text; Write-Output $text; Write-Output doneout Write-Error doneerror"
register: cmdout
-# TODO: fix small buffer deadlock on large write to stderr before stdout has been consumed
-#- name: write large buffer to stderr
-# win_shell: $ba = New-Object byte[] 16384; (New-Object System.Random 32).NextBytes($ba); [Convert]::ToBase64String($ba) | Write-Error; Write-Output test
-# register: cmdout \ No newline at end of file
+- name: ensure that the entirety of both streams were read
+ assert:
+ that:
+ - cmdout.stdout is search("startout")
+ - cmdout.stdout is search("doneout")
+ - cmdout.stderr is search("starterror")
+ - cmdout.stderr is search("doneerror")
diff --git a/test/integration/roles/test_win_shell/tasks/main.yml b/test/integration/roles/test_win_shell/tasks/main.yml
index 12e9870b9c..9998f4c456 100644
--- a/test/integration/roles/test_win_shell/tasks/main.yml
+++ b/test/integration/roles/test_win_shell/tasks/main.yml
@@ -165,11 +165,14 @@
- shellout.stdout_lines == ["line1 ", "line2"]
- shellout.stderr == ""
-- name: write large buffer to stdout
- win_shell: $ba = New-Object byte[] 16384; (New-Object System.Random 32).NextBytes($ba); [Convert]::ToBase64String($ba) | Write-Output
+- name: interleave large writes between stdout/stderr (check for buffer consumption deadlock)
+ win_shell: $ba = New-Object byte[] 4096; (New-Object System.Random 32).NextBytes($ba); $text = [Convert]::ToBase64String($ba); Write-Output startout; Write-Error starterror; Write-Error $text; Write-Output $text; Write-Error $text; Write-Output $text; Write-Error $text; Write-Output $text; Write-Output doneout Write-Error doneerror
register: shellout
-# TODO: fix small buffer deadlock on large write to stderr before stdout has been consumed
-#- name: write large buffer to stderr
-# win_shell: $ba = New-Object byte[] 16384; (New-Object System.Random 32).NextBytes($ba); [Convert]::ToBase64String($ba) | Write-Error; Write-Output test
-# register: shellout \ No newline at end of file
+- name: ensure that the entirety of both streams were read
+ assert:
+ that:
+ - shellout.stdout is search("startout")
+ - shellout.stdout is search("doneout")
+ - shellout.stderr is search("starterror")
+ - shellout.stderr is search("doneerror")