/[rdiff-backup]/rdiff-backup/testing/metadatatest.py
ViewVC logotype

Diff of /rdiff-backup/testing/metadatatest.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by bescoto, Mon Jun 30 03:00:18 2003 UTC revision 1.7 by bescoto, Thu Nov 3 22:40:04 2005 UTC
# Line 60  class MetadataTest(unittest.TestCase): Line 60  class MetadataTest(unittest.TestCase):
60          def write_metadata_to_temp(self):          def write_metadata_to_temp(self):
61                  """If necessary, write metadata of bigdir to file metadata.gz"""                  """If necessary, write metadata of bigdir to file metadata.gz"""
62                  global tempdir                  global tempdir
63                  temprp = tempdir.append("metadata.gz")                  temprp = tempdir.append("mirror_metadata.2005-11-03T14:51:06-06:00.snapshot.gz")
64                  if temprp.lstat(): return temprp                  if temprp.lstat(): return temprp
65    
66                  self.make_temp()                  self.make_temp()
# Line 68  class MetadataTest(unittest.TestCase): Line 68  class MetadataTest(unittest.TestCase):
68                  rpath_iter = selection.Select(rootrp).set_iter()                  rpath_iter = selection.Select(rootrp).set_iter()
69    
70                  start_time = time.time()                  start_time = time.time()
71                  MetadataFile.open_file(temprp)                  mf = MetadataFile(temprp, 'w')
72                  for rp in rpath_iter: MetadataFile.write_object(rp)                  for rp in rpath_iter: mf.write_object(rp)
73                  MetadataFile.close_file()                  mf.close()
74                  print "Writing metadata took %s seconds" % (time.time() - start_time)                  print "Writing metadata took %s seconds" % (time.time() - start_time)
75                  return temprp                  return temprp
76    
77          def testSpeed(self):          def testSpeed(self):
78                  """Test testIterator on 10000 files"""                  """Test testIterator on 10000 files"""
79                  temprp = self.write_metadata_to_temp()                  temprp = self.write_metadata_to_temp()
80                  MetadataFile._rp = temprp                  mf = MetadataFile(temprp, 'r')
81                                    
82                  start_time = time.time(); i = 0                  start_time = time.time(); i = 0
83                  for rorp in MetadataFile.get_objects(): i += 1                  for rorp in mf.get_objects(): i += 1
84                  print "Reading %s metadata entries took %s seconds." % \                  print "Reading %s metadata entries took %s seconds." % \
85                            (i, time.time() - start_time)                            (i, time.time() - start_time)
86    
# Line 102  class MetadataTest(unittest.TestCase): Line 102  class MetadataTest(unittest.TestCase):
102    
103                  """                  """
104                  temprp = self.write_metadata_to_temp()                  temprp = self.write_metadata_to_temp()
105                  MetadataFile._rp = temprp                  mf = MetadataFile(temprp, 'r')
106                  start_time = time.time(); i = 0                  start_time = time.time(); i = 0
107                  for rorp in MetadataFile.get_objects(("subdir3", "subdir10")): i += 1                  for rorp in mf.get_objects(("subdir3", "subdir10")): i += 1
108                  print "Reading %s metadata entries took %s seconds." % \                  print "Reading %s metadata entries took %s seconds." % \
109                            (i, time.time() - start_time)                            (i, time.time() - start_time)
110                  assert i == 51                  assert i == 51
# Line 112  class MetadataTest(unittest.TestCase): Line 112  class MetadataTest(unittest.TestCase):
112          def test_write(self):          def test_write(self):
113                  """Test writing to metadata file, then reading back contents"""                  """Test writing to metadata file, then reading back contents"""
114                  global tempdir                  global tempdir
115                  temprp = tempdir.append("write_test.gz")                  temprp = tempdir.append("mirror_metadata.2005-11-03T12:51:06-06:00.snapshot.gz")
116                  if temprp.lstat(): temprp.delete()                  if temprp.lstat(): temprp.delete()
117    
118                  self.make_temp()                  self.make_temp()
# Line 123  class MetadataTest(unittest.TestCase): Line 123  class MetadataTest(unittest.TestCase):
123                  rps = map(rootrp.append, dirlisting)                  rps = map(rootrp.append, dirlisting)
124    
125                  assert not temprp.lstat()                  assert not temprp.lstat()
126                  MetadataFile.open_file(temprp)                  write_mf = MetadataFile(temprp, 'w')
127                  for rp in rps: MetadataFile.write_object(rp)                  for rp in rps: write_mf.write_object(rp)
128                  MetadataFile.close_file()                  write_mf.close()
129                  assert temprp.lstat()                  assert temprp.lstat()
130    
131                  reread_rps = list(MetadataFile.get_objects())                  reread_rps = list(MetadataFile(temprp, 'r').get_objects())
132                  assert len(reread_rps) == len(rps), (len(reread_rps), len(rps))                  assert len(reread_rps) == len(rps), (len(reread_rps), len(rps))
133                  for i in range(len(reread_rps)):                  for i in range(len(reread_rps)):
134                          assert reread_rps[i] == rps[i], i                          assert reread_rps[i] == rps[i], i
135    
136            def test_patch(self):
137                    """Test combining 3 iters of metadata rorps"""
138                    self.make_temp()
139                    os.system('cp -a testfiles/various_file_types/* ' + tempdir.path)
140    
141                    rp1 = tempdir.append('regular_file')
142                    rp2 = tempdir.append('subdir')
143                    rp3 = rp2.append('subdir_file')
144                    rp4 = tempdir.append('test')
145    
146                    rp1new = tempdir.append('regular_file')
147                    rp1new.chmod(0)
148                    zero = rpath.RORPath(('test',))
149    
150                    current = [rp1, rp2, rp3]
151                    diff1 = [rp1, rp4]
152                    diff2 = [rp1new, rp2, zero]
153    
154                    output = patch(iter(current), iter(diff1), iter(diff2))
155                    out1 = output.next()
156                    assert out1 is rp1new, out1
157                    out2 = output.next()
158                    assert out2 is rp2, out2
159                    out3 = output.next()
160                    assert out3 is rp3, out3
161                    self.assertRaises(StopIteration, output.next)
162    
163    
164  if __name__ == "__main__": unittest.main()  if __name__ == "__main__": unittest.main()

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26