Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/AppInstallerCLITests/NameNormalization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,13 @@ TEST_CASE("NameNorm_Architecture", "[name_norm]")
REQUIRE(normer.Normalize("Name x86", {}).Architecture() == Architecture::X86);
REQUIRE(normer.Normalize("Name x86_64", {}).Architecture() == Architecture::X64);
REQUIRE(normer.Normalize("Name (64 bit)", {}).Architecture() == Architecture::X64);
REQUIRE(normer.Normalize("Name arm32", {}).Architecture() == Architecture::Arm);
REQUIRE(normer.Normalize("Name arm64", {}).Architecture() == Architecture::Arm64);
REQUIRE(normer.Normalize("Name aarch64", {}).Architecture() == Architecture::Arm64);
REQUIRE(normer.Normalize("Name armadillo", {}).Architecture() == Architecture::Unknown);
REQUIRE(normer.Normalize("Name armadillo", {}).Name() == "Namearmadillo");
REQUIRE(normer.Normalize("ARM Compiler (x64)", {}).Architecture() == Architecture::X64);
REQUIRE(normer.Normalize("ARM Compiler (x64)", {}).Name() == "ARMCompiler");
REQUIRE(normer.Normalize("Name 32/64 bit", {}).Architecture() == Architecture::Unknown);
REQUIRE(normer.Normalize("Fox86", {}).Architecture() == Architecture::Unknown);
}
Expand Down
10 changes: 10 additions & 0 deletions src/AppInstallerCommonCore/NameNormalization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@ namespace AppInstaller::Utility
{
result = Architecture::X86;
}
else if (Remove(ArchitectureArm64, value))
{
result = Architecture::Arm64;
}
else if (Remove(ArchitectureArm, value))
{
result = Architecture::Arm;
}

return result;
}
Expand Down Expand Up @@ -242,6 +250,8 @@ namespace AppInstaller::Utility
// Architecture
Regex::Expression ArchitectureX32{ R"((?<=^|[^\p{L}\p{Nd}])(X32|X86)(?=\P{Nd}|$)(?:\sEDITION)?)", reOptions };
Regex::Expression ArchitectureX64{ R"((?<=^|[^\p{L}\p{Nd}])(X64|AMD64|X86([\p{Pd}\p{Pc}]64))(?=\P{Nd}|$)(?:\sEDITION)?)", reOptions };
Regex::Expression ArchitectureArm64{ R"((?<=^|[^\p{L}\p{Nd}])(ARM64|AARCH64)(?=\P{Nd}|$)(?:\sEDITION)?)", reOptions };
Regex::Expression ArchitectureArm{ R"((?<=^|[^\p{L}\p{Nd}])(ARM32)(?=\P{Nd}|$)(?:\sEDITION)?)", reOptions };
Regex::Expression Architecture32Bit{ R"((?<=^|[^\p{L}\p{Nd}])(32[\p{Pd}\p{Pc}\p{Z}]?BIT)S?(?:\sEDITION)?)", reOptions };
Regex::Expression Architecture64Bit{ R"((?<=^|[^\p{L}\p{Nd}])(64[\p{Pd}\p{Pc}\p{Z}]?BIT)S?(?:\sEDITION)?)", reOptions };
Regex::Expression Architecture32Or64Bit{ R"((?<=^|[^\p{L}\p{Nd}])((64[\\\/]32|32[\\\/]64)[\p{Pd}\p{Pc}\p{Z}]?BIT)S?(?:\sEDITION)?)", reOptions };
Expand Down
Loading