@@ -588,20 +588,74 @@ function(add_umf_ipc_test)
588588        set (SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
589589    endif ()
590590
591-     file (COPY ${SRC_DIR} /${ARG_TEST} .sh DESTINATION  ${CMAKE_CURRENT_BINARY_DIR} )
591+     if (WINDOWS)
592+         set (EXT  bat)
593+     else ()
594+         set (EXT  sh)
595+     endif ()
596+ 
597+     file (COPY ${SRC_DIR} /${ARG_TEST} .${EXT} 
598+          DESTINATION  ${CMAKE_CURRENT_BINARY_DIR} )
592599
593600    add_test (
594601        NAME  ${TEST_NAME} 
595-         COMMAND  ${ARG_TEST} .sh 
602+         COMMAND  ${ARG_TEST} .${EXT} 
596603        WORKING_DIRECTORY  ${CMAKE_CURRENT_BINARY_DIR} )
597604
605+     if (WINDOWS)
606+         set_tests_properties (${TEST_NAME}  PROPERTIES
607+                              ENVIRONMENT  "BUILD_TYPE=${CMAKE_BUILD_TYPE} " )
608+         # add PATH to DLL on Windows 
609+         set (DLL_PATH_LIST
610+             "${DLL_PATH_LIST} ;PATH=path_list_append:${CMAKE_BINARY_DIR} /bin/;PATH=path_list_append:${CMAKE_BINARY_DIR} /bin/$<CONFIG>/" 
611+         )
612+         set_property (TEST  ${TEST_NAME}  PROPERTY ENVIRONMENT_MODIFICATION
613+                                                 "${DLL_PATH_LIST} " )
614+     endif ()
615+ 
598616    set_tests_properties (${TEST_NAME}  PROPERTIES LABELS  "umf" )
599617    set_tests_properties (${TEST_NAME}  PROPERTIES TIMEOUT  60)
600618    if (NOT  UMF_TESTS_FAIL_ON_SKIP)
601619        set_tests_properties (${TEST_NAME}  PROPERTIES SKIP_RETURN_CODE 125)
602620    endif ()
603621endfunction ()
604622
623+ if (WINDOWS)
624+     set (UMF_IPC_LIBS ws2_32)
625+ endif ()
626+ 
627+ if (UMF_BUILD_GPU_TESTS AND  UMF_LEVEL_ZERO_ENABLED)
628+     build_umf_test(
629+         NAME  ipc_level_zero_prov_consumer
630+         SRCS providers/ipc_level_zero_prov_consumer.c common/ipc_common.c
631+              providers/ipc_level_zero_prov_common.c
632+              ${UMF_UTILS_DIR} /utils_level_zero.cpp
633+         LIBS ze_loader ${UMF_IPC_LIBS}  ${UMF_UTILS_FOR_TEST} )
634+     build_umf_test(
635+         NAME  ipc_level_zero_prov_producer
636+         SRCS providers/ipc_level_zero_prov_producer.c common/ipc_common.c
637+              providers/ipc_level_zero_prov_common.c
638+              ${UMF_UTILS_DIR} /utils_level_zero.cpp
639+         LIBS ze_loader ${UMF_IPC_LIBS}  ${UMF_UTILS_FOR_TEST} )
640+     add_umf_ipc_test(TEST  ipc_level_zero_prov SRC_DIR providers)
641+ endif ()
642+ 
643+ if (UMF_BUILD_GPU_TESTS AND  UMF_BUILD_CUDA_PROVIDER)
644+     build_umf_test(
645+         NAME  ipc_cuda_prov_consumer
646+         SRCS providers/ipc_cuda_prov_consumer.c common/ipc_common.c
647+              providers/ipc_cuda_prov_common.c providers/cuda_helpers.cpp
648+         LIBS cuda ${UMF_IPC_LIBS}  ${UMF_UTILS_FOR_TEST} )
649+     build_umf_test(
650+         NAME  ipc_cuda_prov_producer
651+         SRCS providers/ipc_cuda_prov_producer.c common/ipc_common.c
652+              providers/ipc_cuda_prov_common.c providers/cuda_helpers.cpp
653+         LIBS cuda ${UMF_IPC_LIBS}  ${UMF_UTILS_FOR_TEST} )
654+     add_umf_ipc_test(TEST  ipc_cuda_prov SRC_DIR providers)
655+ endif ()
656+ 
657+ # TODO IPC tests for OS, file, devdax providers and proxy lib are supported only 
658+ # on Linux - skipping 
605659if (LINUX)
606660    if (UMF_POOL_SCALABLE_ENABLED)
607661        build_umf_test(
@@ -645,39 +699,11 @@ if(LINUX)
645699        add_umf_ipc_test(TEST  ipc_file_prov_fsdax)
646700    endif ()
647701
648-     # TODO add IPC tests for CUDA 
649- 
650-     if (UMF_BUILD_GPU_TESTS AND  UMF_LEVEL_ZERO_ENABLED)
651-         build_umf_test(
652-             NAME  ipc_level_zero_prov_consumer
653-             SRCS providers/ipc_level_zero_prov_consumer.c common/ipc_common.c
654-                  providers/ipc_level_zero_prov_common.c
655-                  ${UMF_UTILS_DIR} /utils_level_zero.cpp
656-             LIBS ze_loader ${UMF_UTILS_FOR_TEST} )
657-         build_umf_test(
658-             NAME  ipc_level_zero_prov_producer
659-             SRCS providers/ipc_level_zero_prov_producer.c common/ipc_common.c
660-                  providers/ipc_level_zero_prov_common.c
661-                  ${UMF_UTILS_DIR} /utils_level_zero.cpp
662-             LIBS ze_loader ${UMF_UTILS_FOR_TEST} )
663-         add_umf_ipc_test(TEST  ipc_level_zero_prov SRC_DIR providers)
664-     endif ()
665- 
666-     if (UMF_BUILD_GPU_TESTS AND  UMF_BUILD_CUDA_PROVIDER)
667-         build_umf_test(
668-             NAME  ipc_cuda_prov_consumer
669-             SRCS providers/ipc_cuda_prov_consumer.c common/ipc_common.c
670-                  providers/ipc_cuda_prov_common.c providers/cuda_helpers.cpp
671-             LIBS cuda ${UMF_UTILS_FOR_TEST} )
672-         build_umf_test(
673-             NAME  ipc_cuda_prov_producer
674-             SRCS providers/ipc_cuda_prov_producer.c common/ipc_common.c
675-                  providers/ipc_cuda_prov_common.c providers/cuda_helpers.cpp
676-             LIBS cuda ${UMF_UTILS_FOR_TEST} )
677-         add_umf_ipc_test(TEST  ipc_cuda_prov SRC_DIR providers)
678-     endif ()
679702else ()
680-     message (STATUS  "IPC tests are supported on Linux only - skipping" )
703+     message (
704+         STATUS 
705+             "IPC tests for OS, file, devdax providers and proxy lib are supported only on Linux - skipping" 
706+     )
681707endif ()
682708
683709if (LINUX
0 commit comments