Merge pull request #1409 from terrelln/tsan-dict
Add TSAN dictionary tests
This commit is contained in:
commit
a801ba643c
@ -28,7 +28,7 @@ matrix:
|
|||||||
- env: Cmd='make gcc6install libc6install
|
- env: Cmd='make gcc6install libc6install
|
||||||
&& make clean && CC=gcc-6 CFLAGS=-m32 make uasan-fuzztest'
|
&& make clean && CC=gcc-6 CFLAGS=-m32 make uasan-fuzztest'
|
||||||
- env: Cmd='make clang38install && CC=clang-3.8 make clean msan-fuzztest'
|
- env: Cmd='make clang38install && CC=clang-3.8 make clean msan-fuzztest'
|
||||||
- env: Cmd='make clang38install && CC=clang-3.8 make clean tsan-test-zstream'
|
- env: Cmd='make clang38install && CC=clang-3.8 make clean tsan-fuzztest'
|
||||||
|
|
||||||
- env: Cmd='make -j uasanregressiontest
|
- env: Cmd='make -j uasanregressiontest
|
||||||
&& make clean && make -j msanregressiontest'
|
&& make clean && make -j msanregressiontest'
|
||||||
|
@ -88,8 +88,8 @@ static void* POOL_thread(void* opaque) {
|
|||||||
ctx->numThreadsBusy++;
|
ctx->numThreadsBusy++;
|
||||||
ctx->queueEmpty = ctx->queueHead == ctx->queueTail;
|
ctx->queueEmpty = ctx->queueHead == ctx->queueTail;
|
||||||
/* Unlock the mutex, signal a pusher, and run the job */
|
/* Unlock the mutex, signal a pusher, and run the job */
|
||||||
ZSTD_pthread_mutex_unlock(&ctx->queueMutex);
|
|
||||||
ZSTD_pthread_cond_signal(&ctx->queuePushCond);
|
ZSTD_pthread_cond_signal(&ctx->queuePushCond);
|
||||||
|
ZSTD_pthread_mutex_unlock(&ctx->queueMutex);
|
||||||
|
|
||||||
job.function(job.opaque);
|
job.function(job.opaque);
|
||||||
|
|
||||||
|
@ -897,6 +897,34 @@ static int basicUnitTests(U32 seed, double compressibility)
|
|||||||
if (ZDICT_isError(dictSize)) goto _output_error;
|
if (ZDICT_isError(dictSize)) goto _output_error;
|
||||||
DISPLAYLEVEL(3, "OK, created dictionary of size %u \n", (U32)dictSize);
|
DISPLAYLEVEL(3, "OK, created dictionary of size %u \n", (U32)dictSize);
|
||||||
|
|
||||||
|
DISPLAYLEVEL(3, "test%3i : Multithreaded COVER dictBuilder : ", testNb++);
|
||||||
|
{ U32 u; for (u=0; u<nbSamples; u++) samplesSizes[u] = sampleUnitSize; }
|
||||||
|
{ ZDICT_cover_params_t coverParams;
|
||||||
|
memset(&coverParams, 0, sizeof(coverParams));
|
||||||
|
coverParams.steps = 8;
|
||||||
|
coverParams.nbThreads = 4;
|
||||||
|
dictSize = ZDICT_optimizeTrainFromBuffer_cover(
|
||||||
|
dictBuffer, dictBufferCapacity,
|
||||||
|
CNBuffer, samplesSizes, nbSamples,
|
||||||
|
&coverParams);
|
||||||
|
if (ZDICT_isError(dictSize)) goto _output_error;
|
||||||
|
}
|
||||||
|
DISPLAYLEVEL(3, "OK, created dictionary of size %u \n", (U32)dictSize);
|
||||||
|
|
||||||
|
DISPLAYLEVEL(3, "test%3i : Multithreaded FASTCOVER dictBuilder : ", testNb++);
|
||||||
|
{ U32 u; for (u=0; u<nbSamples; u++) samplesSizes[u] = sampleUnitSize; }
|
||||||
|
{ ZDICT_fastCover_params_t fastCoverParams;
|
||||||
|
memset(&fastCoverParams, 0, sizeof(fastCoverParams));
|
||||||
|
fastCoverParams.steps = 8;
|
||||||
|
fastCoverParams.nbThreads = 4;
|
||||||
|
dictSize = ZDICT_optimizeTrainFromBuffer_fastCover(
|
||||||
|
dictBuffer, dictBufferCapacity,
|
||||||
|
CNBuffer, samplesSizes, nbSamples,
|
||||||
|
&fastCoverParams);
|
||||||
|
if (ZDICT_isError(dictSize)) goto _output_error;
|
||||||
|
}
|
||||||
|
DISPLAYLEVEL(3, "OK, created dictionary of size %u \n", (U32)dictSize);
|
||||||
|
|
||||||
DISPLAYLEVEL(3, "test%3i : check dictID : ", testNb++);
|
DISPLAYLEVEL(3, "test%3i : check dictID : ", testNb++);
|
||||||
dictID = ZDICT_getDictID(dictBuffer, dictSize);
|
dictID = ZDICT_getDictID(dictBuffer, dictSize);
|
||||||
if (dictID==0) goto _output_error;
|
if (dictID==0) goto _output_error;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user