blob: a1ef838e937ea3658b611165612553950b854447 [file] [log] [blame]
// Copyright 2023 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "load-tests.h"
namespace ld::testing {
namespace {
TYPED_TEST(LdLoadTests, PassiveAbiBasic) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Load("passive-abi-basic"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
TYPED_TEST(LdLoadTests, PassiveAbiRdebug) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Load("passive-abi-rdebug"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
TYPED_TEST(LdLoadTests, PassiveAbiPreinitArray) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Load("passive-abi-preinit-array"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
TYPED_TEST(LdLoadTests, PassiveAbiStackSize) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Load("passive-abi-stack-size"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
TYPED_TEST(LdLoadTests, PassiveAbiManyDeps) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Needed({
"libld-dep-a.so",
"libld-dep-b.so",
"libld-dep-f.so",
"libld-dep-c.so",
"libld-dep-d.so",
"libld-dep-e.so",
}));
ASSERT_NO_FATAL_FAILURE(this->Load("passive-abi-many-deps"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
TYPED_TEST(LdLoadTests, InitFini) {
constexpr int64_t kReturnValue = 17;
ASSERT_NO_FATAL_FAILURE(this->Init());
ASSERT_NO_FATAL_FAILURE(this->Load("init-fini"));
EXPECT_EQ(this->Run(), kReturnValue);
this->ExpectLog("");
}
} // namespace
} // namespace ld::testing