| /* |
| * Copyright (C) 2015 Red Hat, Inc. All rights reserved. |
| * |
| * This file is part of LVM2. |
| * |
| * This copyrighted material is made available to anyone wishing to use, |
| * modify, copy, or redistribute it subject to the terms and conditions |
| * of the GNU General Public License v.2. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| #include "units.h" |
| |
| static struct dm_pool *_mem; |
| |
| int dmstatus_init(void) |
| { |
| _mem = dm_pool_create("dmstatus test", 1024); |
| return (_mem == NULL); |
| } |
| |
| int dmstatus_fini(void) |
| { |
| dm_pool_destroy(_mem); |
| return 0; |
| } |
| |
| static void _test_mirror_status(void) |
| { |
| struct dm_status_mirror *s = NULL; |
| |
| CU_ASSERT(dm_get_status_mirror(_mem, |
| "2 253:1 253:2 80/81 1 AD 3 disk 253:0 A", |
| &s)); |
| if (s) { |
| CU_ASSERT_EQUAL(s->total_regions, 81); |
| CU_ASSERT_EQUAL(s->insync_regions, 80); |
| CU_ASSERT_EQUAL(s->dev_count, 2); |
| CU_ASSERT_EQUAL(s->devs[0].health, 'A'); |
| CU_ASSERT_EQUAL(s->devs[0].major, 253); |
| CU_ASSERT_EQUAL(s->devs[0].minor, 1); |
| CU_ASSERT_EQUAL(s->devs[1].health, 'D'); |
| CU_ASSERT_EQUAL(s->devs[1].major, 253); |
| CU_ASSERT_EQUAL(s->devs[1].minor, 2); |
| CU_ASSERT_EQUAL(s->log_count, 1); |
| CU_ASSERT_EQUAL(s->logs[0].major, 253); |
| CU_ASSERT_EQUAL(s->logs[0].minor, 0); |
| CU_ASSERT_EQUAL(s->logs[0].health, 'A'); |
| CU_ASSERT(!strcmp(s->log_type, "disk")); |
| } |
| |
| CU_ASSERT(dm_get_status_mirror(_mem, |
| "4 253:1 253:2 253:3 253:4 10/10 1 ADFF 1 core", |
| &s)); |
| if (s) { |
| CU_ASSERT_EQUAL(s->total_regions, 10); |
| CU_ASSERT_EQUAL(s->insync_regions, 10); |
| CU_ASSERT_EQUAL(s->dev_count, 4); |
| CU_ASSERT_EQUAL(s->devs[3].minor, 4); |
| CU_ASSERT_EQUAL(s->devs[3].health, 'F'); |
| CU_ASSERT_EQUAL(s->log_count, 0); |
| CU_ASSERT(!strcmp(s->log_type, "core")); |
| } |
| } |
| |
| CU_TestInfo dmstatus_list[] = { |
| { (char*)"mirror_status", _test_mirror_status }, |
| CU_TEST_INFO_NULL |
| }; |