aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMartyn Capewell <martyn.capewell@arm.com>2019-01-30 15:00:58 +0000
committerMartyn Capewell <martyn.capewell@arm.com>2019-01-31 10:56:07 +0000
commite24a6f4287f8c8975f0d2e0a3cea64d6c26ef7e7 (patch)
treebb9cd106eff63b60af02e3380b6de92521f7fd9e /test
parent37abcf22c9083f0f8201455f94c17a8e6c2db908 (diff)
Split more tests to speed up test.py
Split a fuzzing and literal pool test to reduce per-thread test time. After this change, no test instance takes longer than six seconds (on my desktop). Each test configuration now takes approximately 30 seconds. Change-Id: Ifbc69aa0596c7b62f875349e7d59a39861c871ee
Diffstat (limited to 'test')
-rw-r--r--test/aarch32/test-assembler-aarch32.cc22
-rw-r--r--test/aarch64/test-assembler-aarch64.cc5
2 files changed, 24 insertions, 3 deletions
diff --git a/test/aarch32/test-assembler-aarch32.cc b/test/aarch32/test-assembler-aarch32.cc
index 83134e61..0bb4bd69 100644
--- a/test/aarch32/test-assembler-aarch32.cc
+++ b/test/aarch32/test-assembler-aarch32.cc
@@ -3623,7 +3623,9 @@ TEST_T32(near_branch_fuzz) {
}
-TEST_T32(near_branch_and_literal_fuzz) {
+static void NearBranchAndLiteralFuzzHelper(InstructionSet isa,
+ int shard_count,
+ int shard_offset) {
SETUP();
START();
@@ -3641,6 +3643,7 @@ TEST_T32(near_branch_and_literal_fuzz) {
// sequence.
const int iterations = 128;
const int n_cases = 20;
+ VIXL_CHECK((iterations % shard_count) == 0);
int loop_count = 0;
__ Mov(r1, 0);
@@ -3670,7 +3673,7 @@ TEST_T32(near_branch_and_literal_fuzz) {
for (uint32_t window = 5; window < 14; window++) {
for (uint32_t ratio = 0; ratio < static_cast<uint32_t>(n_cases - window);
ratio++) {
- for (int iter = 0; iter < iterations; iter++) {
+ for (int iter = shard_offset; iter < iterations; iter += shard_count) {
Label fail;
Label end;
@@ -3889,6 +3892,21 @@ TEST_T32(near_branch_and_literal_fuzz) {
ASSERT_EQUAL_32(42, r4);
}
+TEST_T32(near_branch_and_literal_fuzz_0) {
+ NearBranchAndLiteralFuzzHelper(isa, 4, 0);
+}
+
+TEST_T32(near_branch_and_literal_fuzz_1) {
+ NearBranchAndLiteralFuzzHelper(isa, 4, 1);
+}
+
+TEST_T32(near_branch_and_literal_fuzz_2) {
+ NearBranchAndLiteralFuzzHelper(isa, 4, 2);
+}
+
+TEST_T32(near_branch_and_literal_fuzz_3) {
+ NearBranchAndLiteralFuzzHelper(isa, 4, 3);
+}
#ifdef VIXL_INCLUDE_TARGET_T32
TEST_NOASM(code_buffer_precise_growth) {
diff --git a/test/aarch64/test-assembler-aarch64.cc b/test/aarch64/test-assembler-aarch64.cc
index 45556081..1fdad525 100644
--- a/test/aarch64/test-assembler-aarch64.cc
+++ b/test/aarch64/test-assembler-aarch64.cc
@@ -1872,8 +1872,11 @@ static void TbzRangePoolLimitHelper(TestBranchSignature test_branch) {
}
}
-TEST(test_branch_limits_literal_pool_size) {
+TEST(test_branch_limits_literal_pool_size_tbz) {
TbzRangePoolLimitHelper(&MacroAssembler::Tbz);
+}
+
+TEST(test_branch_limits_literal_pool_size_tbnz) {
TbzRangePoolLimitHelper(&MacroAssembler::Tbnz);
}