From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yerden Zhumabekov Subject: Re: [PATCH] app/test: add crc32 algorithms equivalence check Date: Wed, 25 Feb 2015 09:14:26 +0600 Message-ID: <54ED3E12.5010701@sts.kz> References: <1424781388-7485-1-git-send-email-e_zhumabekov@sts.kz> <20150224145734.GA9192@bricha3-MOBL3> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: Bruce Richardson Return-path: In-Reply-To: <20150224145734.GA9192@bricha3-MOBL3> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 24.02.2015 20:57, Bruce Richardson =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > +#define CRC32_ITERATIONS (1U << 16) > This test takes almost no time at all, so maybe we want to do a few mor= e > iterations e.g. 2^18 - 2^20.=20 Noted, I'll put (1U << 20). >> + printf("# CRC32 implementations equivalence test\n"); >> + for (i =3D 0; i < CRC32_ITERATIONS; i++) { >> + /* Randomizing data_len of data set */ >> + data_len =3D (size_t) (rte_rand() % sizeof(data64) + 1); > I suggest parenthesis around the % operation for clarity. Noted. >> + init_val =3D (uint32_t) rte_rand(); >> + >> + /* Fill the data set */ >> + for (j =3D 0; j < CRC32_DWORDS; j++) { >> + data64[j] =3D rte_rand(); >> + } > As a matter of style, we generally omit braces for single-statement loo= p bodies. Noted. >> + >> + /* Calculate software CRC32 */ >> + rte_hash_crc_set_alg(CRC32_SW); >> + hash_val =3D 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 !=3D rte_hash_crc(data64, data_len, init_val)) { >> + res =3D -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 =3D=3D CRC32_ITERATIONS ? 0 : -1= ", making > use of the fact that you can check i to detect early termination on err= or. Noted; then I suggest I'll print out test data which caused the break as well. It might be handy for further investigation. --=20 Sincerely, Yerden Zhumabekov State Technical Service Astana, KZ