#!/usr/bin/python "Test spiffs filesystem with a range of parameters" import spiffs class SpiffsInstr(spiffs.SpiffsCharsBack): "Keeps count of issued reads / writes / erases" def __init__(self, *args, **kwargs): self.reset_counters() supe = super(SpiffsInstr, self) self.super_read = supe.on_read self.super_write = supe.on_write self.super_erase = supe.on_erase supe.__init__(*args, **kwargs) def reset_counters(self): self.read_requests = [] self.write_requests = [] self.erase_requests = [] def on_read(self, addr, size): self.read_requests.append([addr, size]) return self.super_read(addr, size) def on_write(self, addr, data): self.write_requests.append([addr, len(data)]) return self.super_write(addr, data) def on_erase(self, addr, size): self.erase_requests.append([addr, size]) return self.super_erase(addr, size) # Physical parameters flash_size = 8*1024*1024 erase_size = 256 print "filesystem size =",flash_size header = "log_block_size","log_page_size","reads","read_bytes","writes","written_bytes" print '| %s |'%(' | '.join(header)) header2 = ['-'*len(x) for x in header] print '| %s |'%(' | '.join(header2)) for log2_log_block_size in range(14,19): log_block_size = 1<