Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 282aae3

Browse files
committed
chore: fix unit tests
1 parent cf1a2ca commit 282aae3

File tree

4 files changed

+63
-114
lines changed

4 files changed

+63
-114
lines changed

engine/extensions/local-engine/local_engine.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct ServerAddress {
2222
std::string ai_prompt;
2323
std::string system_prompt;
2424
};
25+
2526
class LocalEngine : public EngineI {
2627
public:
2728
LocalEngine(EngineService& engine_service, TaskQueue& q)

engine/services/engine_service.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class EngineService : public EngineServiceI {
4545
using EngineVariant = github_release_utils::GitHubAsset;
4646

4747
struct EngineInfo {
48-
std::unique_ptr<cortex_cpp::dylib> dl;
4948
EngineV engine;
5049
};
5150

engine/test/components/test_engine_matcher_utils.cc

Lines changed: 53 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -6,134 +6,74 @@
66
class EngineMatcherUtilsTestSuite : public ::testing::Test {
77
protected:
88
const std::vector<std::string> cortex_llamacpp_variants{
9-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx-cuda-11-7.tar.gz",
10-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx-cuda-12-0.tar.gz",
11-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx.tar.gz",
12-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx2-cuda-11-7.tar.gz",
13-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx2-cuda-12-0.tar.gz",
14-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx2.tar.gz",
15-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx512-cuda-11-7.tar.gz",
16-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx512-cuda-12-0.tar.gz",
17-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx512.tar.gz",
18-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-noavx-cuda-11-7.tar.gz",
19-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-noavx-cuda-12-0.tar.gz",
20-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-noavx.tar.gz",
21-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-vulkan.tar.gz",
22-
"cortex.llamacpp-0.1.43-linux-arm64.tar.gz",
23-
"cortex.llamacpp-0.1.25-25.08.24-mac-amd64.tar.gz",
24-
"cortex.llamacpp-0.1.25-25.08.24-mac-arm64.tar.gz",
25-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx-cuda-11-7.tar.gz",
26-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx-cuda-12-0.tar.gz",
27-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx.tar.gz",
28-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx2-cuda-11-7.tar.gz",
29-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx2-cuda-12-0.tar.gz",
30-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx2.tar.gz",
31-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx512-cuda-11-7.tar.gz",
32-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx512-cuda-12-0.tar.gz",
33-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx512.tar.gz",
34-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-noavx-cuda-11-7.tar.gz",
35-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-noavx-cuda-12-0.tar.gz",
36-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-noavx.tar.gz",
37-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-vulkan.tar.gz",
9+
"llama-b4920-bin-ubuntu-arm64.zip",
10+
"llama-b4920-bin-linux-avx-cuda-cu11.7-x64.tar.gz",
11+
"llama-b4920-bin-linux-avx-cuda-cu12.0-x64.tar.gz",
12+
"llama-b4920-bin-linux-avx-x64.tar.gz",
13+
"llama-b4920-bin-linux-avx2-cuda-cu11.7-x64.tar.gz",
14+
"llama-b4920-bin-linux-avx2-cuda-cu12.0-x64.tar.gz",
15+
"llama-b4920-bin-ubuntu-x64.tar.gz",
16+
"llama-b4920-bin-linux-avx512-cuda-cu11.7-x64.tar.gz",
17+
"llama-b4920-bin-linux-avx512-cuda-cu12.0-x64.tar.gz",
18+
"llama-b4920-bin-linux-avx512-x64.tar.gz",
19+
"llama-b4920-bin-linux-noavx-cuda-cu11.7-x64.tar.gz",
20+
"llama-b4920-bin-linux-noavx-cuda-cu12.0-x64.tar.gz",
21+
"llama-b4920-bin-linux-noavx-x64.tar.gz",
22+
"llama-b4920-bin-ubuntu-vulkan-x64.tar.gz",
23+
"llama-b4920-bin-macos-arm64.zip",
24+
"llama-b4920-bin-macos-x64.zip",
25+
"llama-b4920-bin-windows-amd64-avx-cuda-11-7.tar.gz",
26+
"llama-b4920-bin-windows-amd64-avx-cuda-12-0.tar.gz",
27+
"llama-b4920-bin-win-avx-x64.zip",
28+
"llama-b4920-bin-windows-amd64-avx2-cuda-11-7.tar.gz",
29+
"llama-b4920-bin-windows-amd64-avx2-cuda-12-0.tar.gz",
30+
"llama-b4920-bin-win-avx2-x64.zip",
31+
"llama-b4920-bin-windows-amd64-avx512-cuda-11-7.tar.gz",
32+
"llama-b4920-bin-windows-amd64-avx512-cuda-12-0.tar.gz",
33+
"llama-b4920-bin-win-avx512-x64.zip",
34+
"llama-b4920-bin-windows-amd64-noavx-cuda-11-7.tar.gz",
35+
"llama-b4920-bin-windows-amd64-noavx-cuda-12-0.tar.gz",
36+
"llama-b4920-bin-win-noavx-x64.zip",
37+
"llama-b4920-bin-win-vulkan-x64.zip",
3838
};
39-
40-
const std::vector<std::string> cortex_tensorrt_variants{
41-
"cortex.tensorrt-llm-0.0.9-linux-cuda-12-4.tar.gz",
42-
"cortex.tensorrt-llm-0.0.9-windows-cuda-12-4.tar.gz"};
43-
44-
const std::vector<std::string> cortex_onnx_variants{
45-
"cortex.onnx-0.1.7-windows-amd64.tar.gz"};
4639
};
4740

48-
TEST_F(EngineMatcherUtilsTestSuite, TestValidateOnnx) {
49-
50-
{
51-
auto expect_matched_variant = cortex_onnx_variants[0];
52-
auto result = engine_matcher_utils::ValidateOnnx(cortex_onnx_variants,
53-
"windows", "amd64");
54-
55-
EXPECT_EQ(result, expect_matched_variant);
56-
}
57-
58-
{
59-
// should return an empty variant because no variant matched
60-
auto expect_matched_variant{""};
61-
auto windows_arm_result = engine_matcher_utils::ValidateOnnx(
62-
cortex_onnx_variants, "windows", "arm");
63-
auto mac_arm64_result = engine_matcher_utils::ValidateOnnx(
64-
cortex_onnx_variants, "mac", "arm64");
65-
66-
EXPECT_EQ(windows_arm_result, expect_matched_variant);
67-
EXPECT_EQ(mac_arm64_result, expect_matched_variant);
68-
}
69-
}
70-
71-
TEST_F(EngineMatcherUtilsTestSuite, TestValidateTensorrt) {
72-
73-
{
74-
auto windows_expect_matched_variant{cortex_tensorrt_variants[1]};
75-
auto linux_expect_matched_variant{cortex_tensorrt_variants[0]};
76-
auto windows{"windows"};
77-
auto linux{"linux"};
78-
auto cuda_version{"12.4"};
79-
auto windows_result = engine_matcher_utils::ValidateTensorrtLlm(
80-
cortex_tensorrt_variants, windows, cuda_version);
81-
auto linux_result = engine_matcher_utils::ValidateTensorrtLlm(
82-
cortex_tensorrt_variants, linux, cuda_version);
83-
84-
EXPECT_EQ(windows_result, windows_expect_matched_variant);
85-
EXPECT_EQ(linux_result, linux_expect_matched_variant);
86-
}
87-
88-
{ // macos is not supported
89-
auto os = "mac";
90-
auto cuda_version{"12.4"};
91-
92-
auto result = engine_matcher_utils::ValidateTensorrtLlm(
93-
cortex_tensorrt_variants, os, cuda_version);
94-
EXPECT_EQ(result, "");
95-
}
96-
}
97-
9841
TEST_F(EngineMatcherUtilsTestSuite, TestValidate) {
9942
{
100-
auto os{"windows"};
43+
auto os{"win"};
10144
auto cpu_arch{"amd64"};
10245
auto suitable_avx{"avx2"};
10346
auto cuda_version{"12.4"};
10447

10548
auto variant = engine_matcher_utils::Validate(
10649
cortex_llamacpp_variants, os, cpu_arch, suitable_avx, cuda_version);
10750

108-
EXPECT_EQ(
109-
variant,
110-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx2-cuda-12-0.tar.gz");
51+
EXPECT_EQ(variant, "llama-b4920-bin-windows-amd64-avx2-cuda-12-0.tar.gz");
11152
}
11253

11354
{
11455
auto os{"mac"};
115-
auto cpu_arch{"amd64"};
56+
auto cpu_arch{"x64"};
11657
auto suitable_avx{""};
11758
auto cuda_version{""};
11859

11960
auto variant = engine_matcher_utils::Validate(
12061
cortex_llamacpp_variants, os, cpu_arch, suitable_avx, cuda_version);
12162

122-
EXPECT_EQ(variant, "cortex.llamacpp-0.1.25-25.08.24-mac-amd64.tar.gz");
63+
EXPECT_EQ(variant, "llama-b4920-bin-macos-x64.zip");
12364
}
12465

12566
{
126-
auto os{"windows"};
127-
auto cpu_arch{"amd64"};
67+
auto os{"win"};
68+
auto cpu_arch{"x64"};
12869
auto suitable_avx{"avx2"};
12970
auto cuda_version{"10"};
13071

13172
auto variant = engine_matcher_utils::Validate(
13273
cortex_llamacpp_variants, os, cpu_arch, suitable_avx, cuda_version);
13374

13475
// fallback to no cuda version
135-
EXPECT_EQ(variant,
136-
"cortex.llamacpp-0.1.25-25.08.24-windows-amd64-avx2.tar.gz");
76+
EXPECT_EQ(variant, "llama-b4920-bin-win-avx2-x64.zip");
13777
}
13878

13979
{
@@ -145,30 +85,36 @@ TEST_F(EngineMatcherUtilsTestSuite, TestValidate) {
14585
auto variant = engine_matcher_utils::Validate(
14686
cortex_llamacpp_variants, os, cpu_arch, suitable_avx, cuda_version);
14787

148-
EXPECT_EQ(variant, "cortex.llamacpp-0.1.43-linux-arm64.tar.gz");
88+
EXPECT_EQ(variant, "llama-b4920-bin-ubuntu-arm64.zip");
14989
}
15090
}
15191

15292
TEST_F(EngineMatcherUtilsTestSuite, TestGetVersionAndArch) {
15393
{
154-
std::string variant =
155-
"cortex.llamacpp-0.1.25-25.08.24-linux-amd64-avx-cuda-11-7.tar.gz";
94+
std::string variant = "llama-b4920-bin-linux-avx-cuda-cu11.7-x64.tar.gz";
95+
auto [version, arch] = engine_matcher_utils::GetVersionAndArch(variant);
96+
EXPECT_EQ(version, "b4920");
97+
EXPECT_EQ(arch, "linux-avx-cuda-cu11.7-x64");
98+
}
99+
100+
{
101+
std::string variant = "llama-b4920-bin-ubuntu-arm64.zip";
156102
auto [version, arch] = engine_matcher_utils::GetVersionAndArch(variant);
157-
EXPECT_EQ(version, "v0.1.25-25.08.24");
158-
EXPECT_EQ(arch, "linux-amd64-avx-cuda-11-7");
103+
EXPECT_EQ(version, "b4920");
104+
EXPECT_EQ(arch, "ubuntu-arm64");
159105
}
160106

161107
{
162-
std::string variant = "cortex.llamacpp-0.1.25-windows-amd64-avx2.tar.gz";
108+
std::string variant = "llama-b4920-bin-win-avx2-x64.zip";
163109
auto [version, arch] = engine_matcher_utils::GetVersionAndArch(variant);
164-
EXPECT_EQ(version, "v0.1.25");
165-
EXPECT_EQ(arch, "windows-amd64-avx2");
110+
EXPECT_EQ(version, "b4920");
111+
EXPECT_EQ(arch, "win-avx2-x64");
166112
}
167113

168114
{
169-
std::string variant = "cortex.llamacpp-0.1.25-25.08.24-mac-amd64.tar.gz";
115+
std::string variant = "llama-b4920-bin-macos-x64.tar.gz";
170116
auto [version, arch] = engine_matcher_utils::GetVersionAndArch(variant);
171-
EXPECT_EQ(version, "v0.1.25-25.08.24");
172-
EXPECT_EQ(arch, "mac-amd64");
117+
EXPECT_EQ(version, "b4920");
118+
EXPECT_EQ(arch, "macos-x64");
173119
}
174120
}

engine/utils/engine_matcher_utils.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,18 @@ inline std::string Validate(const std::vector<std::string>& variants,
206206
inline std::pair<std::string, std::string> GetVersionAndArch(
207207
const std::string& file_name) {
208208
// Remove the file extension
209-
std::string base = file_name.substr(0, file_name.find("tar") - 1);
209+
std::string b = string_utils::RemoveSubstring(file_name, ".tar.gz");
210+
std::string base = string_utils::RemoveSubstring(b, ".zip");
210211

211212
size_t arch_pos = 0;
212-
if (base.find("windows") != std::string::npos) {
213-
arch_pos = base.find("-windows");
213+
if (base.find("win") != std::string::npos) {
214+
arch_pos = base.find("-bin-win");
214215
} else if (base.find("linux") != std::string::npos) {
215-
arch_pos = base.find("-linux");
216+
arch_pos = base.find("-bin-linux");
217+
} else if (base.find("ubuntu") != std::string::npos) {
218+
arch_pos = base.find("-bin-ubuntu");
216219
} else {
217-
arch_pos = base.find("-mac");
220+
arch_pos = base.find("-bin-macos");
218221
}
219222

220223
// Extract architecture part
@@ -223,6 +226,6 @@ inline std::pair<std::string, std::string> GetVersionAndArch(
223226
// Extract version part
224227
size_t v_pos = base.find_first_of('-');
225228
auto version = base.substr(v_pos + 1, arch_pos - v_pos - 1);
226-
return std::pair("v" + version, arch);
229+
return std::pair(version, string_utils::RemoveSubstring(arch, "bin-"));
227230
}
228231
} // namespace engine_matcher_utils

0 commit comments

Comments
 (0)