Enable at, patch and synchronize tests (#5)

* Enable at, patch and synchronize tests

* Remove commented out tasks

* Skip currently unsupported platforms

* Skip AIX on at
This commit is contained in:
Matt Martz 2020-03-20 07:37:05 -05:00 committed by GitHub
parent ce9ec16375
commit 27482c25f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 57 additions and 19 deletions

View file

@ -1,3 +1,2 @@
shippable/posix/group1
destructive
disabled # fixme package

View file

@ -16,34 +16,37 @@
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum'] or ansible_distribution in ['AIX']
- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum'] or ansible_distribution in ['AIX']
- set_fact: output_dir_test={{output_dir}}/at
- name: make sure our testing sub-directory does not exist
file: path="{{ output_dir_test }}" state=absent
file:
path: "{{ output_dir_test }}"
state: absent
- name: create our testing sub-directory
file: path="{{ output_dir_test }}" state=directory
file:
path: "{{ output_dir_test }}"
state: directory
##
## at
##
- name: define distros to attempt installing at on
set_fact:
package_distros:
- RedHat
- CentOS
- ScientificLinux
- Fedora
- Ubuntu
- Debian
- openSUSE Leap
- name: ensure at is installed
package:
name: at
state: present
when: ansible_distribution in package_distros
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']
- name: run the first example
at:

View file

@ -1,4 +1,3 @@
destructive
shippable/posix/group1
skip/aix
disabled # fixme package

View file

@ -1,55 +1,76 @@
- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']
- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']
- name: ensure idempotency installed
package:
name: patch
when: ansible_distribution != "MacOSX"
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']
- name: create a directory for the result
file:
dest: '{{ output_dir }}/patch'
state: directory
register: result
- name: assert the directory was created
assert:
that:
- result.state == 'directory'
- name: copy the origin file
copy:
src: ./origin.txt
dest: '{{ output_dir }}/patch/workfile.txt'
register: result
- name: patch the origin file in check mode
check_mode: true
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
- name: verify patch the origin file in check mode
assert:
that:
- result is changed
- name: patch the origin file
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
- name: verify patch the origin file
assert:
that:
- result is changed
- name: test patch the origin file idempotency
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
- name: verify test patch the origin file idempotency
assert:
that:
- result is not changed
- name: verify the resulted file matches expectations
copy:
src: ./result.txt
dest: '{{ output_dir }}/patch/workfile.txt'
register: result
failed_when: result is changed
- name: patch the workfile file in check mode state absent
check_mode: true
register: result
@ -57,30 +78,36 @@
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent
- name: verify patch the workfile file in check mode state absent
assert:
that:
- result is changed
- name: patch the workfile file state absent
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent
- name: verify patch the workfile file state absent
assert:
that:
- result is changed
- name: patch the workfile file state absent idempotency
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent
- name: verify patch the workfile file state absent idempotency
assert:
that:
- result is not changed
- name: verify the resulted file matches expectations
copy:
src: ./origin.txt

View file

@ -1,2 +1 @@
shippable/posix/group1
disabled # fixme package

View file

@ -1,7 +1,18 @@
- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']
- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']
- name: install rsync
package:
name: rsync
when: ansible_distribution != "MacOSX"
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']
- name: cleanup old files
shell: rm -rf {{output_dir}}/*
- name: create test new files