diff options
author | Matt Clay <matt@mystile.com> | 2016-10-13 10:03:19 -0700 |
---|---|---|
committer | John R Barker <john@johnrbarker.com> | 2016-10-13 18:03:19 +0100 |
commit | c2ec86cb78f3c43bc5f2484d1888571e27225702 (patch) | |
tree | 43602995d1b5b009de1e1d4a7bc1a835f60204b7 /test/integration/targets/win_ping | |
parent | 9182619fef4151d04d28b30b8a6f33e469560f5f (diff) | |
download | ansible-c2ec86cb78f3c43bc5f2484d1888571e27225702.tar.gz |
Migrate Windows CI roles to test targets. (#18005)
Diffstat (limited to 'test/integration/targets/win_ping')
6 files changed, 297 insertions, 0 deletions
diff --git a/test/integration/targets/win_ping/library/win_ping_set_attr.ps1 b/test/integration/targets/win_ping/library/win_ping_set_attr.ps1 new file mode 100644 index 0000000000..8279b4b414 --- /dev/null +++ b/test/integration/targets/win_ping/library/win_ping_set_attr.ps1 @@ -0,0 +1,31 @@ +#!powershell +# 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/>. + +# POWERSHELL_COMMON + +$params = Parse-Args $args $true; + +$data = Get-Attr $params "data" "pong"; + +$result = New-Object psobject @{ + changed = $false + ping = "pong" +}; + +# Test that Set-Attr will replace an existing attribute. +Set-Attr $result "ping" $data + +Exit-Json $result; diff --git a/test/integration/targets/win_ping/library/win_ping_strict_mode_error.ps1 b/test/integration/targets/win_ping/library/win_ping_strict_mode_error.ps1 new file mode 100644 index 0000000000..d498cbcf17 --- /dev/null +++ b/test/integration/targets/win_ping/library/win_ping_strict_mode_error.ps1 @@ -0,0 +1,30 @@ +#!powershell +# 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/>. + +# POWERSHELL_COMMON + +$params = Parse-Args $args $true; + +$x = $params.thisPropertyDoesNotExist + +$data = Get-Attr $params "data" "pong"; + +$result = New-Object psobject @{ + changed = $false + ping = $data +}; + +Exit-Json $result; diff --git a/test/integration/targets/win_ping/library/win_ping_syntax_error.ps1 b/test/integration/targets/win_ping/library/win_ping_syntax_error.ps1 new file mode 100644 index 0000000000..6bfe621a80 --- /dev/null +++ b/test/integration/targets/win_ping/library/win_ping_syntax_error.ps1 @@ -0,0 +1,30 @@ +#!powershell +# 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/>. + +# POWERSHELL_COMMON + +$blah = 'I can't quote my strings correctly.' + +$params = Parse-Args $args $true; + +$data = Get-Attr $params "data" "pong"; + +$result = New-Object psobject @{ + changed = $false + ping = $data +}; + +Exit-Json $result; diff --git a/test/integration/targets/win_ping/library/win_ping_throw.ps1 b/test/integration/targets/win_ping/library/win_ping_throw.ps1 new file mode 100644 index 0000000000..f0b32186d8 --- /dev/null +++ b/test/integration/targets/win_ping/library/win_ping_throw.ps1 @@ -0,0 +1,30 @@ +#!powershell +# 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/>. + +# POWERSHELL_COMMON + +throw + +$params = Parse-Args $args $true; + +$data = Get-Attr $params "data" "pong"; + +$result = New-Object psobject @{ + changed = $false + ping = $data +}; + +Exit-Json $result; diff --git a/test/integration/targets/win_ping/library/win_ping_throw_string.ps1 b/test/integration/targets/win_ping/library/win_ping_throw_string.ps1 new file mode 100644 index 0000000000..e1f3ca6065 --- /dev/null +++ b/test/integration/targets/win_ping/library/win_ping_throw_string.ps1 @@ -0,0 +1,30 @@ +#!powershell +# 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/>. + +# POWERSHELL_COMMON + +throw "no ping for you" + +$params = Parse-Args $args $true; + +$data = Get-Attr $params "data" "pong"; + +$result = New-Object psobject @{ + changed = $false + ping = $data +}; + +Exit-Json $result; diff --git a/test/integration/targets/win_ping/tasks/main.yml b/test/integration/targets/win_ping/tasks/main.yml new file mode 100644 index 0000000000..aa5d03c908 --- /dev/null +++ b/test/integration/targets/win_ping/tasks/main.yml @@ -0,0 +1,146 @@ +# test code for the win_ping module +# (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: test win_ping + action: win_ping + register: win_ping_result + +- name: check win_ping result + assert: + that: + - "not win_ping_result|failed" + - "not win_ping_result|changed" + - "win_ping_result.ping == 'pong'" + +- name: test win_ping with data + win_ping: data=☠ + register: win_ping_with_data_result + +- name: check win_ping result with data + assert: + that: + - "not win_ping_with_data_result|failed" + - "not win_ping_with_data_result|changed" + - "win_ping_with_data_result.ping == '☠'" + +- name: test win_ping.ps1 with data as complex args + win_ping.ps1: + data: bleep + register: win_ping_ps1_result + +- name: check win_ping.ps1 result with data + assert: + that: + - "not win_ping_ps1_result|failed" + - "not win_ping_ps1_result|changed" + - "win_ping_ps1_result.ping == 'bleep'" + +- name: test win_ping with extra args to verify that v2 module replacer escaping works as expected + win_ping: + data: bloop + a_null: null + a_boolean: true + another_boolean: false + a_number: 299792458 + another_number: 22.7 + yet_another_number: 6.022e23 + a_string: | + it's magic + "@' + '@" + an_array: + - first + - 2 + - 3.0 + an_object: + - the_thing: the_value + - the_other_thing: 0 + - the_list_of_things: [1, 2, 3, 5] + register: win_ping_extra_args_result + +- name: check that win_ping with extra args succeeds and ignores everything except data + assert: + that: + - "not win_ping_extra_args_result|failed" + - "not win_ping_extra_args_result|changed" + - "win_ping_extra_args_result.ping == 'bloop'" + +- name: test modified win_ping that throws an exception + action: win_ping_throw + register: win_ping_throw_result + ignore_errors: true + +- name: check win_ping_throw result + assert: + that: + - "win_ping_throw_result|failed" + - "not win_ping_throw_result|changed" + - "win_ping_throw_result.msg == 'ScriptHalted'" + - "win_ping_throw_result.exception" + - "win_ping_throw_result.error_record" + +- name: test modified win_ping that throws a string exception + action: win_ping_throw_string + register: win_ping_throw_string_result + ignore_errors: true + +- name: check win_ping_throw_string result + assert: + that: + - "win_ping_throw_string_result|failed" + - "not win_ping_throw_string_result|changed" + - "win_ping_throw_string_result.msg == 'no ping for you'" + - "win_ping_throw_string_result.exception" + - "win_ping_throw_string_result.error_record" + +- name: test modified win_ping that has a syntax error + action: win_ping_syntax_error + register: win_ping_syntax_error_result + ignore_errors: true + +- name: check win_ping_syntax_error result + assert: + that: + - "win_ping_syntax_error_result|failed" + - "not win_ping_syntax_error_result|changed" + - "win_ping_syntax_error_result.msg" + - "win_ping_syntax_error_result.exception" + +- name: test modified win_ping that has an error that only surfaces when strict mode is on + action: win_ping_strict_mode_error + register: win_ping_strict_mode_error_result + ignore_errors: true + +- name: check win_ping_strict_mode_error result + assert: + that: + - "win_ping_strict_mode_error_result|failed" + - "not win_ping_strict_mode_error_result|changed" + - "win_ping_strict_mode_error_result.msg" + - "win_ping_strict_mode_error_result.exception" + +- name: test modified win_ping to verify a Set-Attr fix + action: win_ping_set_attr data="fixed" + register: win_ping_set_attr_result + +- name: check win_ping_set_attr_result result + assert: + that: + - "not win_ping_set_attr_result|failed" + - "not win_ping_set_attr_result|changed" + - "win_ping_set_attr_result.ping == 'fixed'" |