The test/data/bdev-rbd/output_invalid.txt file appears to be missing.

Thanks,

Guido


On Tue, Feb 12, 2013 at 12:32 PM, Guido Trotter <[email protected]> wrote:
> LGTM
>
> Thanks,
> Guido
>
>
> On Fri, Feb 8, 2013 at 5:36 PM, Stratos Psomadakis <[email protected]> wrote:
>> Add unit tests for the RADOSBlockDevice JSON output parsing function,
>> and modify the unit tests for the plain output parsing function to
>> work with the new code.
>>
>> Signed-off-by: Stratos Psomadakis <[email protected]>
>> ---
>>  Makefile.am                                        |   14 ++++
>>  test/data/bdev-rbd/json_output_empty.txt           |    1 +
>>  test/data/bdev-rbd/json_output_extra_matches.txt   |    1 +
>>  test/data/bdev-rbd/json_output_no_matches.txt      |    1 +
>>  test/data/bdev-rbd/json_output_ok.txt              |    1 +
>>  .../bdev-rbd/plain_output_new_extra_matches.txt    |    5 ++
>>  test/data/bdev-rbd/plain_output_new_no_matches.txt |    3 +
>>  test/data/bdev-rbd/plain_output_new_ok.txt         |    3 +
>>  test/data/bdev-rbd/plain_output_old_empty.txt      |    1 +
>>  .../bdev-rbd/plain_output_old_extra_matches.txt    |    5 ++
>>  test/data/bdev-rbd/plain_output_old_no_matches.txt |    3 +
>>  test/data/bdev-rbd/plain_output_old_ok.txt         |    4 +
>>  test/py/ganeti.bdev_unittest.py                    |   88 
>> ++++++++++++++------
>>  13 files changed, 103 insertions(+), 27 deletions(-)
>>  create mode 100644 test/data/bdev-rbd/json_output_empty.txt
>>  create mode 100644 test/data/bdev-rbd/json_output_extra_matches.txt
>>  create mode 100644 test/data/bdev-rbd/json_output_no_matches.txt
>>  create mode 100644 test/data/bdev-rbd/json_output_ok.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_new_empty.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_new_extra_matches.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_new_no_matches.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_new_ok.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_old_empty.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_old_extra_matches.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_old_no_matches.txt
>>  create mode 100644 test/data/bdev-rbd/plain_output_old_ok.txt
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 2b20bf0..f05a58c 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -106,6 +106,7 @@ DIRS = \
>>         qa \
>>         test \
>>         test/data \
>> +       test/data/bdev-rbd \
>>         test/data/ovfdata \
>>         test/data/ovfdata/other \
>>         test/py \
>> @@ -986,6 +987,19 @@ TEST_FILES = \
>>         test/data/bdev-drbd-disk.txt \
>>         test/data/bdev-drbd-net-ip4.txt \
>>         test/data/bdev-drbd-net-ip6.txt \
>> +       test/data/bdev-rbd/json_output_empty.txt \
>> +       test/data/bdev-rbd/json_output_extra_matches.txt \
>> +       test/data/bdev-rbd/json_output_no_matches.txt \
>> +       test/data/bdev-rbd/json_output_ok.txt \
>> +       test/data/bdev-rbd/plain_output_new_empty.txt \
>> +       test/data/bdev-rbd/plain_output_new_extra_matches.txt \
>> +       test/data/bdev-rbd/plain_output_new_no_matches.txt \
>> +       test/data/bdev-rbd/plain_output_new_ok.txt \
>> +       test/data/bdev-rbd/plain_output_old_empty.txt \
>> +       test/data/bdev-rbd/plain_output_old_extra_matches.txt \
>> +       test/data/bdev-rbd/plain_output_old_no_matches.txt \
>> +       test/data/bdev-rbd/plain_output_old_ok.txt \
>> +       test/data/bdev-rbd/output_invalid.txt \
>>         test/data/cert1.pem \
>>         test/data/cert2.pem \
>>         test/data/instance-minor-pairing.txt \
>> diff --git a/test/data/bdev-rbd/json_output_empty.txt 
>> b/test/data/bdev-rbd/json_output_empty.txt
>> new file mode 100644
>> index 0000000..0967ef4
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/json_output_empty.txt
>> @@ -0,0 +1 @@
>> +{}
>> diff --git a/test/data/bdev-rbd/json_output_extra_matches.txt 
>> b/test/data/bdev-rbd/json_output_extra_matches.txt
>> new file mode 100644
>> index 0000000..321c438
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/json_output_extra_matches.txt
>> @@ -0,0 +1 @@
>> +{"4":{"pool":"rbd","name":"d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0","snap":"-","device":"\/dev\/rbd4"},"1":{"pool":"rbd","name":"b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0","snap":"-","device":"\/dev\/rbd1"},"2":{"pool":"rbd","name":"abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0","snap":"-","device":"\/dev\/rbd2"},"3":{"pool":"rbd","name":"d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0","snap":"-","device":"\/dev\/rbd3"}}
>> diff --git a/test/data/bdev-rbd/json_output_no_matches.txt 
>> b/test/data/bdev-rbd/json_output_no_matches.txt
>> new file mode 100644
>> index 0000000..a298788
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/json_output_no_matches.txt
>> @@ -0,0 +1 @@
>> +{"1":{"pool":"rbd","name":"b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0","snap":"-","device":"\/dev\/rbd1"},"2":{"pool":"rbd","name":"abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0","snap":"-","device":"\/dev\/rbd2"}}
>> diff --git a/test/data/bdev-rbd/json_output_ok.txt 
>> b/test/data/bdev-rbd/json_output_ok.txt
>> new file mode 100644
>> index 0000000..0d5173f
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/json_output_ok.txt
>> @@ -0,0 +1 @@
>> +{"1":{"pool":"rbd","name":"b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0","snap":"-","device":"\/dev\/rbd1"},"2":{"pool":"rbd","name":"abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0","snap":"-","device":"\/dev\/rbd2"},"3":{"pool":"rbd","name":"d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0","snap":"-","device":"\/dev\/rbd3"}}
>> diff --git a/test/data/bdev-rbd/plain_output_new_empty.txt 
>> b/test/data/bdev-rbd/plain_output_new_empty.txt
>> new file mode 100644
>> index 0000000..e69de29
>> diff --git a/test/data/bdev-rbd/plain_output_new_extra_matches.txt 
>> b/test/data/bdev-rbd/plain_output_new_extra_matches.txt
>> new file mode 100644
>> index 0000000..f7bc907
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_new_extra_matches.txt
>> @@ -0,0 +1,5 @@
>> +id pool image                                          snap device
>> +4  rbd  d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0 -    /dev/rbd4
>> +1  rbd  b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0 -    /dev/rbd1
>> +2  rbd  abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0 -    /dev/rbd2
>> +3  rbd  d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0 -    /dev/rbd3
>> diff --git a/test/data/bdev-rbd/plain_output_new_no_matches.txt 
>> b/test/data/bdev-rbd/plain_output_new_no_matches.txt
>> new file mode 100644
>> index 0000000..bc126b3
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_new_no_matches.txt
>> @@ -0,0 +1,3 @@
>> +id pool image                                          snap device
>> +1  rbd  b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0 -    /dev/rbd1
>> +2  rbd  abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0 -    /dev/rbd2
>> diff --git a/test/data/bdev-rbd/plain_output_new_ok.txt 
>> b/test/data/bdev-rbd/plain_output_new_ok.txt
>> new file mode 100644
>> index 0000000..bc25094
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_new_ok.txt
>> @@ -0,0 +1,3 @@
>> +1  rbd  b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0 -    /dev/rbd1
>> +2  rbd  abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0 -    /dev/rbd2
>> +3  rbd  d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0 -    /dev/rbd3
>> diff --git a/test/data/bdev-rbd/plain_output_old_empty.txt 
>> b/test/data/bdev-rbd/plain_output_old_empty.txt
>> new file mode 100644
>> index 0000000..0bb19ea
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_old_empty.txt
>> @@ -0,0 +1 @@
>> +id     pool    image   snap    device
>> diff --git a/test/data/bdev-rbd/plain_output_old_extra_matches.txt 
>> b/test/data/bdev-rbd/plain_output_old_extra_matches.txt
>> new file mode 100644
>> index 0000000..52848e4
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_old_extra_matches.txt
>> @@ -0,0 +1,5 @@
>> +id     pool    image   snap    device
>> +4      rbd     d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0  -       
>> /dev/rbd4
>> +1      rbd     b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0  -       
>> /dev/rbd1
>> +2      rbd     abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0  -       
>> /dev/rbd2
>> +3      rbd     d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0  -       
>> /dev/rbd3
>> diff --git a/test/data/bdev-rbd/plain_output_old_no_matches.txt 
>> b/test/data/bdev-rbd/plain_output_old_no_matches.txt
>> new file mode 100644
>> index 0000000..3632b48
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_old_no_matches.txt
>> @@ -0,0 +1,3 @@
>> +id     pool    image   snap    device
>> +1      rbd     b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0  -       
>> /dev/rbd1
>> +2      rbd     abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0  -       
>> /dev/rbd2
>> diff --git a/test/data/bdev-rbd/plain_output_old_ok.txt 
>> b/test/data/bdev-rbd/plain_output_old_ok.txt
>> new file mode 100644
>> index 0000000..c2e1e5c
>> --- /dev/null
>> +++ b/test/data/bdev-rbd/plain_output_old_ok.txt
>> @@ -0,0 +1,4 @@
>> +id     pool    image   snap    device
>> +1      rbd     b9e31bb3-4d4f-4a2c-bc63-207a0bc4b287.rbd.disk0  -       
>> /dev/rbd1
>> +2      rbd     abe7957a-ec96-490f-9c08-53b1c51cecf0.rbd.disk0  -       
>> /dev/rbd2
>> +3      rbd     d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0  -       
>> /dev/rbd3
>> diff --git a/test/py/ganeti.bdev_unittest.py 
>> b/test/py/ganeti.bdev_unittest.py
>> index 4aa3106..3419182 100755
>> --- a/test/py/ganeti.bdev_unittest.py
>> +++ b/test/py/ganeti.bdev_unittest.py
>> @@ -346,35 +346,69 @@ class TestDRBD8Status(testutils.GanetiTestCase):
>>
>>
>>  class TestRADOSBlockDevice(testutils.GanetiTestCase):
>> -  def test_ParseRbdShowmappedOutput(self):
>> -    volume_name = "abc9778-8e8ace5b.rbd.disk0"
>> -    output_ok = \
>> -      ("0\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
>> -       "1\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd16\n"
>> -       "line\twith\tfewer\tfields\n"
>> -       "")
>> -    output_empty = ""
>> -    output_no_matches = \
>> -      ("0\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
>> -       "1\trbd\tabcdef01-9817.rbd.disk0\t-\t/dev/rbd10\n"
>> -       "2\trbd\tcdef0123-9817.rbd.disk0\t-\t/dev/rbd12\n"
>> -       "something\twith\tfewer\tfields"
>> -       "")
>> -    output_extra_matches = \
>> -      ("0\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd11\n"
>> -       "1\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
>> -       "2\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd16\n"
>> -       "something\twith\tfewer\tfields"
>> -       "")
>> -
>> -    parse_function = bdev.RADOSBlockDevice._ParseRbdShowmappedOutput
>> -    self.assertEqual(parse_function(output_ok, volume_name), "/dev/rbd16")
>> +  def setUp(self):
>> +    """Set up input data"""
>> +    testutils.GanetiTestCase.setUp(self)
>> +
>> +    self.plain_output_old_ok = 
>> testutils.ReadTestData("bdev-rbd/plain_output_old_ok.txt")
>> +    self.plain_output_old_no_matches = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_old_no_matches.txt")
>> +    self.plain_output_old_extra_matches = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_old_extra_matches.txt")
>> +    self.plain_output_old_empty = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_old_empty.txt")
>> +    self.plain_output_new_ok = 
>> testutils.ReadTestData("bdev-rbd/plain_output_new_ok.txt")
>> +    self.plain_output_new_no_matches = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_new_no_matches.txt")
>> +    self.plain_output_new_extra_matches = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_new_extra_matches.txt")
>> +    self.plain_output_new_empty = \
>> +      testutils.ReadTestData("bdev-rbd/plain_output_new_empty.txt")
>> +    self.json_output_ok = 
>> testutils.ReadTestData("bdev-rbd/json_output_ok.txt")
>> +    self.json_output_no_matches = \
>> +      testutils.ReadTestData("bdev-rbd/json_output_no_matches.txt")
>> +    self.json_output_extra_matches = \
>> +      testutils.ReadTestData("bdev-rbd/json_output_extra_matches.txt")
>> +    self.json_output_empty = 
>> testutils.ReadTestData("bdev-rbd/json_output_empty.txt")
>> +    self.output_invalid = 
>> testutils.ReadTestData("bdev-rbd/output_invalid.txt")
>> +
>> +    self.volume_name = "d7ab910a-4933-4ffe-88d0-faf2ce31390a.rbd.disk0"
>> +
>> +  def test_ParseRbdShowmappedJson(self):
>> +    parse_function = bdev.RADOSBlockDevice._ParseRbdShowmappedJson
>> +
>> +    self.assertEqual(parse_function(self.json_output_ok, self.volume_name),
>> +                     "/dev/rbd3")
>> +    self.assertEqual(parse_function(self.json_output_empty, 
>> self.volume_name),
>> +                     None)
>> +    self.assertEqual(parse_function(self.json_output_no_matches,
>> +                     self.volume_name), None)
>>      self.assertRaises(errors.BlockDeviceError, parse_function,
>> -                      output_empty, volume_name)
>> -    self.assertEqual(parse_function(output_no_matches, volume_name), None)
>> +                      self.json_output_extra_matches, self.volume_name)
>>      self.assertRaises(errors.BlockDeviceError, parse_function,
>> -                      output_extra_matches, volume_name)
>> -
>> +                      self.output_invalid, self.volume_name)
>> +
>> +  def test_ParseRbdShowmappedPlain(self):
>> +    parse_function = bdev.RADOSBlockDevice._ParseRbdShowmappedPlain
>> +
>> +    self.assertEqual(parse_function(self.plain_output_new_ok,
>> +                     self.volume_name), "/dev/rbd3")
>> +    self.assertEqual(parse_function(self.plain_output_old_ok,
>> +                     self.volume_name), "/dev/rbd3")
>> +    self.assertEqual(parse_function(self.plain_output_new_empty,
>> +                     self.volume_name), None)
>> +    self.assertEqual(parse_function(self.plain_output_old_empty,
>> +                     self.volume_name), None)
>> +    self.assertEqual(parse_function(self.plain_output_new_no_matches,
>> +                     self.volume_name), None)
>> +    self.assertEqual(parse_function(self.plain_output_old_no_matches,
>> +                     self.volume_name), None)
>> +    self.assertRaises(errors.BlockDeviceError, parse_function,
>> +                      self.plain_output_new_extra_matches, self.volume_name)
>> +    self.assertRaises(errors.BlockDeviceError, parse_function,
>> +                      self.plain_output_old_extra_matches, self.volume_name)
>> +    self.assertRaises(errors.BlockDeviceError, parse_function,
>> +                      self.output_invalid, self.volume_name)
>>
>>  class TestComputeWrongFileStoragePathsInternal(unittest.TestCase):
>>    def testPaths(self):
>> --
>> 1.7.10.4
>>
>
>
>
> --
> Guido Trotter
> Ganeti engineering
> Google Germany



--
Guido Trotter
Ganeti engineering
Google Germany

Reply via email to