blob: cc580a3a664264d0046db6ba0db1f23fe77c1663 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/* ========================================
Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license
======================================== */
/// @brief Linker Unit test, from the C++ unit to the final executable.
/// @author Amlal El Mahrouss
#include <gtest/gtest.h>
TEST(LinkerTest, BasicLinkTest) {
/// @note this is the driver, it will look for a .cc.pp (.pp stands for pre-processed)
auto expr = std::system("pef-amd64-cxxdrv sample/sample.cc");
EXPECT_TRUE(expr == 0) << "C++ Driver did not compile the easy C++ unit.";
expr = std::system("asm -asm:x64 sample/sample.cc.pp.masm");
EXPECT_TRUE(expr == 0) << "Assembler did not assemble the easy asm unit.";
expr = std::system("ld64 -amd64 sample/sample.cc.pp.obj -start __NECTI_main -output main.exec");
EXPECT_TRUE(expr == 0) << "Linker did not link the easy object.";
}
|