From 67b921e4e645c95bc339e0cfa697f14b6e8dd8ab Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Mon, 17 Apr 2023 01:34:53 +1200 Subject: [PATCH] parted: add integration test (#6337) * parted: add integration test * Update tests/integration/targets/parted/aliases Co-authored-by: Felix Fontein * adjusted for Alpine --------- Co-authored-by: Felix Fontein --- tests/integration/targets/parted/aliases | 13 +++ .../targets/parted/handlers/main.yml | 14 +++ .../integration/targets/parted/tasks/main.yml | 86 +++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 tests/integration/targets/parted/aliases create mode 100644 tests/integration/targets/parted/handlers/main.yml create mode 100644 tests/integration/targets/parted/tasks/main.yml diff --git a/tests/integration/targets/parted/aliases b/tests/integration/targets/parted/aliases new file mode 100644 index 0000000000..b2b1b25fdc --- /dev/null +++ b/tests/integration/targets/parted/aliases @@ -0,0 +1,13 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +azp/posix/2 +azp/posix/vm +skip/aix +skip/freebsd +skip/osx +skip/macos +skip/docker +needs/root +destructive diff --git a/tests/integration/targets/parted/handlers/main.yml b/tests/integration/targets/parted/handlers/main.yml new file mode 100644 index 0000000000..e292260d02 --- /dev/null +++ b/tests/integration/targets/parted/handlers/main.yml @@ -0,0 +1,14 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Remove loopback device + command: + cmd: losetup -d {{ losetup_name.stdout }} + changed_when: true + +- name: Remove file + file: + path: /bigfile + state: absent diff --git a/tests/integration/targets/parted/tasks/main.yml b/tests/integration/targets/parted/tasks/main.yml new file mode 100644 index 0000000000..c91258d35d --- /dev/null +++ b/tests/integration/targets/parted/tasks/main.yml @@ -0,0 +1,86 @@ +# Copyright (c) 2021, Alexei Znamensky +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Install parted + package: + name: parted + state: present + when: ansible_os_family == 'Alpine' + +- name: Create empty file + community.general.filesize: + path: /bigfile + size: 1GiB + notify: Remove file + +- name: Obtain loop device name + command: + cmd: losetup -f + changed_when: false + register: losetup_name + +- name: Create loopback device + command: + cmd: losetup -f /bigfile + changed_when: true + register: losetup_cmd + notify: Remove loopback device + +- name: Create first partition + community.general.parted: + device: "{{ losetup_name.stdout }}" + number: 1 + state: present + fs_type: ext4 + part_end: "50%" + register: partition1 + +- name: Make filesystem + community.general.filesystem: + device: "{{ losetup_name.stdout }}p1" + fstype: ext4 + register: fs1_succ + +- name: Make filesystem (fail) + community.general.filesystem: + device: "{{ losetup_name.stdout }}p2" + fstype: ext4 + ignore_errors: true + register: fs_fail + +- name: Create second partition + community.general.parted: + device: "{{ losetup_name.stdout }}" + number: 2 + state: present + fs_type: ext4 + part_start: "{{ partition1.partitions[0].end + 1 }}KiB" + part_end: "100%" + register: partition2 + +- name: Make filesystem + community.general.filesystem: + device: "{{ losetup_name.stdout }}p2" + fstype: ext4 + register: fs2_succ + +- name: Remove first partition + community.general.parted: + device: "{{ losetup_name.stdout }}" + number: 1 + state: absent + register: partition_rem1 + +- name: Assert results + assert: + that: + - partition1 is changed + - fs1_succ is changed + - fs_fail is failed + - fs_fail is not changed + - partition2 is changed + - partition2.partitions | length == 2 + - fs2_succ is changed + - partition_rem1 is changed + - partition_rem1.partitions | length == 1