1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/win_raw/tasks/main.yml
Matt Davis e084e8809e force Windows to always use preamble-free UTF8 input encoding ()
* fixes 
* When running under the UTF-8 codepage, Powershell subprocesses will fail (eg, Start-Job, others) if the input encoding is using the default BOM preamble. This fix forces it to use no preamble in leaf_exec and win_shell, and includes tests to verify that Start-Job works.
2017-03-24 00:02:39 -07:00

127 lines
4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# test code for the raw module when using winrm connection
# (c) 2014, Chris Church <chris@ninemoreminutes.com>
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
- name: run getmac
raw: getmac
register: getmac_result
- name: assert that getmac ran
assert:
that:
- "getmac_result.rc == 0"
- "getmac_result.stdout"
- "not getmac_result.stderr"
- "not getmac_result|failed"
- "getmac_result|changed"
- name: run ipconfig with /all argument
raw: ipconfig /all
register: ipconfig_result
- name: assert that ipconfig ran with /all argument
assert:
that:
- "ipconfig_result.rc == 0"
- "ipconfig_result.stdout"
- "'Physical Address' in ipconfig_result.stdout"
- "not ipconfig_result.stderr"
- "not ipconfig_result|failed"
- "ipconfig_result|changed"
- name: run ipconfig with invalid argument
raw: ipconfig /badswitch
register: ipconfig_invalid_result
ignore_errors: true
- name: assert that ipconfig with invalid argument failed
assert:
that:
- "ipconfig_invalid_result.rc != 0"
- "ipconfig_invalid_result.stdout" # ipconfig displays errors on stdout.
# - "not ipconfig_invalid_result.stderr"
- "ipconfig_invalid_result|failed"
- "ipconfig_invalid_result|changed"
- name: run an unknown command
raw: uname -a
register: unknown_result
ignore_errors: true
- name: assert that an unknown command failed
assert:
that:
- "unknown_result.rc != 0"
- "not unknown_result.stdout"
- "unknown_result.stderr" # An unknown command displays error on stderr.
- "unknown_result|failed"
- "unknown_result|changed"
- name: run a command that takes longer than 60 seconds
raw: Start-Sleep -s 75
register: sleep_command
- name: assert that the sleep command ran
assert:
that:
- "sleep_command.rc == 0"
- "not sleep_command.stdout"
- "not sleep_command.stderr"
- "not sleep_command|failed"
- "sleep_command|changed"
- name: run a raw command with key=value arguments
raw: echo wwe=raw
register: raw_result
- name: make sure raw is really raw and not removing key=value arguments
assert:
that:
- "raw_result.stdout_lines[0] == 'wwe=raw'"
# TODO: this test doesn't work anymore since we had to internally map Write-Host to Write-Output
#- name: run a raw command with unicode chars and quoted args (from https://github.com/ansible/ansible-modules-core/issues/1929)
# raw: Write-Host --% icacls D:\somedir\ /grant "! ЗАО. Руководство":F
# register: raw_result2
#
#- name: make sure raw passes command as-is and doesn't split/rejoin args
# assert:
# that:
# - "raw_result2.stdout_lines[0] == '--% icacls D:\\\\somedir\\\\ /grant \"! ЗАО. Руководство\":F'"
# Assumes MaxShellsPerUser == 30 (the default)
- name: test raw + with_items to verify that winrm connection is reused for each item
raw: echo "{{item}}"
with_items: "{{range(32)|list}}"
register: raw_with_items_result
- name: check raw + with_items result
assert:
that:
- "not raw_with_items_result|failed"
- "raw_with_items_result.results|length == 32"
- name: test raw with job to ensure that preamble-free InputEncoding is working
raw: Start-Job { echo yo } | Receive-Job -Wait
register: raw_job_result
- name: check raw with job result
assert:
that:
- raw_job_result | succeeded
- raw_job_result.stdout_lines[0] == 'yo'