Skip to content

Commit

Permalink
Added pigz tests for no threads and no optimizations.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmoinvaz authored and Dead2 committed Jun 8, 2021
1 parent 187ee5f commit c58d995
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 23 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/pigz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,22 @@ jobs:
gcov-exec: llvm-cov-11 gcov
codecov: ubuntu_clang_pigz

- name: Ubuntu Clang No Optim
os: ubuntu-latest
compiler: clang
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
codecov: ubuntu_clang_pigz_no_optim
cmake-args: -DWITH_OPTIM=OFF

- name: Ubuntu Clang No Threads
os: ubuntu-latest
compiler: clang
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
codecov: ubuntu_clang_pigz_no_threads
cmake-args: -DWITH_THREADS=OFF

steps:
- name: Checkout repository
uses: actions/checkout@v2
Expand Down
60 changes: 37 additions & 23 deletions test/pigz/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
# pthread libraries if installed.

# Optional Variables
# WITH_CODE_COVERAGE - Enable code coverage reporting
# WITH_THREADS - Enable threading support
# PIGZ_ENABLE_TESTS - Enable adding unit tests
# ZLIB_ROOT - Path to the zlib source directory
# PTHREADS4W_ROOT - Path to pthreads4w source directory on Windows.
Expand All @@ -21,6 +23,7 @@ include(FetchContent)
include(../../cmake/detect-coverage.cmake)

option(WITH_CODE_COVERAGE "Enable code coverage reporting" OFF)
option(WITH_THREADS "Enable threading support" ON)
option(PIGZ_ENABLE_TESTS "Build unit tests" ON)

project(pigz LANGUAGES C)
Expand All @@ -40,8 +43,11 @@ elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8.0)
add_definitions(-fno-diagnostics-show-caret)
endif()
elseif(MSVC)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
elseif(WIN32)
add_definitions(-D_TIMESPEC_DEFINED)
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
endif()
endif()

# Fetch pigz source code from official repository
Expand All @@ -56,37 +62,44 @@ endif()

set(PIGZ_SRCS
${pigz_SOURCE_DIR}/pigz.c
${pigz_SOURCE_DIR}/try.c
${pigz_SOURCE_DIR}/yarn.c)
${pigz_SOURCE_DIR}/try.c)

set(PIGZ_HDRS
${pigz_SOURCE_DIR}/try.h
${pigz_SOURCE_DIR}/yarn.h)
${pigz_SOURCE_DIR}/try.h)

add_executable(${PROJECT_NAME} ${PIGZ_SRCS} ${PIGZ_HDRS})
add_definitions(-DNOZOPFLI)

# Find and link against pthreads or pthreads4w
if(WIN32)
add_definitions(-D_TIMESPEC_DEFINED)

if(DEFINED PTHREADS4W_ROOT)
set(CLEANUP_STYLE VC)
set(PTHREADS4W_VERSION 3)

add_subdirectory(${PTHREADS4W_ROOT} ${PTHREADS4W_ROOT} EXCLUDE_FROM_ALL)
target_link_libraries(${PROJECT_NAME} pthreadVC3)
target_include_directories(${PROJECT_NAME} PRIVATE win ${PTHREADS4W_ROOT})
if(WITH_THREADS)
if(WIN32)
if(DEFINED PTHREADS4W_ROOT)
set(CLEANUP_STYLE VC)
set(PTHREADS4W_VERSION 3)

add_subdirectory(${PTHREADS4W_ROOT} ${PTHREADS4W_ROOT} EXCLUDE_FROM_ALL)
target_link_libraries(${PROJECT_NAME} pthreadVC3)
target_include_directories(${PROJECT_NAME} PRIVATE win ${PTHREADS4W_ROOT})
else()
message(WARNING "Missing pthreads4w root directory")
set(WITH_THREADS OFF)
endif()
else()
message(WARNING "Missing pthreads4w root directory, disabling threading")
add_definitions(-DNOTHREAD)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} Threads::Threads)
if(NOT APPLE)
target_link_libraries(${PROJECT_NAME} m)
endif()
endif()
endif()

# Disable threading support
if(NOT WITH_THREADS)
add_definitions(-DNOTHREAD)
else()
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} Threads::Threads)
if(NOT APPLE)
target_link_libraries(${PROJECT_NAME} m)
endif()
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY SOURCES
${pigz_SOURCE_DIR}/yarn.c
${pigz_SOURCE_DIR}/yarn.h)
endif()

# Find and link against zlib
Expand Down Expand Up @@ -179,6 +192,7 @@ if(PIGZ_ENABLE_TESTS)
endif()

add_feature_info(WITH_CODE_COVERAGE WITH_CODE_COVERAGE "Enable code coverage reporting")
add_feature_info(WITH_THREADS WITH_THREADS "Enable threading support")
add_feature_info(PIGZ_ENABLE_TESTS PIGZ_ENABLE_TESTS "Build unit tests")

FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES)

0 comments on commit c58d995

Please sign in to comment.