diff --git a/unit_tests/main.cpp b/unit_tests/main.cpp index 17b47dd178..fd96944810 100644 --- a/unit_tests/main.cpp +++ b/unit_tests/main.cpp @@ -233,19 +233,29 @@ int main(int argc, char **argv) { ++i; if (i < argc) { if (::isdigit(argv[i][0])) { - ::productFamily = (PRODUCT_FAMILY)atoi(argv[i]); + int productValue = atoi(argv[i]); + if (productValue > 0 && productValue < IGFX_MAX_PRODUCT && hardwarePrefix[productValue] != nullptr) { + ::productFamily = static_cast(productValue); + } else { + ::productFamily = IGFX_UNKNOWN; + } } else { ::productFamily = IGFX_UNKNOWN; for (int j = 0; j < IGFX_MAX_PRODUCT; j++) { if (hardwarePrefix[j] == nullptr) continue; if (strcmp(hardwarePrefix[j], argv[i]) == 0) { - ::productFamily = (PRODUCT_FAMILY)j; + ::productFamily = static_cast(j); break; } } } - std::cout << "product family: " << hardwarePrefix[::productFamily] << " (" << ::productFamily << ")" << std::endl; + if (::productFamily == IGFX_UNKNOWN) { + std::cout << "unknown or unsupported product family has been set: " << argv[i] << std::endl; + return -1; + } else { + std::cout << "product family: " << hardwarePrefix[::productFamily] << " (" << ::productFamily << ")" << std::endl; + } } } else if (!strcmp("--slices", argv[i])) { ++i;