Signed-off-by: Christoph Heiss <c.he...@proxmox.com> --- Changes v1 -> v2: * new patch, split out from patch #1 * rewrote tests to use a pre-defined input instead, thus being able to enable the tests unconditionally
test/Makefile | 7 ++++- test/zfs-get-pool-list.pl | 57 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100755 test/zfs-get-pool-list.pl diff --git a/test/Makefile b/test/Makefile index 99bf14e..c473af8 100644 --- a/test/Makefile +++ b/test/Makefile @@ -3,12 +3,13 @@ all: export PERLLIB=.. .PHONY: check -check: test-zfs-arc-max test-run-command test-parse-fqdn test-ui2-stdio +check: test-zfs-arc-max test-run-command test-parse-fqdn test-ui2-stdio test-zfs-get-pool-list .PHONY: test-zfs-arc-max test-zfs-arc-max: ./zfs-arc-max.pl +.PHONY: test-run-command test-run-command: ./run-command.pl @@ -19,3 +20,7 @@ test-parse-fqdn: .PHONY: test-ui2-stdio test-ui2-stdio: ./ui2-stdio.pl + +.PHONY: test-zfs-get-pool-list +test-zfs-get-pool-list: + ./zfs-get-pool-list.pl diff --git a/test/zfs-get-pool-list.pl b/test/zfs-get-pool-list.pl new file mode 100755 index 0000000..34e6b20 --- /dev/null +++ b/test/zfs-get-pool-list.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use File::Temp; +use Test::More tests => 8; + +use Proxmox::Sys::ZFS; +use Proxmox::UI; + +my $log_file = File::Temp->new(); +Proxmox::Log::init($log_file->filename); + +Proxmox::UI::init_stdio(); + +our $ZPOOL_IMPORT_TEST_OUTPUT = <<EOT; + pool: testpool + id: 4958685680270539150 + state: ONLINE + action: The pool can be imported using its name or numeric identifier. + config: + + testpool ONLINE + vdc ONLINE + vdd ONLINE + + pool: rpool + id: 9412322616744093413 + state: FAULTED +status: The pool was last accessed by another system. + action: The pool can be imported using its name or numeric identifier and + the '-f' flag. + see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY + config: + + rpool ONLINE + mirror-0 ONLINE + vda3 ONLINE + vdb3 ONLINE +EOT + +my $pools = { + testpool => { id => '4958685680270539150', state => 'ONLINE' }, + rpool => { id => '9412322616744093413', state => 'FAULTED' }, +}; + +open(my $fh, '<', \$ZPOOL_IMPORT_TEST_OUTPUT); +my $result = Proxmox::Sys::ZFS::zpool_import_parse_output($fh); +while (my ($name, $info) = each %$pools) { + my ($p) = grep { $_->{name} eq $name } @$result; + ok(defined($p), "pool $name was found"); + is($p->{id}, $info->{id}, "pool $name has correct id"); + is($p->{state}, $info->{state}, "pool $name has correct state"); + like($p->{action}, qr/^The pool can be imported using its name or numeric identifier/, + "pool $name can be imported"); +} -- 2.45.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel