Skip to content

Commit fa78d79

Browse files
committed
test: make xpkg overlay assertion platform-aware
1 parent 5de87a0 commit fa78d79

1 file changed

Lines changed: 31 additions & 6 deletions

File tree

tests/unit/test_manifest.cpp

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import std;
44
import mcpp.manifest;
5+
import mcpp.platform;
56

67
TEST(Manifest, MinimalValid) {
78
constexpr auto src = R"(
@@ -219,27 +220,51 @@ package = {
219220
cflags = { "-DLINUX=1" },
220221
deps = { ["compat.x11"] = "1.8.13" },
221222
},
223+
macosx = {
224+
sources = { "*/src/cocoa.m" },
225+
include_dirs = { "*/src/macos" },
226+
cflags = { "-DMACOS=1" },
227+
deps = { ["compat.cocoa"] = "1.0.0" },
228+
},
222229
windows = {
223-
sources = { "*/src/win32.c" },
224-
cflags = { "-DWINDOWS=1" },
230+
sources = { "*/src/win32.c" },
231+
include_dirs = { "*/src/win32" },
232+
cflags = { "-DWINDOWS=1" },
233+
deps = { ["compat.win32"] = "1.0.0" },
225234
},
226235
},
227236
}
228237
)";
229238
auto m = mcpp::manifest::synthesize_from_xpkg_lua(src, "tinyc", "1.0.0");
230239
ASSERT_TRUE(m.has_value()) << m.error().format();
231240

241+
std::string expectedSource = "*/src/linux.c";
242+
std::string expectedInclude = "*/src/linux";
243+
std::string expectedCflag = "-DLINUX=1";
244+
std::string expectedDep = "compat.x11";
245+
if constexpr (mcpp::platform::is_macos) {
246+
expectedSource = "*/src/cocoa.m";
247+
expectedInclude = "*/src/macos";
248+
expectedCflag = "-DMACOS=1";
249+
expectedDep = "compat.cocoa";
250+
} else if constexpr (mcpp::platform::is_windows) {
251+
expectedSource = "*/src/win32.c";
252+
expectedInclude = "*/src/win32";
253+
expectedCflag = "-DWINDOWS=1";
254+
expectedDep = "compat.win32";
255+
}
256+
232257
ASSERT_EQ(m->modules.sources.size(), 2u);
233258
EXPECT_EQ(m->modules.sources[0], "*/src/common.c");
234-
EXPECT_EQ(m->modules.sources[1], "*/src/linux.c");
259+
EXPECT_EQ(m->modules.sources[1], expectedSource);
235260
ASSERT_EQ(m->buildConfig.includeDirs.size(), 2u);
236261
EXPECT_EQ(m->buildConfig.includeDirs[0], "*/include");
237-
EXPECT_EQ(m->buildConfig.includeDirs[1], "*/src/linux");
262+
EXPECT_EQ(m->buildConfig.includeDirs[1], expectedInclude);
238263
ASSERT_EQ(m->buildConfig.cflags.size(), 2u);
239264
EXPECT_EQ(m->buildConfig.cflags[0], "-DCOMMON=1");
240-
EXPECT_EQ(m->buildConfig.cflags[1], "-DLINUX=1");
265+
EXPECT_EQ(m->buildConfig.cflags[1], expectedCflag);
241266
EXPECT_EQ(m->dependencies.count("compat.base"), 1u);
242-
EXPECT_EQ(m->dependencies.count("compat.x11"), 1u);
267+
EXPECT_EQ(m->dependencies.count(expectedDep), 1u);
243268
}
244269

245270
TEST(SynthesizeFromXpkgLua, GeneratedFiles) {

0 commit comments

Comments
 (0)