Skip to content

Commit 28df843

Browse files
[SYCL][LIT] Fix regex in select_device LIT test (#2690)
This patch adds two new special characters - ```[``` and ```]``` to select_device LIT test. An escape symbol will be added to these characters. This is because new OpenCL GPU runtime 20.42.18209 has such symbols in its device name, and regex generated by this test was w/o escape symbols for ```[``` and ```]```, which led to ```CL_DEVICE_NOT_FOUND``` error in run time.
1 parent 255f304 commit 28df843

File tree

1 file changed

+21
-34
lines changed

1 file changed

+21
-34
lines changed

sycl/test/config/select_device.cpp

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -76,28 +76,15 @@ struct DevDescT {
7676
std::string platVer;
7777
};
7878

79-
static void replaceSpecialCharacters(std::string &str) {
80-
std::string lparen("(");
81-
std::string rparen(")");
82-
std::string esclparen("\\(");
83-
std::string escrparen("\\)");
84-
std::string period(".");
85-
std::string escperiod("\\.");
86-
87-
size_t pos = 0;
88-
while ((pos = str.find(lparen, pos)) != std::string::npos) {
89-
str.replace(pos, lparen.size(), esclparen);
90-
pos += esclparen.size();
91-
}
92-
pos = 0;
93-
while ((pos = str.find(rparen, pos)) != std::string::npos) {
94-
str.replace(pos, rparen.size(), escrparen);
95-
pos += escrparen.size();
96-
}
97-
pos = 0;
98-
while ((pos = str.find(period, pos)) != std::string::npos) {
99-
str.replace(pos, period.size(), escperiod);
100-
pos += escperiod.size();
79+
static void addEscapeSymbolToSpecialCharacters(std::string &str) {
80+
std::vector<std::string> specialCharacters{"(", ")", "[", "]", "."};
81+
for (const auto &character : specialCharacters) {
82+
size_t pos = 0;
83+
while ((pos = str.find(character, pos)) != std::string::npos) {
84+
std::string modifiedCharacter("\\" + character);
85+
str.replace(pos, character.size(), modifiedCharacter);
86+
pos += modifiedCharacter.size();
87+
}
10188
}
10289
}
10390

@@ -201,7 +188,7 @@ int main() {
201188
for (const auto &dev : plt.get_devices()) {
202189
if (dev.has(aspect::gpu)) {
203190
std::string name = dev.get_info<info::device::name>();
204-
replaceSpecialCharacters(name);
191+
addEscapeSymbolToSpecialCharacters(name);
205192
std::string ver = dev.get_info<info::device::driver_version>();
206193
if ((plt.get_backend() == backend::opencl) &&
207194
(sycl_be.find("OPENCL") != std::string::npos)) {
@@ -261,7 +248,7 @@ int main() {
261248
for (const auto &plt : platform::get_platforms()) {
262249
if (plt.has(aspect::gpu)) {
263250
std::string name = plt.get_info<info::platform::name>();
264-
replaceSpecialCharacters(name);
251+
addEscapeSymbolToSpecialCharacters(name);
265252
std::string ver = plt.get_info<info::platform::version>();
266253
if (((plt.get_backend() == backend::opencl) &&
267254
(sycl_be.find("OPENCL") != std::string::npos)) ||
@@ -317,7 +304,7 @@ int main() {
317304
for (const auto &dev : plt.get_devices()) {
318305
if (dev.has(aspect::gpu)) {
319306
std::string name = dev.get_info<info::device::name>();
320-
replaceSpecialCharacters(name);
307+
addEscapeSymbolToSpecialCharacters(name);
321308
std::string ver("98.76.54321");
322309
if (((plt.get_backend() == backend::opencl) &&
323310
(sycl_be.find("OPENCL") != std::string::npos)) ||
@@ -371,7 +358,7 @@ int main() {
371358
for (const auto &plt : platform::get_platforms()) {
372359
if (plt.has(aspect::gpu)) {
373360
std::string name = plt.get_info<info::platform::name>();
374-
replaceSpecialCharacters(name);
361+
addEscapeSymbolToSpecialCharacters(name);
375362
if ((plt.get_backend() == backend::opencl) &&
376363
(sycl_be.find("OPENCL") != std::string::npos)) {
377364
std::string ver("OpenCL 12.34");
@@ -430,7 +417,7 @@ int main() {
430417
for (const auto &dev : plt.get_devices()) {
431418
if (dev.has(aspect::gpu)) {
432419
std::string name = dev.get_info<info::device::name>();
433-
replaceSpecialCharacters(name);
420+
addEscapeSymbolToSpecialCharacters(name);
434421
std::string ver = dev.get_info<info::device::driver_version>();
435422
size_t pos = 0;
436423
if ((pos = ver.find(".")) == std::string::npos) {
@@ -498,7 +485,7 @@ int main() {
498485
for (const auto &dev : plt.get_devices()) {
499486
if (dev.has(aspect::gpu)) {
500487
std::string name = dev.get_info<info::device::name>();
501-
replaceSpecialCharacters(name);
488+
addEscapeSymbolToSpecialCharacters(name);
502489
if (((plt.get_backend() == backend::opencl) &&
503490
(sycl_be.find("OPENCL") != std::string::npos)) ||
504491
((plt.get_backend() == backend::level_zero) &&
@@ -547,7 +534,7 @@ int main() {
547534
for (const auto &plt : platform::get_platforms()) {
548535
if (plt.has(aspect::gpu)) {
549536
std::string name = plt.get_info<info::platform::name>();
550-
replaceSpecialCharacters(name);
537+
addEscapeSymbolToSpecialCharacters(name);
551538
if (((plt.get_backend() == backend::opencl) &&
552539
(sycl_be.find("OPENCL") != std::string::npos)) ||
553540
((plt.get_backend() == backend::level_zero) &&
@@ -599,7 +586,7 @@ int main() {
599586
for (const auto &dev : plt.get_devices()) {
600587
if (dev.has(aspect::gpu)) {
601588
std::string name = dev.get_info<info::device::name>();
602-
replaceSpecialCharacters(name);
589+
addEscapeSymbolToSpecialCharacters(name);
603590
std::string ver = dev.get_info<info::device::driver_version>();
604591
if (((plt.get_backend() == backend::opencl) &&
605592
(sycl_be.find("OPENCL") != std::string::npos)) ||
@@ -662,7 +649,7 @@ int main() {
662649
for (const auto &dev : plt.get_devices()) {
663650
if (dev.has(aspect::gpu)) {
664651
std::string name = dev.get_info<info::device::name>();
665-
replaceSpecialCharacters(name);
652+
addEscapeSymbolToSpecialCharacters(name);
666653
if (((plt.get_backend() == backend::opencl) &&
667654
(sycl_be.find("OPENCL") != std::string::npos)) ||
668655
((plt.get_backend() == backend::level_zero) &&
@@ -715,7 +702,7 @@ int main() {
715702
for (const auto &plt : platform::get_platforms()) {
716703
if (plt.has(aspect::gpu)) {
717704
std::string name = plt.get_info<info::platform::name>();
718-
replaceSpecialCharacters(name);
705+
addEscapeSymbolToSpecialCharacters(name);
719706
if (((plt.get_backend() == backend::opencl) &&
720707
(sycl_be.find("OPENCL") != std::string::npos)) ||
721708
((plt.get_backend() == backend::level_zero) &&
@@ -768,7 +755,7 @@ int main() {
768755
for (const auto &dev : plt.get_devices()) {
769756
if (dev.has(aspect::gpu)) {
770757
std::string name = dev.get_info<info::device::name>();
771-
replaceSpecialCharacters(name);
758+
addEscapeSymbolToSpecialCharacters(name);
772759
std::string ver = dev.get_info<info::device::driver_version>();
773760
if (((plt.get_backend() == backend::opencl) &&
774761
(sycl_be.find("OPENCL") != std::string::npos)) ||
@@ -823,7 +810,7 @@ int main() {
823810
for (const auto &plt : platform::get_platforms()) {
824811
if (plt.has(aspect::gpu)) {
825812
std::string name = plt.get_info<info::platform::name>();
826-
replaceSpecialCharacters(name);
813+
addEscapeSymbolToSpecialCharacters(name);
827814
std::string ver = plt.get_info<info::platform::version>();
828815
if (((plt.get_backend() == backend::opencl) &&
829816
(sycl_be.find("OPENCL") != std::string::npos)) ||

0 commit comments

Comments
 (0)