134 lines
3.5 KiB
YAML
134 lines
3.5 KiB
YAML
|
- name: execute a command
|
||
|
win_command: whoami /groups
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|success
|
||
|
- cmdout|changed
|
||
|
- cmdout.cmd == 'whoami /groups'
|
||
|
- cmdout.delta is match('^\d:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.end is match('^(\d){4}\-(\d){2}\-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.rc == 0
|
||
|
- cmdout.start is match('^(\d){4}\-(\d){2}\-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.stderr == ""
|
||
|
- cmdout.stdout is search('GROUP INFORMATION')
|
||
|
- '"GROUP INFORMATION" in cmdout.stdout_lines'
|
||
|
- cmdout.warnings == []
|
||
|
|
||
|
- name: execute something nonexistent
|
||
|
win_command: bogus_command1234
|
||
|
register: cmdout
|
||
|
ignore_errors: true
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|failed
|
||
|
- not cmdout|changed
|
||
|
- cmdout.cmd == 'bogus_command1234'
|
||
|
- cmdout.rc == 2
|
||
|
- cmdout.msg is search('cannot find the file specified')
|
||
|
|
||
|
- name: execute something with error output
|
||
|
win_command: cmd /c "echo some output & echo some error 1>&2"
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|success
|
||
|
- cmdout|changed
|
||
|
- cmdout.cmd == 'cmd /c "echo some output & echo some error 1>&2"'
|
||
|
- cmdout.delta is match('^\d:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.end is match('^(\d){4}\-(\d){2}\-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.rc == 0
|
||
|
- cmdout.start is match('^(\d){4}\-(\d){2}\-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){6}$')
|
||
|
- cmdout.stderr is search('some error')
|
||
|
- cmdout.stdout == "some output \r\n"
|
||
|
- cmdout.stdout_lines == ["some output "]
|
||
|
- cmdout.warnings == []
|
||
|
|
||
|
- name: ensure test file is absent
|
||
|
win_file:
|
||
|
path: c:\testfile.txt
|
||
|
state: absent
|
||
|
|
||
|
- name: run with creates, should create
|
||
|
win_command: cmd /c "echo $null >> c:\testfile.txt"
|
||
|
args:
|
||
|
creates: c:\testfile.txt
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|success
|
||
|
- cmdout|changed
|
||
|
|
||
|
- name: run again with creates, should skip
|
||
|
win_command: cmd /c "echo $null >> c:\testfile.txt"
|
||
|
args:
|
||
|
creates: c:\testfile.txt
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|skipped
|
||
|
- cmdout.msg is search('exists')
|
||
|
|
||
|
- name: ensure testfile is still present
|
||
|
win_stat:
|
||
|
path: c:\testfile.txt
|
||
|
register: statout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- statout.stat.exists == true
|
||
|
|
||
|
- name: run with removes, should remove
|
||
|
win_command: cmd /c "del c:\testfile.txt"
|
||
|
args:
|
||
|
removes: c:\testfile.txt
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|success
|
||
|
- cmdout|changed
|
||
|
|
||
|
- name: run again with removes, should skip
|
||
|
win_command: cmd /c "del c:\testfile.txt"
|
||
|
args:
|
||
|
removes: c:\testfile.txt
|
||
|
register: cmdout
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- cmdout|skipped
|
||
|
- cmdout.msg is search('does not exist')
|
||
|
|
||
|
- name: run something with known nonzero exit code
|
||
|
win_command: cmd /c "exit 254"
|
||
|
register: cmdout
|
||
|
ignore_errors: true
|
||
|
|
||
|
- name: validate result
|
||
|
assert:
|
||
|
that:
|
||
|
- 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"
|
||
|
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
|