Merge pull request #1495 from Exiv2/fix_1274_remove_bash

fix_1274_remove_bash
This commit is contained in:
Robin Mills 2021-03-17 10:59:37 +00:00 committed by GitHub
commit 200611a8eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 80 additions and 56 deletions

View File

@ -86,43 +86,43 @@ add_subdirectory( src )
if( EXIV2_BUILD_UNIT_TESTS )
add_subdirectory ( unitTests )
add_custom_target(unit_test
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make unit_test
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/unit_test.py
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
endif()
add_custom_target(version_test
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make version_test
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/version_test.py
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
if( EXIV2_BUILD_SAMPLES )
##
# tests
if( EXIV2_BUILD_UNIT_TESTS )
add_custom_target(tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make unit_test
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make bash_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make python_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make version_test
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
)
add_custom_target(tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/unit_test.py
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/testcases.py --verbose
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/version_test.py
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
else()
add_custom_target(tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make bash_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make python_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make version_test
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
)
add_custom_target(tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/testcases.py --verbose
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/version_test.py
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
endif()
add_custom_target(python_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make python_tests
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
)
add_custom_target(bash_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" make bash_tests
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test"
)
add_custom_target(python_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
add_custom_target(bash_tests
COMMAND env EXIV2_BINDIR="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" python3 runner.py bash_tests/testcases.py --verbose
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests"
)
add_subdirectory( samples )
get_directory_property(SAMPLES DIRECTORY samples DEFINITION APPLICATIONS)
add_dependencies(tests exiv2lib exiv2 ${SAMPLES})

2
test/ReadMe.txt Normal file
View File

@ -0,0 +1,2 @@
The test scripts in this directory are not longer in service and will be removed in Exiv2 v0.28
The functionality of the scripts in this directory is implemented in tests/bash_tests

View File

@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
import system_tests
import os
import unittest
bSkip=not (os.path.isfile(system_tests.unit_tests) or os.path.isfile(system_tests.unit_tests + '.exe'))
if bSkip:
msg='*** %s does not exist ***' % system_tests.unit_tests
print(msg)
raise unittest.SkipTest(msg)
system_tests.BT.runTest(system_tests.unit_tests,raw=True)
print('')

View File

@ -687,43 +687,43 @@ def runTestCase(num, img):
out += diff('iii', 'ttt')
return str(out)
def runTest(cmd):
"""
Executes a command in the shell.
Add this function at PR <https://github.com/Exiv2/exiv2/pull/1475> .
"""
exiv2=system_tests.exiv2
def runTest(cmd,raw=False):
""" Executes a command in the shell. """
if sys.platform == 'win32':
args = cmd
else:
args = shlex.split(cmd)
# Updat PATH, LD_LIBRARY_PATH and DYLD_LIBRARY_PATH
# Update PATH, LD_LIBRARY_PATH and DYLD_LIBRARY_PATH
key = "PATH"
bin_dir = os.path.dirname(exiv2)
bin_dir = os.path.dirname(system_tests.exiv2)
if key in os.environ:
os.environ[key] = os.path.join(bin_dir, os.environ[key])
else:
os.environ[key] = bin_dir
for key in ["LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH"]:
lib_dir = os.path.join(os.path.dirname(os.path.dirname(exiv2)), 'lib')
lib_dir = os.path.join(os.path.dirname(os.path.dirname(system_tests.exiv2)), 'lib')
if key in os.environ:
os.environ[key] = os.path.join(lib_dir, os.environ[key])
os.environ[key] = lib_dir + os.pathsep + os.environ[key]
else:
os.environ[key] = lib_dir
# Execute the command
try:
p = subprocess.Popen(args, stdout=subprocess.PIPE, shell=False)
stdout, stderr = p.communicate()
if p.returncode != 0:
print('{} returncode = {}'.format(cmd, p.returncode))
# Split the output by newline
out = stdout.decode('utf-8').replace('\r', '').rstrip('\n').split('\n')
except:
print('** {} died **'.format(cmd))
if raw:
subprocess.Popen(args)
out=None
else:
try:
p = subprocess.Popen(args, stdout=subprocess.PIPE, shell=False)
stdout, stderr = p.communicate()
if p.returncode != 0:
print('{} returncode = {}'.format(cmd, p.returncode))
# Split the output by newline
out = stdout.decode('utf-8').replace('\r', '').rstrip('\n').split('\n')
except:
print('** {} died **'.format(cmd))
return out

View File

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
import system_tests
system_tests.BT.verbose_version(True)

View File

@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
import system_tests
import unittest
# test needs system_tests.BT.vv.enable_bmff=1
enable_bmff = 'enable_bmff'
vv=system_tests.BT.verbose_version()
bSkip = not (enable_bmff in vv and vv[enable_bmff] == '1')
# test needs system_tests.BT.vv['enable_bmff']=1
bSkip=system_tests.BT.verbose_version().get('enable_bmff')!='1'
if bSkip:
raise unittest.SkipTest('*** requires enable_bmff=1 ***')
class pr_1475_avif_avif(metaclass=system_tests.CaseMeta):
url = "https://github.com/Exiv2/exiv2/pull/1475"

View File

@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
import system_tests
import unittest
# test needs system_tests.BT.vv.enable_bmff=1
vv=system_tests.BT.verbose_version()
enable_bmff = 'enable_bmff'
bSkip = not (enable_bmff in vv and vv[enable_bmff] == '1')
# test needs system_tests.BT.vv['enable_bmff']=1
bSkip=system_tests.BT.verbose_version().get('enable_bmff')!='1'
if bSkip:
raise unittest.SkipTest('*** requires enable_bmff=1 ***')
class pr_1475_2021_heic(metaclass=system_tests.CaseMeta):
url = "https://github.com/Exiv2/exiv2/pull/1475"

View File

@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
import system_tests
import unittest
# test needs system_tests.BT.vv.enable_bmff=1
vv=system_tests.BT.verbose_version()
enable_bmff = 'enable_bmff'
bSkip = not (enable_bmff in vv and vv[enable_bmff] == '1')
# test needs system_tests.BT.vv['enable_bmff']=1
bSkip=system_tests.BT.verbose_version().get('enable_bmff')!='1'
if bSkip:
raise unittest.SkipTest('*** requires enable_bmff=1 ***')
class pr_1475_Sony_hif(metaclass=system_tests.CaseMeta):
url = "https://github.com/Exiv2/exiv2/pull/1475"

View File

@ -24,6 +24,7 @@ valgrind:
[paths]
exiv2: ${ENV:exiv2_path}/exiv2
unit_tests: ${ENV:exiv2_path}/unit_tests
exiv2json: ${ENV:exiv2_path}/exiv2json
data_path: ../test/data
tmp_path: ../test/tmp