Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_rrsl_component_length_root():
assert(pycdlib.rockridge.RRSLRecord.Component.length(b'/') == 2)
curr_sl.set_last_component_continued()
curr_sl = RRSLRecord()
curr_sl.new()
self.ce_entries.sl_records.append(curr_sl)
curr_comp_area_length = RRSLRecord.maximum_component_area_length()
if self.dr_entries.ce_record is not None:
self.dr_entries.ce_record.add_record(sl_rec_header_len)
sl_in_dr = False
if special:
complen = minimum
length = 0
compslice = comp
else:
complen = RRSLRecord.Component.length(comp[offset:])
if complen > curr_comp_area_length:
length = curr_comp_area_length - 2
else:
length = complen
compslice = comp[offset:offset + length]
curr_sl.add_component(compslice)
if sl_in_dr:
curr_dr_len += RRSLRecord.Component.length(compslice)
else:
if self.dr_entries.ce_record is not None:
self.dr_entries.ce_record.add_record(RRSLRecord.Component.length(compslice))
offset += length
compslice = comp
else:
complen = RRSLRecord.Component.length(comp[offset:])
if complen > curr_comp_area_length:
length = curr_comp_area_length - 2
else:
length = complen
compslice = comp[offset:offset + length]
curr_sl.add_component(compslice)
if sl_in_dr:
curr_dr_len += RRSLRecord.Component.length(compslice)
else:
if self.dr_entries.ce_record is not None:
self.dr_entries.ce_record.add_record(RRSLRecord.Component.length(compslice))
offset += length
curr_comp_area_length = curr_comp_area_length - length - 2
if special:
done = True
else:
if offset >= len(comp):
done = True
return curr_dr_len
def length(symlink_components):
# type: (List[bytes]) -> int
'''
Static method to return the length of the Rock Ridge Symbolic Link
record.
Parameters:
symlink_components - A list containing a string for each of the
symbolic link components.
Returns:
The length of this record in bytes.
'''
length = RRSLRecord.header_length()
for comp in symlink_components:
length += RRSLRecord.Component.length(comp)
return length
comp = b'/'
special = True
mincomp = comp
elif comp == b'.':
special = True
mincomp = comp
elif comp == b'..':
special = True
mincomp = comp
else:
mincomp = b'a'
offset = 0
done = False
while not done:
minimum = RRSLRecord.Component.length(mincomp)
if minimum > curr_comp_area_length:
# There wasn't enough room in the last SL record
# for more data. Set the 'continued' flag on the old
# SL record, and then create a new one.
curr_sl.set_continued()
if offset != 0:
# If we need to continue this particular
# *component* in the next SL record, then we
# also need to mark the curr_sl's last component
# header as continued.
curr_sl.set_last_component_continued()
curr_sl = RRSLRecord()
curr_sl.new()
self.ce_entries.sl_records.append(curr_sl)
curr_comp_area_length = RRSLRecord.maximum_component_area_length()