Run mlkem_tests on Windows

There's probably cleaner ways to do it, but shrug. Better than nothing.
This commit is contained in:
Theo Buehler
2025-08-18 10:39:05 +02:00
parent d811b09c21
commit 3e43172fee
3 changed files with 68 additions and 4 deletions

View File

@@ -566,11 +566,13 @@ endif()
add_executable(mlkem_tests mlkem_tests.c parse_test_file.c)
target_link_libraries(mlkem_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem_tests)
if(NOT WIN32)
if(NOT MSVC)
add_test(NAME mlkem_tests COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mlkem_tests.sh)
set_tests_properties(mlkem_tests PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
else()
add_test(NAME mlkem_tests COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mlkem_tests.bat $<TARGET_FILE:mlkem_tests>)
endif()
# XXX - add tests for Windows
set_tests_properties(mlkem_tests PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
# mlkem_iteration_tests
add_executable(mlkem_iteration_tests mlkem_iteration_tests.c mlkem_tests_util.c)

View File

@@ -578,7 +578,7 @@ noinst_HEADERS += parse_test_file.h
TESTS += mlkem_tests.sh
check_PROGRAMS += mlkem_tests
mlkem_tests_SOURCES = mlkem_tests.c parse_test_file.c
EXTRA_DIST += mlkem_tests.sh
EXTRA_DIST += mlkem_tests.sh mlkem_tests.bat
EXTRA_DIST += mlkem768_decap_tests.txt
EXTRA_DIST += mlkem768_encap_tests.txt
EXTRA_DIST += mlkem768_keygen_tests.txt
@@ -589,7 +589,6 @@ EXTRA_DIST += mlkem1024_encap_tests.txt
EXTRA_DIST += mlkem1024_keygen_tests.txt
EXTRA_DIST += mlkem1024_nist_decap_tests.txt
EXTRA_DIST += mlkem1024_nist_keygen_tests.txt
# XXX - add tests for Windows
# mlkem_iteration_tests
TESTS += mlkem_iteration_tests

63
tests/mlkem_tests.bat Normal file
View File

@@ -0,0 +1,63 @@
@echo off
setlocal enabledelayedexpansion
:: Copyright (c) 2025 Theo Beuhler
::
:: Permission to use, copy, modify, and distribute this software for any
:: purpose with or without fee is hereby granted, provided that the above
:: copyright notice and this permission notice appear in all copies.
::
:: THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
:: WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
:: MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
:: ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
:: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
:: ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
:: OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
set mlkem_tests_bin=%1
set mlkem_tests_bin=%mlkem_tests_bin:/=\%
if not exist %mlkem_tests_bin% exit /b 1
%mlkem_tests_bin% mlkem768_decap_tests %srcdir%\mlkem768_decap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem768_encap_tests %srcdir%\mlkem768_encap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem768_keygen_tests %srcdir%\mlkem768_keygen_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem768_nist_decap_tests %srcdir%\mlkem768_nist_decap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem768_nist_keygen_tests %srcdir%\mlkem768_nist_keygen_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem1024_decap_tests %srcdir%\mlkem1024_decap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem1024_encap_tests %srcdir%\mlkem1024_encap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem1024_keygen_tests %srcdir%\mlkem1024_keygen_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem1024_nist_decap_tests %srcdir%\mlkem1024_nist_decap_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
%mlkem_tests_bin% mlkem1024_nist_keygen_tests %srcdir%\mlkem1024_nist_keygen_tests.txt
if !errorlevel! neq 0 (
exit /b 1
)
endlocal