Merge pull request #2035 from Exiv2/ci_forward_main

Forward CI changes
main
Robin Mills 4 years ago committed by GitHub
commit d508e093dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -47,8 +47,6 @@ jobs:
tree install tree install
- name: Test - name: Test
env:
EXIV2_EXT: .exe
run: | run: |
cd build cd build
ctest --output-on-failure ctest --output-on-failure

@ -37,8 +37,6 @@ jobs:
cmake --build . cmake --build .
- name: Tests + Upload coverage - name: Tests + Upload coverage
env:
EXIV2_EXT: .exe
run: | run: |
cd build cd build
ctest --output-on-failure ctest --output-on-failure
@ -85,8 +83,6 @@ jobs:
cmake --build . cmake --build .
- name: Tests with valgrind - name: Tests with valgrind
env:
EXIV2_EXT: .exe
run: | run: |
cd build/bin cd build/bin
valgrind ./unit_tests valgrind ./unit_tests
@ -123,8 +119,6 @@ jobs:
cmake --build . cmake --build .
- name: Tests - name: Tests
env:
EXIV2_EXT: .exe
run: | run: |
cd build cd build
ctest --output-on-failure ctest --output-on-failure
@ -163,21 +157,3 @@ jobs:
- name: Generate documentation - name: Generate documentation
run: | run: |
make doc make doc
special_FedoraMinGW:
name: 'Fedora MinGW'
runs-on: ubuntu-latest
container:
image: "fedora:latest"
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
dnf -y upgrade
dnf -y install mingw64-gcc-c++ mingw64-filesystem mingw64-expat mingw64-zlib cmake make
- name: Build
run:
python3 ci/test_build.py --without-tests --cmake-executable "mingw64-cmake" --cmake-options "-DEXIV2_TEAM_EXTRA_WARNINGS=OFF -DEXIV2_TEAM_WARNINGS_AS_ERRORS=OFF -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_WIN_UNICODE=ON " --compilers --shared-libs OFF

@ -40,8 +40,6 @@ jobs:
cmake --build . --target install cmake --build . --target install
- name: Test - name: Test
env:
EXIV2_EXT: .exe
run: | run: |
cd build cd build
ctest --output-on-failure ctest --output-on-failure

@ -19,7 +19,7 @@ jobs:
build_type: [Release, Debug] build_type: [Release, Debug]
shared_libraries: [ON, OFF] shared_libraries: [ON, OFF]
platform: [ x64, x86 ] platform: [ x64, x86 ]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
@ -28,7 +28,7 @@ jobs:
with: with:
arch: ${{matrix.platform}} arch: ${{matrix.platform}}
- name: Setup Ninja - name: Set up Ninja
uses: ashutoshvarma/setup-ninja@master uses: ashutoshvarma/setup-ninja@master
with: with:
version: 1.10.0 version: 1.10.0
@ -38,7 +38,7 @@ jobs:
with: with:
python-version: 3.7 python-version: 3.7
- name: Restore conan cache - name: Restore Conan cache
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ${{github.workspace}}/conanCache path: ${{github.workspace}}/conanCache
@ -68,23 +68,131 @@ jobs:
conan install .. --build missing conan install .. --build missing
dir .. dir ..
tree /f ../conanCache tree /f ../conanCache
- name: Build - name: Build
run: | run: |
cd build cmake -GNinja `
cmake -GNinja -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} -DEXIV2_ENABLE_NLS=OFF -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_WIN_UNICODE=OFF -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DEXIV2_ENABLE_BMFF=ON -DCMAKE_INSTALL_PREFIX=install .. -DCMAKE_BUILD_TYPE=${{matrix.build_type}} `
ninja -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} `
-DEXIV2_ENABLE_NLS=OFF `
-DEXIV2_ENABLE_WIN_UNICODE=OFF `
-DEXIV2_ENABLE_WEBREADY=ON `
-DEXIV2_ENABLE_BMFF=ON `
-DEXIV2_BUILD_UNIT_TESTS=ON `
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON `
-DCMAKE_INSTALL_PREFIX=install `
-S . -B build && `
cmake --build build
- name: Install - name: Install
run: | run: |
cd build cd build
ninja install cmake --install .
tree /f install tree /f install
- name: Test - name: Test
if: ${{matrix.platform == 'x64'}} if: ${{matrix.platform == 'x64'}}
env:
EXIV2_EXT: .exe
run: | run: |
cd build ctest --test-dir build --output-on-failure
ctest --output-on-failure
msys2:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
build_type: [Release, Debug]
shared_libraries: [ON, OFF]
sys: [MINGW64]
name: MSYS2 ${{matrix.sys}} - BuildType:${{matrix.build_type}} - SHARED:${{matrix.shared_libraries}}
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
base-devel
pacboy: >-
toolchain:p
cmake:p
ninja:p
expat:p
gettext:p
gtest:p
libiconv:p
python-lxml:p
zlib:p
- name: Build
run: |
cmake -GNinja \
-DCMAKE_CXX_FLAGS=-Wno-deprecated \
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
-DEXIV2_ENABLE_NLS=ON \
-DEXIV2_ENABLE_WIN_UNICODE=ON \
-DEXIV2_ENABLE_WEBREADY=ON \
-DEXIV2_ENABLE_BMFF=ON \
-DEXIV2_BUILD_UNIT_TESTS=ON \
-S . -B build && \
cmake --build build
- name: Test
run: |
ctest --test-dir build --output-on-failure
cygwin:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
build_type: [Release]
shared_libraries: [ON]
platform: [x64]
name: Cygwin ${{matrix.platform}} - BuildType:${{matrix.build_type}} - SHARED:${{matrix.shared_libraries}}
env:
SHELLOPTS: igncr
defaults:
run:
shell: C:\tools\cygwin\bin\bash.exe -eo pipefail '{0}'
steps:
# Make sure we don't check out scripts using Windows CRLF line endings
- run: git config --global core.autocrlf input
shell: pwsh
- uses: actions/checkout@v2
- name: Set up Cygwin
uses: egor-tensin/setup-cygwin@v3
with:
platform: ${{matrix.platform}}
packages: >-
gcc-g++
cmake
ninja
libexpat-devel
libxml2-devel
libxslt-devel
python38-lxml
zlib-devel
- name: Build
run: |
cmake -GNinja \
-DCMAKE_CXX_FLAGS=-Wno-deprecated \
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
-DEXIV2_ENABLE_NLS=OFF \
-DEXIV2_ENABLE_WIN_UNICODE=OFF \
-DEXIV2_ENABLE_WEBREADY=ON \
-DEXIV2_ENABLE_BMFF=ON \
-DEXIV2_BUILD_UNIT_TESTS=OFF \
-S . -B build && \
cmake --build build
- name: Test
run: |
ctest --test-dir build --output-on-failure

@ -38,8 +38,6 @@ jobs:
make -j make -j
- name: Tests + Upload coverage - name: Tests + Upload coverage
env:
EXIV2_EXT: .exe
run: | run: |
cd build cd build
ctest --output-on-failure ctest --output-on-failure

@ -1326,7 +1326,7 @@ standards-defined metadata.
With [--Modify cmd](#Modify_cmd), quotation marks are use to surround the With [--Modify cmd](#Modify_cmd), quotation marks are use to surround the
*cmd*. The Windows command line requires double quotes to be *cmd*. The Windows command line requires double quotes to be
used, however generally, quotes inside that string, can be either single used, however generally, quotes inside that string, can be either single
or double. Generally, UNIX based systems can use pairs of single or or double. Generally, Unix-based systems can use pairs of single or
double quotes in any position. In both systems, inner string quotation double quotes in any position. In both systems, inner string quotation
marks may need to use the `\` escape sequence. marks may need to use the `\` escape sequence.
@ -1634,11 +1634,11 @@ For another example, see: https://www.exiv2.org/sample.html
# 12 CONFIGURATION FILE # 12 CONFIGURATION FILE
**exiv2** can read an optional configuration file, which allows **exiv2** can read an optional configuration file, which allows
additional lens definitions to be added to translated output. On UNIX additional lens definitions to be added to translated output. On Unix-based
based systems, this file is called *.exiv2* and on Windows (including MinGW), systems (including Cygwin), this file is called *.exiv2* and on Windows
*exiv2.ini*. The file is searched for first in the current directory, (including MinGW), *exiv2.ini*. The file is searched for first in the
then in the home directory (on UNIX based systems, `~/` and on Windows, current directory, then in the home directory (`$HOME` on Unix-based
`%USERPROFILE%\\`). systems, and `%USERPROFILE%` on Windows).
You can determine the name of the file and where it is searched for, You can determine the name of the file and where it is searched for,
with the command: with the command:

@ -6,11 +6,11 @@ import sys
# copy the example config file into current working directory # copy the example config file into current working directory
# and name it ".exiv2" on linux or "exiv2.ini" on Win # and name it "exiv2.ini" on Win or ".exiv2" on other platforms
class TmpConfigFile(system_tests.FileDecoratorBase): class TmpConfigFile(system_tests.FileDecoratorBase):
def setUp_file_action(self, expanded_file_name): def setUp_file_action(self, expanded_file_name):
config_file_path = os.path.dirname(os.path.abspath(__file__)) config_file_path = os.path.dirname(os.path.abspath(__file__))
fname = ".exiv2" if sys.platform == "linux" or sys.platform == "darwin" else "exiv2.ini" fname = os.path.basename(system_tests.BT.verbose_version().get('config_path'))
return shutil.copyfile(expanded_file_name, os.path.join(config_file_path, fname)) return shutil.copyfile(expanded_file_name, os.path.join(config_file_path, fname))

@ -42,28 +42,8 @@ TEST(strError, returnSuccessAfterClosingFile)
std::string tmpFile("tmp.dat"); std::string tmpFile("tmp.dat");
std::ofstream auxFile(tmpFile.c_str()); std::ofstream auxFile(tmpFile.c_str());
auxFile.close(); auxFile.close();
bool useExactString{true};
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW__) || defined(__MSYS__)
const char * expectedString = "No error (errno = 0)";
#elif defined(__APPLE__)
const char * expectedString = "Undefined error: 0 (errno = 0)";
#elif defined(__sun__)
const char * expectedString = "Error 0 (errno = 0)";
#elif defined(__FreeBSD__)
const char * expectedString = "No error: 0 (errno = 0)";
#elif defined(__NetBSD__)
const char * expectedString = "Undefined error: 0 (errno = 0)";
#else
// On Alpine we get 'No error information (errno = 0)' instead of 'Success (errno = 0)'
const char * expectedString = "(errno = 0)";
useExactString = false;
#endif
std::remove(tmpFile.c_str()); std::remove(tmpFile.c_str());
if (useExactString) { ASSERT_TRUE(strError().find("(errno = 0)") != std::string::npos);
ASSERT_STREQ(expectedString, strError().c_str());
} else {
ASSERT_TRUE(strError().find(expectedString) != std::string::npos);
}
} }
TEST(strError, returnNoSuchFileOrDirectoryWhenTryingToOpenNonExistingFile) TEST(strError, returnNoSuchFileOrDirectoryWhenTryingToOpenNonExistingFile)
@ -75,29 +55,7 @@ TEST(strError, returnNoSuchFileOrDirectoryWhenTryingToOpenNonExistingFile)
TEST(strError, doNotRecognizeUnknownError) TEST(strError, doNotRecognizeUnknownError)
{ {
errno = 9999; errno = 9999;
bool useExactString{true}; ASSERT_TRUE(strError().find("(errno = 9999)") != std::string::npos);
#if defined(__MINGW__) || defined(__MSYS__) || defined(__CYGWIN__)
const char * expectedString = "Unknown error 9999 (errno = 9999)";
#elif defined(_WIN32)
const char * expectedString = "Unknown error (errno = 9999)";
#elif defined(__APPLE__)
const char * expectedString = "Unknown error: 9999 (errno = 9999)";
#elif defined(__sun__)
const char * expectedString = "Unknown error (errno = 9999)";
#elif defined(__FreeBSD__)
const char * expectedString = "Unknown error: 9999 (errno = 9999)";
#elif defined(__NetBSD__)
const char * expectedString = "Unknown error: 9999 (errno = 9999)";
#else
// On Alpine we get 'No error information (errno = 9999)' instead of 'Unknown error 9999 (errno = 9999)'
const char * expectedString = "(errno = 9999)";
useExactString = false;
#endif
if (useExactString) {
ASSERT_STREQ(expectedString, strError().c_str());
} else {
ASSERT_TRUE(strError().find(expectedString) != std::string::npos);
}
} }
TEST(getEnv, getsDefaultValueWhenExpectedEnvVariableDoesNotExist) TEST(getEnv, getsDefaultValueWhenExpectedEnvVariableDoesNotExist)

Loading…
Cancel
Save