summaryrefslogtreecommitdiff
path: root/test/integration/targets/win_ping
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2016-10-13 10:03:19 -0700
committerJohn R Barker <john@johnrbarker.com>2016-10-13 18:03:19 +0100
commitc2ec86cb78f3c43bc5f2484d1888571e27225702 (patch)
tree43602995d1b5b009de1e1d4a7bc1a835f60204b7 /test/integration/targets/win_ping
parent9182619fef4151d04d28b30b8a6f33e469560f5f (diff)
downloadansible-c2ec86cb78f3c43bc5f2484d1888571e27225702.tar.gz
Migrate Windows CI roles to test targets. (#18005)
Diffstat (limited to 'test/integration/targets/win_ping')
-rw-r--r--test/integration/targets/win_ping/library/win_ping_set_attr.ps131
-rw-r--r--test/integration/targets/win_ping/library/win_ping_strict_mode_error.ps130
-rw-r--r--test/integration/targets/win_ping/library/win_ping_syntax_error.ps130
-rw-r--r--test/integration/targets/win_ping/library/win_ping_throw.ps130
-rw-r--r--test/integration/targets/win_ping/library/win_ping_throw_string.ps130
-rw-r--r--test/integration/targets/win_ping/tasks/main.yml146
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'"