Skip to content

Commit

Permalink
Merge pull request xiaoyeli#133 from gruenich/feature/add-windows-tes…
Browse files Browse the repository at this point in the history
…t-runner

Draft: add windows test runner
  • Loading branch information
xiaoyeli authored Dec 4, 2023
2 parents f530ef3 + 0559d56 commit 76b2c9a
Show file tree
Hide file tree
Showing 4 changed files with 152 additions and 86 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,43 @@ jobs:

- name: Test
run: ctest --test-dir build --output-on-failure

test-minimal-windows:
name: Windows build
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Configure
run: cmake -B build

- name: Build
run: cmake --build build

test-extended-windows:
name: Windows extended build and test
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install dependencies
run: |
git clone https://github.com/alex85k/wingetopt
cd wingetopt
cmake -B build
cmake --build build --config Release
cd ..
- name: Configure
run: cmake -B build -DWinGetOpt_INCLUDE_DIR=wingetopt/src -DWinGetOpt_LIBRARY="wingetopt/build/Release/wingetopt.lib"

- name: Build
run: cmake --build build --config Release

- name: Test
run: echo "Testing disabled due to known segfaults"
#run: ctest --test-dir build -C Release --output-on-failure
190 changes: 105 additions & 85 deletions EXAMPLE/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,32 @@ endif()
# targets to build examples
add_custom_target(examples_complex)
add_dependencies(examples_complex
citersol citersol1
clinsol clinsol1 clinsolx clinsolx1 clinsolx2 clinsolx3)
citersol citersol1 clinsol clinsol1)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_dependencies(examples_complex
clinsolx clinsolx1 clinsolx2 clinsolx3)
endif()
add_custom_target(examples_double)
add_dependencies(examples_double
ditersol ditersol1
dlinsol dlinsol1 dlinsolx dlinsolx1 dlinsolx2 dlinsolx3)
ditersol ditersol1 dlinsol dlinsol1)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_dependencies(examples_complex
dlinsolx dlinsolx1 dlinsolx2 dlinsolx3)
endif()
add_custom_target(examples_float)
add_dependencies(examples_float
sitersol sitersol1
slinsol slinsol1 slinsolx slinsolx1 slinsolx2 slinsolx3)
sitersol sitersol1 slinsol slinsol1)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_dependencies(examples_complex
slinsolx slinsolx1 slinsolx2 slinsolx3)
endif()
add_custom_target(examples_doublecomplex)
add_dependencies(examples_doublecomplex
zitersol zitersol1
zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zlinsolx3)
zitersol zitersol1 zlinsol zlinsol1)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_dependencies(examples_complex
zlinsolx zlinsolx1 zlinsolx2 zlinsolx3)
endif()
add_dependencies(examples
superlu_example
examples_complex
Expand Down Expand Up @@ -55,25 +67,27 @@ add_executable(clinsol1
clinsol1.c)
target_link_libraries(clinsol1 superlu)

add_executable(clinsolx
${_DEPENDENCY_ALL}
clinsolx.c)
target_link_libraries(clinsolx superlu)

add_executable(clinsolx1
${_DEPENDENCY_ALL}
clinsolx1.c)
target_link_libraries(clinsolx1 superlu)

add_executable(clinsolx2
${_DEPENDENCY_ALL}
clinsolx2.c)
target_link_libraries(clinsolx2 superlu)

add_executable(clinsolx3
${_DEPENDENCY_ALL}
clinsolx3.c)
target_link_libraries(clinsolx3 superlu)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_executable(clinsolx
${_DEPENDENCY_ALL}
clinsolx.c)
target_link_libraries(clinsolx superlu)

add_executable(clinsolx1
${_DEPENDENCY_ALL}
clinsolx1.c)
target_link_libraries(clinsolx1 superlu)

add_executable(clinsolx2
${_DEPENDENCY_ALL}
clinsolx2.c)
target_link_libraries(clinsolx2 superlu)

add_executable(clinsolx3
${_DEPENDENCY_ALL}
clinsolx3.c)
target_link_libraries(clinsolx3 superlu)
endif()

# examples for double
add_executable(ditersol
Expand All @@ -96,25 +110,27 @@ add_executable(dlinsol1
dlinsol1.c)
target_link_libraries(dlinsol1 superlu)

add_executable(dlinsolx
${_DEPENDENCY_ALL}
dlinsolx.c)
target_link_libraries(dlinsolx superlu)

add_executable(dlinsolx1
${_DEPENDENCY_ALL}
dlinsolx1.c)
target_link_libraries(dlinsolx1 superlu)

add_executable(dlinsolx2
${_DEPENDENCY_ALL}
dlinsolx2.c)
target_link_libraries(dlinsolx2 superlu)

add_executable(dlinsolx3
${_DEPENDENCY_ALL}
dlinsolx3.c)
target_link_libraries(dlinsolx3 superlu)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_executable(dlinsolx
${_DEPENDENCY_ALL}
dlinsolx.c)
target_link_libraries(dlinsolx superlu)

add_executable(dlinsolx1
${_DEPENDENCY_ALL}
dlinsolx1.c)
target_link_libraries(dlinsolx1 superlu)

add_executable(dlinsolx2
${_DEPENDENCY_ALL}
dlinsolx2.c)
target_link_libraries(dlinsolx2 superlu)

add_executable(dlinsolx3
${_DEPENDENCY_ALL}
dlinsolx3.c)
target_link_libraries(dlinsolx3 superlu)
endif()

# examples for float
add_executable(sitersol
Expand All @@ -137,25 +153,27 @@ add_executable(slinsol1
slinsol1.c)
target_link_libraries(slinsol1 superlu)

add_executable(slinsolx
${_DEPENDENCY_ALL}
slinsolx.c)
target_link_libraries(slinsolx superlu)

add_executable(slinsolx1
${_DEPENDENCY_ALL}
slinsolx1.c)
target_link_libraries(slinsolx1 superlu)

add_executable(slinsolx2
${_DEPENDENCY_ALL}
slinsolx2.c)
target_link_libraries(slinsolx2 superlu)

add_executable(slinsolx3
${_DEPENDENCY_ALL}
slinsolx3.c)
target_link_libraries(slinsolx3 superlu)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_executable(slinsolx
${_DEPENDENCY_ALL}
slinsolx.c)
target_link_libraries(slinsolx superlu)

add_executable(slinsolx1
${_DEPENDENCY_ALL}
slinsolx1.c)
target_link_libraries(slinsolx1 superlu)

add_executable(slinsolx2
${_DEPENDENCY_ALL}
slinsolx2.c)
target_link_libraries(slinsolx2 superlu)

add_executable(slinsolx3
${_DEPENDENCY_ALL}
slinsolx3.c)
target_link_libraries(slinsolx3 superlu)
endif()

# examples for double complex
add_executable(zitersol
Expand All @@ -178,27 +196,29 @@ add_executable(zlinsol1
zlinsol1.c)
target_link_libraries(zlinsol1 superlu)

add_executable(zlinsolx
${_DEPENDENCY_ALL}
zlinsolx.c)
target_link_libraries(zlinsolx superlu)

add_executable(zlinsolx1
${_DEPENDENCY_ALL}
zlinsolx1.c)
target_link_libraries(zlinsolx1 superlu)

add_executable(zlinsolx2
${_DEPENDENCY_ALL}
zlinsolx2.c)
target_link_libraries(zlinsolx2 superlu)

add_executable(zlinsolx3
${_DEPENDENCY_ALL}
zlinsolx3.c)
target_link_libraries(zlinsolx3 superlu)
if(NOT MSVC OR (MSVC AND WinGetOpt_FOUND))
add_executable(zlinsolx
${_DEPENDENCY_ALL}
zlinsolx.c)
target_link_libraries(zlinsolx superlu)

add_executable(zlinsolx1
${_DEPENDENCY_ALL}
zlinsolx1.c)
target_link_libraries(zlinsolx1 superlu)

add_executable(zlinsolx2
${_DEPENDENCY_ALL}
zlinsolx2.c)
target_link_libraries(zlinsolx2 superlu)

add_executable(zlinsolx3
${_DEPENDENCY_ALL}
zlinsolx3.c)
target_link_libraries(zlinsolx3 superlu)
endif()

if(MSVC)
if(MSVC AND WinGetOpt_FOUND)
set(NEEDS_GETOPT
clinsolx clinsolx1 clinsolx2 clinsolx3
dlinsolx dlinsolx1 dlinsolx2 dlinsolx3
Expand Down
3 changes: 2 additions & 1 deletion SRC/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,11 +474,12 @@ void ifill(int *a, int alen, int ival)

/*! \brief Get the statistics of the supernodes
*/
#define NBUCKS 10

void super_stats(int nsuper, int *xsup)
{
register int nsup1 = 0;
int i, isize, whichb, bl, bh;
const int NBUCKS = 10;
int bucket[NBUCKS];
int max_sup_size = 0;

Expand Down
5 changes: 5 additions & 0 deletions TESTING/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ function(add_superlu_test target input)

endfunction(add_superlu_test)

# prevent creating testing for Windows if WinGetOps is not found
if(MSVC AND NOT WinGetOpt_FOUND)
message("Disabled tests s_test, d_test, c_test, and z_test because optinal dependency WinGetOpt is missing")
return()
endif()

if(enable_single)
add_executable(s_test
Expand Down

0 comments on commit 76b2c9a

Please sign in to comment.