From b8ed25c9d6e1ea35023668e4fd85cdfcf41dd81e Mon Sep 17 00:00:00 2001 From: Claudio Scheer Date: Wed, 27 May 2020 09:10:31 -0300 Subject: [PATCH] Update LockFree list tests --- test/hdf/lock-free-list.h5 | Bin 20136 -> 20152 bytes test/plots/LockFreeListAverageListSize.pdf | Bin 14397 -> 14405 bytes test/plots/LockFreeListThroughput.pdf | Bin 15384 -> 15392 bytes test/raw-data/lock-free-list/1/100-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/100-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/100-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/100-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/100-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/100-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/1000-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/10000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/10000-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/10000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/10000-4.txt | 28 +++++++++--------- test/raw-data/lock-free-list/1/10000-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/1/10000-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/100-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/1000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/1000-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/1000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/1000-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/1000-6.txt | 28 +++++++++--------- test/raw-data/lock-free-list/2/1000-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/2/10000-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/100-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/100-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/100-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/100-4.txt | 28 +++++++++--------- test/raw-data/lock-free-list/3/100-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/100-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/1000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/1000-12.txt | 28 +++++++++--------- test/raw-data/lock-free-list/3/1000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/1000-4.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/1000-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/1000-8.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/10000-10.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/10000-12.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/10000-2.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/10000-4.txt | 28 +++++++++--------- test/raw-data/lock-free-list/3/10000-6.txt | 30 ++++++++++---------- test/raw-data/lock-free-list/3/10000-8.txt | 30 ++++++++++---------- test/scripts/run-tests.sh | 2 +- 58 files changed, 806 insertions(+), 806 deletions(-) diff --git a/test/hdf/lock-free-list.h5 b/test/hdf/lock-free-list.h5 index 8c530e20efdc5ed1ded0f7e191db01dbdec29fa2..0919de90e22c487c89a041def69366597a6de472 100644 GIT binary patch delta 3618 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 delta 3690 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 VD?^?oLQ+Fv$wZW*BGudg^(SlJCSU*n diff --git a/test/plots/LockFreeListThroughput.pdf b/test/plots/LockFreeListThroughput.pdf index 68ac8cd5df3fa206d6084e0c9f3ca7737d03a6f6..0b30c67c7523e83f9212ca5623025c284d9ce8f0 100644 GIT binary patch delta 3039 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