diff options
Diffstat (limited to 'gold/testsuite/object_unittest.cc')
-rw-r--r-- | gold/testsuite/object_unittest.cc | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/gold/testsuite/object_unittest.cc b/gold/testsuite/object_unittest.cc index e95ea32..9b03425 100644 --- a/gold/testsuite/object_unittest.cc +++ b/gold/testsuite/object_unittest.cc @@ -34,12 +34,14 @@ using namespace gold; // Test basic Object functionality. +template<int size, bool big_endian> bool -Object_test(Test_report*) +Sized_object_test(const unsigned char* test_file, unsigned int test_file_size, + Target* target_test_pointer) { - Input_file input_file("test.o", test_file_1, test_file_1_size); + Input_file input_file("test.o", test_file, test_file_size); Object* object = make_elf_object("test.o", &input_file, 0, - test_file_1, test_file_1_size); + test_file, test_file_size); CHECK(object->name() == "test.o"); CHECK(!object->is_dynamic()); CHECK(object->target() == target_test_pointer); @@ -56,6 +58,42 @@ Object_test(Test_report*) return true; } +bool +Object_test(Test_report*) +{ + int fail = 0; + +#ifdef HAVE_TARGET_32_LITTLE + if (!Sized_object_test<32, false>(test_file_1_32_little, + test_file_1_size_32_little, + target_test_pointer_32_little)) + ++fail; +#endif + +#ifdef HAVE_TARGET_32_BIG + if (!Sized_object_test<32, true>(test_file_1_32_big, + test_file_1_size_32_big, + target_test_pointer_32_big)) + ++fail; +#endif + +#ifdef HAVE_TARGET_64_LITTLE + if (!Sized_object_test<64, false>(test_file_1_64_little, + test_file_1_size_64_little, + target_test_pointer_64_little)) + ++fail; +#endif + +#ifdef HAVE_TARGET_64_BIG + if (!Sized_object_test<64, true>(test_file_1_64_big, + test_file_1_size_64_big, + target_test_pointer_64_big)) + ++fail; +#endif + + return fail == 0; +} + Register_test object_register("Object", Object_test); } // End namespace gold_testsuite. |