darrenldl / blockyarchive Goto Github PK
View Code? Open in Web Editor NEWBlocky archive - multithreaded archiver offering bit rot protection and sector level recoverability
License: MIT License
Blocky archive - multithreaded archiver offering bit rot protection and sector level recoverability
License: MIT License
Improve code coverage of the following files via internal tests
file_utils.rs
integer_utils.rs
misc_utils.rs
multihash.rs
rs_codec/encoder.rs
rs_codec/repairer.rs
sbx_block/header.rs
sbx_block/metadata.rs
sbx_block/mod.rs
sbx_specs.rs
time_utils.rs
Other files like *_core.rs
, cli_*.rs
, and functions that operate on files or require interaction with FS/OS are tested for code coverage by running debug binary through kcov with arguments attached
e.g. kcov --verify ... rsbx ...
. This is tracked by issue #58.
Namely to avoid running out of disk space in travis vm
Update from 0.2 to 0.3
The file size calculatioin function fails to take burst gaps between metadata blocks into account.
For non RS enabled SBX versions, rsbx encode --no-meta ...
will leave a blank spot in place of the metadata block.
Fixing this will require changing the SBX block write index calculation function.
Display after file size
Currently when RS is enabled, encode::encode_file
keeps track of whether the current block set is full or not at the end of loop to decide whether to write data padding blocks.
This responsibility should be moved to rs_codec::encoder
, with methods exposing number of empty slots, etc, to reduce work not directly related to encoding in encode_core
.
Metadata blocks are counted twice, once for dummy write and one for final actual write
It mentions reading from log file, but show mode does not use log file, only rescue mode does.
rb on crates.io only supports single producer single consumer,
but ideally a multi producer and mutli consumer queue is used.
Say things like
"The configuration allows the container to survive up to {} burst SBX block errors, and each burst error may be up to {} blocks in size.", 1 + parity_shards, burst
Namely guessing procedure will only guess up to 1000.
If the level used during encoding is higher than 1000 then rsbx will make an incorrect guess.
Using the flag will cause the encode
subcommand to display information then exit.
Information to display
This should test all 6 versions.
Example
["test", "/"]
should give "test" instead of "test/"Fix:
Invoke RS codec at the end of loop in repair mode to try to repair the last set of missing blocks
E.g. rsbx calc 0 --no-meta
should show metadata block count to be 0 instead of 1
Use either afl or honggfuzz
calc_required_len_and_seek_to_from_byte_range_inc calculation
of seek_to
may exceed last_possible_pos
Run rsbx through kcov for coverage of the following modes
It should provide the following info
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.