[dpdk-dev] [PATCH] app/test: add crc32 algorithms equivalence check

Yerden Zhumabekov e_zhumabekov at sts.kz
Wed Feb 25 04:14:26 CET 2015


24.02.2015 20:57, Bruce Richardson пишет:
> +#define CRC32_ITERATIONS (1U << 16)
> This test takes almost no time at all, so maybe we want to do a few more
> iterations e.g. 2^18 - 2^20. 
Noted, I'll put (1U << 20).
>> +	printf("# CRC32 implementations equivalence test\n");
>> +	for (i = 0; i < CRC32_ITERATIONS; i++) {
>> +		/* Randomizing data_len of data set */
>> +		data_len = (size_t) (rte_rand() % sizeof(data64) + 1);
> I suggest parenthesis around the % operation for clarity.
Noted.
>> +		init_val = (uint32_t) rte_rand();
>> +
>> +		/* Fill the data set */
>> +		for (j = 0; j < CRC32_DWORDS; j++) {
>> +			data64[j] = rte_rand();
>> +		}
> As a matter of style, we generally omit braces for single-statement loop bodies.
Noted.
>> +
>> +		/* Calculate software CRC32 */
>> +		rte_hash_crc_set_alg(CRC32_SW);
>> +		hash_val = rte_hash_crc(data64, data_len, init_val);
>> +
>> +		/* Check against 4-byte-operand sse4.2 CRC32 if available */
>> +		rte_hash_crc_set_alg(CRC32_SSE42);
>> +		if (hash_val != rte_hash_crc(data64, data_len, init_val)) {
>> +			res = -1;
> I think you need a print statement here, stating that the test failed, and
> why exactly it failed.
> Also, rather than setting res to -1, you can just do a print and break, and
> change "return res" below to "return i == CRC32_ITERATIONS ? 0 : -1", making
> use of the fact that you can check i to detect early termination on error.

Noted; then I suggest I'll print out test data which caused the break as
well. It might be handy for further investigation.

-- 
Sincerely,

Yerden Zhumabekov
State Technical Service
Astana, KZ



More information about the dev mailing list