From dcbc69b69c51f5bcbfd08ccb55ecec1400fd3d21 Mon Sep 17 00:00:00 2001 From: Richard C Isaacson Date: Mon, 24 Feb 2014 10:57:22 -0600 Subject: [PATCH] Added script to the new integration tests. --- test/integration/non_destructive.yml | 3 +- .../roles/test_script/files/create_afile.sh | 3 + .../roles/test_script/files/remove_afile.sh | 3 + .../roles/test_script/files/test.sh | 3 + .../roles/test_script/meta/main.yml | 3 + .../roles/test_script/tasks/main.yml | 69 +++++++++++++++++++ 6 files changed, 83 insertions(+), 1 deletion(-) create mode 100755 test/integration/roles/test_script/files/create_afile.sh create mode 100755 test/integration/roles/test_script/files/remove_afile.sh create mode 100755 test/integration/roles/test_script/files/test.sh create mode 100644 test/integration/roles/test_script/meta/main.yml create mode 100644 test/integration/roles/test_script/tasks/main.yml diff --git a/test/integration/non_destructive.yml b/test/integration/non_destructive.yml index 7dc17e7638..0643a7be9d 100644 --- a/test/integration/non_destructive.yml +++ b/test/integration/non_destructive.yml @@ -33,4 +33,5 @@ - { role: test_lookups, tags: test_lookups } - { role: test_iterators, tags: test_iterators } - { role: test_command_shell, tags: test_command_shell } - - { role: test_failed_when, tags: test_failed_when } \ No newline at end of file + - { role: test_failed_when, tags: test_failed_when } + - { role: test_script, tags: test_script } \ No newline at end of file diff --git a/test/integration/roles/test_script/files/create_afile.sh b/test/integration/roles/test_script/files/create_afile.sh new file mode 100755 index 0000000000..e6fae448b2 --- /dev/null +++ b/test/integration/roles/test_script/files/create_afile.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo "win" > "$1" \ No newline at end of file diff --git a/test/integration/roles/test_script/files/remove_afile.sh b/test/integration/roles/test_script/files/remove_afile.sh new file mode 100755 index 0000000000..4a7fea6617 --- /dev/null +++ b/test/integration/roles/test_script/files/remove_afile.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +rm "$1" \ No newline at end of file diff --git a/test/integration/roles/test_script/files/test.sh b/test/integration/roles/test_script/files/test.sh new file mode 100755 index 0000000000..ade17e9b8c --- /dev/null +++ b/test/integration/roles/test_script/files/test.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo -n "win" \ No newline at end of file diff --git a/test/integration/roles/test_script/meta/main.yml b/test/integration/roles/test_script/meta/main.yml new file mode 100644 index 0000000000..1050c23ce3 --- /dev/null +++ b/test/integration/roles/test_script/meta/main.yml @@ -0,0 +1,3 @@ +dependencies: + - prepare_tests + diff --git a/test/integration/roles/test_script/tasks/main.yml b/test/integration/roles/test_script/tasks/main.yml new file mode 100644 index 0000000000..e824c715ec --- /dev/null +++ b/test/integration/roles/test_script/tasks/main.yml @@ -0,0 +1,69 @@ +# Test code for the command and shell modules. +# (c) 2014, Richard Isaacson + +# 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 . + +## +## prep +## + +- set_fact: output_dir_test={{output_dir}}/test_script + +- name: make sure our testing sub-directory does not exist + file: path="{{ output_dir_test }}" state=absent + +- name: create our testing sub-directory + file: path="{{ output_dir_test }}" state=directory + +## +## script +## + +- name: execute the test.sh script via command + script: test.sh + register: script_result0 + +- name: assert that the script executed correctly + assert: + that: + - "script_result0.rc == 0" + - "script_result0.stderr == ''" + - "script_result0.stdout == 'win'" + +# creates + +- name: verify that afile.txt is absent + file: path={{output_dir_test}}/afile.txt state=absent + +- name: create afile.txt with create_afile.sh via command + shell: create_afile.sh {{output_dir_test | expanduser}}/afile.txt creates={{output_dir_test | expanduser}}/afile.txt + +- name: verify that afile.txt is present + file: path={{output_dir_test}}/afile.txt state=file + +# removes + +- name: remove afile.txt with remote_afile.sh via command + shell: remove_afile.sh {{output_dir_test | expanduser}}/afile.txt removes={{output_dir_test | expanduser}}/afile.txt + +- name: verify that afile.txt is absent + file: path={{output_dir_test}}/afile.txt state=absent + register: script_result1 + +- name: assert that the file was removed by the script + assert: + that: + - "script_result1.changed != True"