Comments (9)
@zhiyuan-zhu, thanks for proposal to add test cases. I agree the crc update test and sizes could be improved. The update test could take random fragment sizes for example.
I'm not sure if reading data from a file will help since the program flow is completely feed-forward, the control flow of the program doesn't depend on the data. However we could model such as in igzip_rand_test.c where the data is either synthetically generated or taken from a file if provided.
Also I don't think adding the table-driven comparisons in the test will speed up the tests. The reference functions are much slower, will dominate the time of the tests, and must be performed anyway. Adding another comparison will just slow the tests down and is really unnecessary if we also run the noarch tests.
from isa-l.
@gbtucker, thanks your suggestions, I will redesign this proposal. For "reading data from a file", I will refer to igzip_rand_test.c's design.
I would like to create a new directory named: crc_stability_test in the crc/ directory, let this new test case not affect the original test case and as an option for users and developers. So the default original test case will still guarantee the correctness of the basic functions, this stability test case will just compare table-driven version with multi-binary version (not basic bit-wise version).
from isa-l.
@gbtucker, refine the proposal.
- Create a new directory "crc_stability" under the crc/ directory for this new stability test case.
- Using a longer buffer size.
- Compare table-driven version with multi-binary version crc algorithm, the existing test case as basic functionally test, and this test case will refer to the existing test case.
- Provides the ability to read data from files as an option for command line arguments
Would you like to accept this proposal or have any other suggestions? thanks!
from isa-l.
@zhiyuan-zhu I suggest we concentrate on test cases to improve coverage and not more comparisons. I think more cases and longer buffer sizes can still fit in the current "check" test. If test runtime is an issue then it can move to an extended test unit_tests +=
No need to make a new category and or directory. If we keep the test to compare just reference vs. multi-binary then we can get more comparisons by running on lots of arch, which we need to do anyway, and the noarch check, which we already do. I suggest we improve incrementally by adding one new testcase at a time to the existing test. New tests can be parameterized by size, dataset, etc. and run multiple times if need be.
from isa-l.
@gbtucker Thanks a lot, I will refine this proposal soon :).
from isa-l.
@gbtucker refine the proposal.
- Enhance the strength of existing test cases.
- Using a longer buffer size.
- Extended test used "unit_tests +=" for Compare table-driven version with multi-binary version crc algorithm.
- Provides the ability to read data from files as an option for command line arguments.
- Parameterized by size, dataset, run multiple times.
Do you have any other suggestions?
from isa-l.
@zhiyuan-zhu, I like 1, 2, & 5. Let's do those first. I'm not sure 3 & 4 add much.
from isa-l.
@gbtucker Thanks for your kindly reply, I will arrange a more detailed design document follow the blew items.
- Enhance the strength of existing test cases.
- Using a longer buffer size.
- Parameterized by size, dataset, run multiple times.
@cyb70289
from isa-l.
I have upload two documents,
- detailed-design-doc.md.txt for crc test case improve, detailed design document.
- perf-test-improve-proposal.md.txt for crc perf test improve proposal.
Would you please help to take a look at them, thanks.
detailed-design-doc.md.txt
perf-test-improve-proposal.md.txt
from isa-l.
Related Issues (20)
- Error in functional tests for ppc64le HOT 2
- Failed to load symbolec_init_tables HOT 3
- undefined reference to `ec_init_tables' HOT 2
- erasure_code/gf_vect_mul: If the value of len is not aligned with 32B, a non-zero value should be returned
- v2.31.0 tag not annotated HOT 2
- Failed to decompress gz file which has multi-header
- how use raid lib to recover lost data?
- ARM OSX build fails HOT 7
- raid: why does the simd version xor_gen not provide an entry for loop64?
- Windows build fails - yasm doesn't understand %use HOT 4
- If raid xor_gen passed-in array pointers is not aligned to 32B, what's the impact?
- Mention Julia language bindings HOT 7
- Make new release HOT 1
- AVX512 detection failed when cpu supports AVX512 HOT 3
- Does the ISAL library have an API compatible with Rocksdb CRC32C HOT 6
- why crc16_t10dif() may make mistakes but crc16_t10dif_copy() running OK in file storage test ?
- yasm-1.3.0 fails to compiler isa-l: error: unknown preprocessor directive `%use' HOT 1
- segfault in igzip_rand_test stateless test HOT 4
- Removal support for 32-bit x86 architecture
- Assembler support announcement for x86
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from isa-l.