Modified: qpid/trunk/qpid/cpp/src/tests/interlink_tests.py URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/interlink_tests.py?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/interlink_tests.py (original) +++ qpid/trunk/qpid/cpp/src/tests/interlink_tests.py Thu Apr 21 12:31:34 2016 @@ -72,12 +72,7 @@ class AmqpBrokerTest(BrokerTest): return self.popen(cmd, stdout=PIPE) def ready_receiver(self, config): - # NOTE: some tests core dump when run with SWIG binding over proton - # version<=0.6. This is fixed on proton 0.7. - def use_native(): - pv=os.environ.get("QPID_PROTON_VERSION") - return pv and [int(n) for n in pv.split(".")] <= [0,6] - s = self.broker.connect(native=use_native()).session() + s = self.broker.connect().session() r = s.receiver("readyq; {create:always}") cmd = ["qpid-receive", "--broker", config.url,
Modified: qpid/trunk/qpid/cpp/src/tests/interop_tests.py URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/interop_tests.py?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/interop_tests.py (original) +++ qpid/trunk/qpid/cpp/src/tests/interop_tests.py Thu Apr 21 12:31:34 2016 @@ -192,10 +192,7 @@ class CppTxTest(InteropTest): if __name__ == "__main__": - if not BrokerTest.amqp_tx_supported: - BrokerTest.amqp_tx_warning() - print "Skipping interop_tests" - sys.exit(0) + from env import * outdir = "interop_tests.tmp" shutil.rmtree(outdir, True) cmd = ["qpid-python-test", "-m", "interop_tests", "-DOUTDIR=%s"%outdir] + sys.argv[1:] Modified: qpid/trunk/qpid/cpp/src/tests/legacystore/CMakeLists.txt URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/legacystore/CMakeLists.txt?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/legacystore/CMakeLists.txt (original) +++ qpid/trunk/qpid/cpp/src/tests/legacystore/CMakeLists.txt Thu Apr 21 12:31:34 2016 @@ -28,8 +28,6 @@ endif (QPID_LINK_BOOST_DYNAMIC) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ) -set(test_wrap ${shell} ${CMAKE_SOURCE_DIR}/src/tests/run_test${test_script_suffix} -buildDir=${CMAKE_BINARY_DIR}) - if (BUILD_TESTING_UNITTESTS) # Like this to work with cmake 2.4 on Unix @@ -53,7 +51,7 @@ target_link_libraries (${testname} if ("${ARGV1}" STREQUAL "LONG") set_target_properties(${testname} PROPERTIES COMPILE_DEFINITIONS LONG_TEST) endif () -add_test (NAME ${testname} COMMAND ${test_wrap} -boostTest -- $<TARGET_FILE:${testname}>) +add_test (NAME ${testname} COMMAND ${CMAKE_BINARY_DIR}/src/tests/run.sh $<TARGET_FILE:${testname}>) unset (testname) ENDMACRO (define_journal_test) @@ -100,7 +98,7 @@ target_link_libraries (jtt__ut ${Boost_PROGRAM_OPTIONS_LIBRARY} ${clock_gettime_LIB} legacystore_shared) -add_test(journal_jtt_ut ${test_wrap} -boostTest -workingDir=${CMAKE_CURRENT_SOURCE_DIR}/jrnl/jtt -- ${CMAKE_CURRENT_BINARY_DIR}/jtt__ut) +add_test(journal_jtt_ut ${CMAKE_BINARY_DIR}/src/tests/run.sh ${CMAKE_CURRENT_BINARY_DIR}/jtt__ut) endif (BUILD_TESTING_UNITTESTS) @@ -127,6 +125,6 @@ target_link_libraries (jtt add_test(journal_jtt ${CMAKE_CURRENT_BINARY_DIR}/jtt -c ${CMAKE_CURRENT_SOURCE_DIR}/jrnl/jtt/jtt.csv) -add_test (legacystore_python_tests ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/run_python_tests${test_script_suffix}) +add_test(legacystore_python_tests ${PYTHON_EXECUTABLE} run_python_tests) endif (BUILD_LEGACYSTORE AND BUILD_TESTING) Modified: qpid/trunk/qpid/cpp/src/tests/legacystore/federation/federation_tests_env.sh URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/legacystore/federation/federation_tests_env.sh?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/legacystore/federation/federation_tests_env.sh (original) +++ qpid/trunk/qpid/cpp/src/tests/legacystore/federation/federation_tests_env.sh Thu Apr 21 12:31:34 2016 @@ -142,7 +142,7 @@ func_set_env () if test -z ${QPID_BLD}; then QPID_BLD="${QPID_DIR}/cpp" fi - source $QPID_BLD/src/tests/test_env.sh + source $QPID_BLD/src/tests/env.sh # CPP_CLUSTER_EXEC="${QPID_BLD}/src/tests/cluster_test" # PYTHON_CLUSTER_EXEC="${QPID_DIR}/cpp/src/tests/$PYTHON_TESTNAME" FEDERATION_SYS_TESTS_FAIL="${QPID_DIR}/cpp/src/tests/federation_sys_tests.fail" Modified: qpid/trunk/qpid/cpp/src/tests/legacystore/run_python_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/legacystore/run_python_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/legacystore/run_python_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/legacystore/run_python_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,5 @@ -#!/usr/bin/env bash +#!/usr/bin/env python + # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,26 +19,29 @@ # under the License. # -source $QPID_TEST_COMMON +import os +import sys -ensure_python_tests +# Put the python test library on the path so we can get our +# environment -#Add our directory to the python path -export PYTHONPATH=$srcdir/legacystore:$PYTHONPATH +file_path = os.path.abspath(__file__) +store_tests_dir = os.path.split(file_path)[0] +tests_dir = os.path.split(store_tests_dir)[0] -MODULENAME=python_tests +sys.path.insert(0, tests_dir) -echo "Running Python tests in module ${MODULENAME}..." +from common import * -QPID_PORT=${QPID_PORT:-5672} -FAILING=${FAILING:-/dev/null} -PYTHON_TESTS=${PYTHON_TESTS:-$*} +# Add our directory to the python path -OUTDIR=${MODULENAME}.tmp -rm -rf $OUTDIR +ENV["PYTHONPATH"] = "{}:{}".format(store_tests_dir, ENV["PYTHONPATH"]) # To debug a test, add the following options to the end of the following line: # -v DEBUG -c qpid.messaging.io.ops [*.testName] -${QPID_PYTHON_TEST} -m ${MODULENAME} -I $FAILING -DOUTDIR=$OUTDIR \ - $PYTHON_TEST || exit 1 +port = start_broker("broker", "--load-module {}".format(STORE_LIB)) + +run_broker_tests(port, "-m python_tests", "-DOUTDIR={}".format(WORK_DIR)) + +check_results() Modified: qpid/trunk/qpid/cpp/src/tests/linearstore/CMakeLists.txt URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/linearstore/CMakeLists.txt?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/linearstore/CMakeLists.txt (original) +++ qpid/trunk/qpid/cpp/src/tests/linearstore/CMakeLists.txt Thu Apr 21 12:31:34 2016 @@ -17,13 +17,10 @@ # under the License. # -if(BUILD_LINEARSTORE AND BUILD_TESTING) +if (BUILD_LINEARSTORE AND BUILD_TESTING) message(STATUS "Building linearstore tests") -set(test_wrap ${shell} ${CMAKE_SOURCE_DIR}/src/tests/run_test${test_script_suffix} -buildDir=${CMAKE_BINARY_DIR}) - -add_test (linearstore_python_tests ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/run_python_tests${test_script_suffix}) +add_test(linearstore_python_tests ${PYTHON_EXECUTABLE} run_python_tests) endif (BUILD_LINEARSTORE AND BUILD_TESTING) - Modified: qpid/trunk/qpid/cpp/src/tests/linearstore/run_python_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/linearstore/run_python_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/linearstore/run_python_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/linearstore/run_python_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,5 @@ -#!/usr/bin/env bash +#!/usr/bin/env python + # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,25 +19,29 @@ # under the License. # -source ${QPID_TEST_COMMON} +import os +import sys -ensure_python_tests +# Put the python test library on the path so we can get our +# environment -#Add our directory to the python path -export PYTHONPATH=$srcdir/linearstore:${PYTHONPATH} +file_path = os.path.abspath(__file__) +store_tests_dir = os.path.split(file_path)[0] +tests_dir = os.path.split(store_tests_dir)[0] -MODULENAME=python_tests +sys.path.insert(0, tests_dir) -echo "Running Python tests in module ${MODULENAME}..." +from common import * -QPID_PORT=${QPID_PORT:-5672} -FAILING=${FAILING:-/dev/null} -PYTHON_TESTS=${PYTHON_TESTS:-$*} +# Add our directory to the python path -OUTDIR=${MODULENAME}.tmp -rm -rf ${OUTDIR} +ENV["PYTHONPATH"] = "{}:{}".format(store_tests_dir, ENV["PYTHONPATH"]) # To debug a test, add the following options to the end of the following line: # -v DEBUG -c qpid.messaging.io.ops [*.testName] -${QPID_PYTHON_TEST} -m ${MODULENAME} -I ${FAILING} -DOUTDIR=${OUTDIR} ${PYTHON_TEST} || exit 1 +port = start_broker("broker", "--load-module {}".format(STORE_LIB)) + +run_broker_tests(port, "-m python_tests", "-DOUTDIR={}".format(WORK_DIR)) + +check_results() Added: qpid/trunk/qpid/cpp/src/tests/plano.py URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/plano.py?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/plano.py (added) +++ qpid/trunk/qpid/cpp/src/tests/plano.py Thu Apr 21 12:31:34 2016 @@ -0,0 +1,543 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from __future__ import print_function + +import atexit as _atexit +import codecs as _codecs +import fnmatch as _fnmatch +import getpass as _getpass +import os as _os +import random as _random +import re as _re +import shutil as _shutil +import subprocess as _subprocess +import sys as _sys +import tarfile as _tarfile +import tempfile as _tempfile +import traceback as _traceback + +# See documentation at http://www.ssorj.net/projects/plano.html + +def fail(message, *args): + error(message, *args) + + if isinstance(message, BaseException): + raise message + + raise Exception(message) + +def error(message, *args): + _print_message("Error", message, args, _sys.stderr) + +def warn(message, *args): + _print_message("Warn", message, args, _sys.stderr) + +def notice(message, *args): + _print_message(None, message, args, _sys.stdout) + +def debug(message, *args): + _print_message("Debug", message, args, _sys.stdout) + +def exit(message=None, *args): + if message is None: + _sys.exit() + + _print_message("Error", message, args, _sys.stderr) + + _sys.exit(1) + +def _print_message(category, message, args, file): + message = _format_message(category, message, args) + + print(message, file=file) + file.flush() + +def _format_message(category, message, args): + if isinstance(message, BaseException): + message = str(message) + + if message == "": + message = message.__class__.__name__ + + if category: + message = "{}: {}".format(category, message) + + if args: + message = message.format(*args) + + script = split(_sys.argv[0])[1] + message = "{}: {}".format(script, message) + + return message + +def flush(): + _sys.stdout.flush() + _sys.stderr.flush() + +absolute_path = _os.path.abspath +normalize_path = _os.path.normpath +exists = _os.path.exists +is_absolute = _os.path.isabs +is_dir = _os.path.isdir +is_file = _os.path.isfile +is_link = _os.path.islink + +join = _os.path.join +split = _os.path.split +split_extension = _os.path.splitext + +LINE_SEP = _os.linesep +PATH_SEP = _os.sep +PATH_VAR_SEP = _os.pathsep +ENV = _os.environ +ARGS = _sys.argv + +current_dir = _os.getcwd + +def home_dir(user=""): + return _os.path.expanduser("~{}".format(user)) + +def parent_dir(path): + path = normalize_path(path) + parent, child = split(path) + + return parent + +def file_name(file): + file = normalize_path(file) + dir, name = split(file) + + return name + +def name_stem(file): + name = file_name(file) + + if name.endswith(".tar.gz"): + name = name[:-3] + + stem, ext = split_extension(name) + + return stem + +def name_extension(file): + name = file_name(file) + stem, ext = split_extension(name) + + return ext + +def read(file): + with _codecs.open(file, encoding="utf-8", mode="r") as f: + return f.read() + +def write(file, string): + with _codecs.open(file, encoding="utf-8", mode="w") as f: + f.write(string) + + return file + +def append(file, string): + with _codecs.open(file, encoding="utf-8", mode="a") as f: + f.write(string) + + return file + +def prepend(file, string): + orig = read(file) + prepended = string + orig + + return write(file, prepended) + +def touch(file): + return append(file, "") + +def tail(file, n): + return "".join(tail_lines(file, n)) + +def read_lines(file): + with _codecs.open(file, encoding="utf-8", mode="r") as f: + return f.readlines() + +def write_lines(file, lines): + with _codecs.open(file, encoding="utf-8", mode="r") as f: + f.writelines(lines) + + return file + +def append_lines(file, lines): + with _codecs.open(file, encoding="utf-8", mode="a") as f: + f.writelines(string) + + return file + +def prepend_lines(file, lines): + orig_lines = read_lines(file) + + with _codecs.open(file, encoding="utf-8", mode="w") as f: + f.writelines(lines) + f.writelines(orig_lines) + + return file + +# Derived from http://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail +def tail_lines(file, n): + assert n >= 0 + + with _codecs.open(file, encoding="utf-8", mode="r") as f: + pos = n + 1 + lines = list() + + while len(lines) <= n: + try: + f.seek(-pos, 2) + except IOError: + f.seek(0) + break + finally: + lines = f.readlines() + + pos *= 2 + + return lines[-n:] + +_temp_dir = _tempfile.mkdtemp(prefix="plano.") + +def _get_temp_file(key): + assert not key.startswith("_") + + return join(_temp_dir, "_file_{}".format(key)) + +def _remove_temp_dir(): + _shutil.rmtree(_temp_dir, ignore_errors=True) + +_atexit.register(_remove_temp_dir) + +def read_temp(key): + file = _get_temp_file(key) + return read(file) + +def write_temp(key, string): + file = _get_temp_file(key) + return write(file, string) + +def append_temp(key, string): + file = _get_temp_file(key) + return append(file, string) + +def prepend_temp(key, string): + file = _get_temp_file(key) + return prepend(file, string) + +def make_temp(key): + return append_temp(key, "") + +def open_temp(key, mode="r"): + file = _get_temp_file(key) + return _codecs.open(file, encoding="utf-8", mode=mode) + +# This one is deleted on process exit +def make_temp_dir(): + return _tempfile.mkdtemp(prefix="_dir_", dir=_temp_dir) + +# This one sticks around +def make_user_temp_dir(): + temp_dir = _tempfile.gettempdir() + user = _getpass.getuser() + user_temp_dir = join(temp_dir, user) + + return make_dir(user_temp_dir) + +def copy(from_path, to_path): + notice("Copying '{}' to '{}'", from_path, to_path) + + to_dir = parent_dir(to_path) + + if to_dir: + make_dir(to_dir) + + if is_dir(from_path): + _copytree(from_path, to_path, symlinks=True) + else: + _shutil.copy(from_path, to_path) + + return to_path + +def move(from_path, to_path): + notice("Moving '{}' to '{}'", from_path, to_path) + + _shutil.move(from_path, to_path) + + return to_path + +def rename(path, expr, replacement): + path = normalize_path(path) + parent_dir, name = split(path) + to_name = string_replace(name, expr, replacement) + to_path = join(parent_dir, to_name) + + notice("Renaming '{}' to '{}'", path, to_path) + + move(path, to_path) + + return to_path + +def remove(path): + notice("Removing '{}'", path) + + if not exists(path): + return + + if is_dir(path): + _shutil.rmtree(path, ignore_errors=True) + else: + _os.remove(path) + + return path + +def make_link(source_path, link_file): + if exists(link_file): + assert read_link(link_file) == source_path + return + + _os.symlink(source_path, link_file) + + return link_file + +def read_link(file): + return _os.readlink(file) + +def find(dir, *patterns): + matched_paths = set() + + if not patterns: + patterns = ("*",) + + for root, dirs, files in _os.walk(dir): + for pattern in patterns: + matched_dirs = _fnmatch.filter(dirs, pattern) + matched_files = _fnmatch.filter(files, pattern) + + matched_paths.update([join(root, x) for x in matched_dirs]) + matched_paths.update([join(root, x) for x in matched_files]) + + return sorted(matched_paths) + +def find_any_one(dir, *patterns): + paths = find(dir, *patterns) + + if len(paths) == 0: + return + + return paths[0] + +def find_only_one(dir, *patterns): + paths = find(dir, *patterns) + + if len(paths) == 0: + return + + assert len(paths) == 1 + + return paths[0] + +# find_via_expr? + +def string_replace(string, expr, replacement, count=0): + return _re.sub(expr, replacement, string, count) + +def make_dir(dir): + if not exists(dir): + _os.makedirs(dir) + + return dir + +# Returns the current working directory so you can change it back +def change_dir(dir): + notice("Changing directory to '{}'", dir) + + cwd = current_dir() + _os.chdir(dir) + return cwd + +def list_dir(dir, *patterns): + assert is_dir(dir) + + names = _os.listdir(dir) + + if not patterns: + return sorted(names) + + matched_names = set() + + for pattern in patterns: + matched_names.update(_fnmatch.filter(names, pattern)) + + return sorted(matched_names) + +class working_dir(object): + def __init__(self, dir): + self.dir = dir + self.prev_dir = None + + def __enter__(self): + self.prev_dir = change_dir(self.dir) + return self.dir + + def __exit__(self, type, value, traceback): + change_dir(self.prev_dir) + +def _init_call(command, args, kwargs): + if args: + command = command.format(*args) + + if "shell" not in kwargs: + kwargs["shell"] = True + + notice("Calling '{}'", command) + + return command, kwargs + +def call(command, *args, **kwargs): + command, args = _init_call(command, args, kwargs) + _subprocess.check_call(command, **kwargs) + +def call_for_output(command, *args, **kwargs): + command, args = _init_call(command, args, kwargs) + return _subprocess.check_output(command, **kwargs) + +def make_archive(input_dir, output_dir, archive_stem): + temp_dir = make_temp_dir() + temp_input_dir = join(temp_dir, archive_stem) + + copy(input_dir, temp_input_dir) + make_dir(output_dir) + + output_file = "{}.tar.gz".format(join(output_dir, archive_stem)) + output_file = absolute_path(output_file) + + with working_dir(temp_dir): + call("tar -czf {} {}", output_file, archive_stem) + + return output_file + +def extract_archive(archive_file, output_dir): + assert is_file(archive_file) + + if not exists(output_dir): + make_dir(output_dir) + + archive_file = absolute_path(archive_file) + + with working_dir(output_dir): + call("tar -xf {}", archive_file) + + return output_dir + +def rename_archive(archive_file, new_archive_stem): + assert is_file(archive_file) + + if name_stem(archive_file) == new_archive_stem: + return + + temp_dir = make_temp_dir() + + extract_archive(archive_file, temp_dir) + + input_name = list_dir(temp_dir)[0] + input_dir = join(temp_dir, input_name) + output_file = make_archive(input_dir, temp_dir, new_archive_stem) + output_name = file_name(output_file) + archive_dir = parent_dir(archive_file) + new_archive_file = join(archive_dir, output_name) + + move(output_file, new_archive_file) + remove(archive_file) + + return new_archive_file + +def random_port(min=49152, max=65535): + return _random.randint(min, max) + +# Modified copytree impl that allows for already existing destination +# dirs +def _copytree(src, dst, symlinks=False, ignore=None): + """Recursively copy a directory tree using copy2(). + + If exception(s) occur, an Error is raised with a list of reasons. + + If the optional symlinks flag is true, symbolic links in the + source tree result in symbolic links in the destination tree; if + it is false, the contents of the files pointed to by symbolic + links are copied. + + The optional ignore argument is a callable. If given, it + is called with the `src` parameter, which is the directory + being visited by copytree(), and `names` which is the list of + `src` contents, as returned by os.listdir(): + + callable(src, names) -> ignored_names + + Since copytree() is called recursively, the callable will be + called once for each directory that is copied. It returns a + list of names relative to the `src` directory that should + not be copied. + + XXX Consider this example code rather than the ultimate tool. + + """ + names = _os.listdir(src) + if ignore is not None: + ignored_names = ignore(src, names) + else: + ignored_names = set() + + if not exists(dst): + _os.makedirs(dst) + errors = [] + for name in names: + if name in ignored_names: + continue + srcname = _os.path.join(src, name) + dstname = _os.path.join(dst, name) + try: + if symlinks and _os.path.islink(srcname): + linkto = _os.readlink(srcname) + _os.symlink(linkto, dstname) + elif _os.path.isdir(srcname): + _copytree(srcname, dstname, symlinks, ignore) + else: + # Will raise a SpecialFileError for unsupported file types + _shutil.copy2(srcname, dstname) + # catch the Error from the recursive copytree so that we can + # continue with other files + except _shutil.Error as err: + errors.extend(err.args[0]) + except EnvironmentError as why: + errors.append((srcname, dstname, str(why))) + try: + _shutil.copystat(src, dst) + except OSError as why: + if _shutil.WindowsError is not None and isinstance \ + (why, _shutil.WindowsError): + # Copying file access times may fail on Windows + pass + else: + errors.append((src, dst, str(why))) + if errors: + raise _shutil.Error(errors) Added: qpid/trunk/qpid/cpp/src/tests/run.py URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run.py?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run.py (added) +++ qpid/trunk/qpid/cpp/src/tests/run.py Thu Apr 21 12:31:34 2016 @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from common import * + +call(" ".join(ARGS[1:])) + Propchange: qpid/trunk/qpid/cpp/src/tests/run.py ------------------------------------------------------------------------------ svn:executable = * Modified: qpid/trunk/qpid/cpp/src/tests/run_acl_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_acl_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_acl_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_acl_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -19,148 +19,52 @@ # under the License. # -# Run the acl tests. $srcdir is set by the Makefile. -source ./test_env.sh -DATA_DIR=`pwd`/data_dir -DATA_DIRI=`pwd`/data_diri -DATA_DIRU=`pwd`/data_diru -DATA_DIRQ=`pwd`/data_dirq - -trap stop_brokers INT TERM QUIT - -start_brokers() { - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIR --acl-file policy.acl --auth no --log-enable trace+:acl --log-to-file local.log > qpidd.port - LOCAL_PORT=`cat qpidd.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRI --acl-file policy.acl --auth no --connection-limit-per-ip 2 --log-to-file locali.log > qpiddi.port - LOCAL_PORTI=`cat qpiddi.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRU --acl-file policy.acl --auth no --connection-limit-per-user 2 --log-to-file localu.log > qpiddu.port - LOCAL_PORTU=`cat qpiddu.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRQ --acl-file policy.acl --auth no --max-queues-per-user 2 --log-to-file localq.log > qpiddq.port - LOCAL_PORTQ=`cat qpiddq.port` -} - -start_noacl_noauth_brokers() { - ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIR --auth no --log-to-file local.log > qpidd.port - LOCAL_PORT=`cat qpidd.port` - ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIRI --auth no --log-to-file locali.log > qpiddi.port - LOCAL_PORTI=`cat qpiddi.port` - ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIRU --auth no --log-to-file localu.log > qpiddu.port - LOCAL_PORTU=`cat qpiddu.port` - ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIRQ --auth no --log-to-file localq.log > qpiddq.port - LOCAL_PORTQ=`cat qpiddq.port` -} - -start_noacl_auth_brokers() { - sasl_config_file=$builddir/sasl_config - if [ ! -f $sasl_config_file ] ; then - echo Creating sasl database - . $srcdir/sasl_test_setup.sh - fi - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIR --auth yes --sasl-config=$sasl_config_file --log-to-file local.log > qpidd.port - LOCAL_PORT=`cat qpidd.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRI --auth yes --sasl-config=$sasl_config_file --log-to-file locali.log > qpiddi.port - LOCAL_PORTI=`cat qpiddi.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRU --auth yes --sasl-config=$sasl_config_file --log-to-file localu.log > qpiddu.port - LOCAL_PORTU=`cat qpiddu.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --data-dir $DATA_DIRQ --auth yes --sasl-config=$sasl_config_file --log-to-file localq.log > qpiddq.port - LOCAL_PORTQ=`cat qpiddq.port` -} - -stop_brokers() { - $QPIDD_EXEC --no-module-dir -q --port $LOCAL_PORT - $QPIDD_EXEC --no-module-dir -q --port $LOCAL_PORTI - $QPIDD_EXEC --no-module-dir -q --port $LOCAL_PORTU - $QPIDD_EXEC --no-module-dir -q --port $LOCAL_PORTQ -} - -delete_directories() { - rm -rf $DATA_DIR - rm -rf $DATA_DIRI - rm -rf $DATA_DIRU - rm -rf $DATA_DIRQ -} - -delete_logfiles() { - rm -rf local.log - rm -rf locali.log - rm -rf localu.log - rm -rf localq.log -} - -create_directories() { - mkdir -p $DATA_DIR - mkdir -p $DATA_DIRI - mkdir -p $DATA_DIRU - mkdir -p $DATA_DIRQ -} - -populate_directories() { - cp $srcdir/policy.acl $DATA_DIR - cp $srcdir/policy.acl $DATA_DIRI - cp $srcdir/policy.acl $DATA_DIRU - cp $srcdir/policy.acl $DATA_DIRQ -} - -test_loading_acl_from_absolute_path(){ - POLICY_FILE=$srcdir/policy.acl - rm -f temp.log - PORT=`../qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --no-data-dir --auth no --acl-file $POLICY_FILE -t --log-to-file temp.log 2>/dev/null` - ACL_FILE=`grep "notice ACL: Read file" temp.log | sed 's/^.*Read file //'` - $QPIDD_EXEC --no-module-dir -q --port $PORT - if test "$ACL_FILE" != "\"$POLICY_FILE\""; then - echo "unable to load policy file from an absolute path"; - return 1; - fi - rm temp.log -} - -test_noacl_deny_create_link() { - delete_logfiles - start_noacl_noauth_brokers - echo "Running no-acl, no-auth tests using brokers on ports $LOCAL_PORT, $LOCAL_PORTI, $LOCAL_PORTU, and $LOCAL_PORTQ" - $QPID_CONFIG_EXEC -a localhost:$LOCAL_PORT add exchange topic fed.topic - $QPID_CONFIG_EXEC -a localhost:$LOCAL_PORTI add exchange topic fed.topic - $QPID_ROUTE_EXEC dynamic add localhost:$LOCAL_PORT localhost:$LOCAL_PORTI fed.topic 2>/dev/null - sleep 2 - stop_brokers - grep -q "must specify ACL create link rules" local.log - if [ $? -eq 0 ] - then - echo "Test fail - Broker with auth=no should have allowed link creation"; - return 1; - fi - - delete_logfiles - start_noacl_auth_brokers - echo "Running no-acl, auth tests using brokers on ports $LOCAL_PORT, $LOCAL_PORTI, $LOCAL_PORTU, and $LOCAL_PORTQ" - $QPID_CONFIG_EXEC -a localhost:$LOCAL_PORT add exchange topic fed.topic - $QPID_CONFIG_EXEC -a localhost:$LOCAL_PORTI add exchange topic fed.topic - $QPID_ROUTE_EXEC dynamic add localhost:$LOCAL_PORT localhost:$LOCAL_PORTI fed.topic 2>/dev/null - sleep 2 - stop_brokers - grep -q "must specify ACL create link rules" local.log - if [ $? -ne 0 ] - then - echo "Test fail - Broker with no ACL and --auth=yes file did not deny link creation"; - return 1; - fi -} - -if test -d ${PYTHON_DIR} ; then - # run acl.py test file - delete_directories - create_directories - populate_directories - delete_logfiles - start_brokers - echo "Running acl tests using brokers on ports $LOCAL_PORT, $LOCAL_PORTI, $LOCAL_PORTU, and $LOCAL_PORTQ" - $QPID_PYTHON_TEST -b localhost:$LOCAL_PORT -m acl -Dport-i=$LOCAL_PORTI -Dport-u=$LOCAL_PORTU -Dport-q=$LOCAL_PORTQ || EXITCODE=1 - stop_brokers || EXITCODE=1 - # - test_loading_acl_from_absolute_path || EXITCODE=1 - # - test_noacl_deny_create_link || EXITCODE=1 - delete_directories - exit $EXITCODE -fi +from common import * +policy_file = join(BUILD_DIR, "src", "tests", "policy.acl") +broker_args = "--acl-file {}".format(policy_file) + +broker_port = start_broker("broker", broker_args, "--log-enable debug+:acl") +broker_i_port = start_broker("broker_i", broker_args, "--connection-limit-per-ip 2") +broker_u_port = start_broker("broker_u", broker_args, "--connection-limit-per-user 2") +broker_q_port = start_broker("broker_q", broker_args, "--max-queues-per-user 2") + +run_broker_tests(broker_port, "-m acl", + "-Dport-i={}".format(broker_i_port), + "-Dport-u={}".format(broker_u_port), + "-Dport-q={}".format(broker_q_port), + "-Dpolicy-file={}".format(policy_file)) + +# Test interaction of authentication and link creation + +broker_1_port = start_broker("broker_1") +broker_2_port = start_broker("broker_2") + +configure_broker(broker_1_port, "add exchange topic fed.topic") +configure_broker(broker_2_port, "add exchange topic fed.topic") + +connect_brokers("dynamic add", + "localhost:{}".format(broker_1_port), + "localhost:{}".format(broker_2_port), + "fed.topic") + +sasl_config_dir = join(BUILD_DIR, "src", "tests", "sasl_config") +broker_args = "--auth yes --sasl-config {}".format(sasl_config_dir) + +broker_3_port = start_broker("broker_3", broker_args, auth_disabled=False) +broker_4_port = start_broker("broker_4", broker_args, auth_disabled=False) + +configure_broker(broker_3_port, "add exchange topic fed.topic") +configure_broker(broker_4_port, "add exchange topic fed.topic") + +try: + connect_brokers("dynamic add", + "localhost:{}".format(broker_3_port), + "localhost:{}".format(broker_4_port), + "fed.topic") + + fail("Broker with no ACLs but auth enabled did not deny link creation") +except: + pass + +check_results() Modified: qpid/trunk/qpid/cpp/src/tests/run_cli_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_cli_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_cli_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_cli_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -19,63 +19,45 @@ # under the License. # -# Run the cli-utility tests. +# Run the cli-utility tests -source ./test_env.sh -CLI_DIR=$PYTHON_COMMANDS +from common import * -trap stop_brokers INT TERM QUIT +cli_dir = join(SOURCE_DIR, "management", "python", "bin") -# helper function to create test.xquery in the current directory, so -# that the python test program can find it. yes, it leaves a turd. -create_test_xquery() { - cat <<EOF > ./test.xquery - let \$w := ./weather - return \$w/station = 'Raleigh-Durham International Airport (KRDU)' - and \$w/temperature_f > 50 - and \$w/temperature_f - \$w/dewpoint > 5 - and \$w/wind_speed_mph > 7 - and \$w/wind_speed_mph < 20 -EOF -} - -start_brokers() { - # if the xml lib is present, use it. if not, disable any tests which - # look like they're xml related. - # if we start supporting xml on windows, it will need something similar - # here - if [ -f ../xml.so ] ; then - xargs="--load-module ../xml.so" - if [ ! -f test.xquery ] ; then - create_test_xquery - fi - targs="" - else - echo "Ignoring XML tests" - xargs="" - targs="--ignore=*xml*" - fi - - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-data-dir --no-module-dir --mgmt-publish no --auth no $xargs > qpidd.port - LOCAL_PORT=`cat qpidd.port` - ../qpidd --daemon --port 0 --interface 127.0.0.1 --no-data-dir --no-module-dir --mgmt-publish no --auth no $xargs > qpidd.port - REMOTE_PORT=`cat qpidd.port` -} - -stop_brokers() { - $QPIDD_EXEC --no-module-dir -q --port $LOCAL_PORT - $QPIDD_EXEC --no-module-dir -q --port $REMOTE_PORT -} - -if test -d ${PYTHON_DIR} ; then - start_brokers - echo "Running CLI tests using brokers on ports $LOCAL_PORT $REMOTE_PORT" - PYTHON_TESTS=${PYTHON_TESTS:-$*} - $QPID_PYTHON_TEST -m cli_tests -b localhost:$LOCAL_PORT -Dremote-port=$REMOTE_PORT -Dcli-dir=$CLI_DIR $targs $PYTHON_TESTS $@ - RETCODE=$? - stop_brokers - if test x$RETCODE != x0; then - echo "FAIL CLI tests"; exit 1; - fi -fi +xquery = """ +let $w := ./weather +return $w/station = 'Raleigh-Durham International Airport (KRDU)' + and $w/temperature_f > 50 + and $w/temperature_f - $w/dewpoint > 5 + and $w/wind_speed_mph > 7 + and $w/wind_speed_mph < 20 +""" +xquery_file = write(join(WORK_DIR, "xquery_file"), xquery) +# If the xml lib is present, use it. if not, disable any tests which +# look like they're xml related. +# +# If we start supporting xml on windows, it will need something +# similar here. + +if XML_LIB is not None: + broker_args = "--load-module {}".format(XML_LIB) + test_args = "" +else: + notice("Ignoring XML tests") + + broker_args = "" + test_args = "--ignore=*xml*" + +local_port = start_broker("local", broker_args) +remote_port = start_broker("remote", broker_args) + +run_broker_tests(local_port, + "-m cli_tests", + "-Dremote-port={}".format(remote_port), + "-Dcli-dir={}".format(cli_dir), + "-Dxquery-file={}".format(xquery_file), + test_args) + +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_client_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_client_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_client_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_client_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +port = start_broker("broker") + +ENV["QPID_PORT"] = str(port) + +call_with_valgrind("qpid-client-test --verbose") + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_client_tests ------------------------------------------------------------------------------ svn:executable = * Modified: qpid/trunk/qpid/cpp/src/tests/run_federation_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_federation_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_federation_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_federation_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -19,43 +19,42 @@ # under the License. # -# Run the federation tests. +from common import * -source ./test_env.sh -#set -x -trap stop_brokers INT TERM QUIT - -if [ -f ../xml.so ] ; then - MODULES="--load-module xml" # Load the XML exchange and run XML exchange federation tests - SKIPTESTS= -else - MODULES="--no-module-dir" - SKIPTESTS='-i *_xml' # note: single quotes prevent expansion of * -fi - -QPIDD_CMD="../qpidd --daemon --port 0 --interface 127.0.0.1 --no-data-dir $MODULES --auth no --log-enable=info+ --log-enable=debug+:Bridge --log-to-file" -start_brokers() { - rm -f fed_local.log fed_remote.log fed_b1.log fed_b2.log - LOCAL_PORT=$($QPIDD_CMD fed_local.log --federation-tag LOCAL) - REMOTE_PORT=$($QPIDD_CMD fed_remote.log --federation-tag REMOTE) - REMOTE_B1=$($QPIDD_CMD fed_b1.log --federation-tag B1) - REMOTE_B2=$($QPIDD_CMD fed_b2.log --federation-tag B2) -} - -stop_brokers() { - $QPIDD_EXEC $MODULES -q --port $LOCAL_PORT - $QPIDD_EXEC $MODULES -q --port $REMOTE_PORT - $QPIDD_EXEC $MODULES -q --port $REMOTE_B1 - $QPIDD_EXEC $MODULES -q --port $REMOTE_B2 -} - -if test -d ${PYTHON_DIR} ; then - start_brokers - echo "Running federation tests using brokers on ports $LOCAL_PORT $REMOTE_PORT $REMOTE_B1 $REMOTE_B2" - $QPID_PYTHON_TEST -m federation ${SKIPTESTS} -b localhost:$LOCAL_PORT -Dremote-port=$REMOTE_PORT -Dextra-brokers="$REMOTE_B1 $REMOTE_B2" $@ - RETCODE=$? - stop_brokers - if test x$RETCODE != x0; then - echo "FAIL federation tests"; exit 1; - fi -fi +common_args = "--log-enable=debug+:Bridge" +module_args = None +test_args = "-i *_xml" + +sys_test_args = [ + "-i federation_sys.A_Long*", + "-i federation_sys.B_Long*", + "-i federation_sys.C_*", + "-i federation_sys.D_*", + "-i federation_sys.E_*", + "-i federation_sys.F_*", + "-i federation_sys.G_*", + "-i federation_sys.H_*", +] + +if XML_LIB is not None: + module_args = "--load-module {}".format(XML_LIB) + test_args = None + +local_port = start_broker("local", common_args, module_args, "--federation-tag LOCAL") +remote_port = start_broker("remote", common_args, module_args, "--federation-tag REMOTE") +remote_b1 = start_broker("remote_b1", common_args, module_args, "--federation-tag REMOTE_B1") +remote_b2 = start_broker("remote_b2", common_args, module_args, "--federation-tag REMOTE_B2") + +run_broker_tests(local_port, "-m federation", + "-Dremote-port={}".format(remote_port), + "-Dextra-brokers='{} {}'".format(remote_b1, remote_b2), + test_args) + +run_broker_tests(local_port, "-m headers_federation", "-Dremote-port={}".format(remote_port)) + +run_broker_tests(remote_port, "-m federation_sys", + "-Dlocal-port={}".format(local_port), + "-Dremote-port={}".format(remote_port), + *sys_test_args) + +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +port = start_broker("broker", "--default-flow-stop-threshold=80 --default-flow-resume-threshold=70") + +run_broker_tests(port, "-m queue_flow_limit_tests") + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests ------------------------------------------------------------------------------ svn:executable = * Modified: qpid/trunk/qpid/cpp/src/tests/run_ha_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_ha_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_ha_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_ha_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -8,9 +8,9 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -19,11 +19,19 @@ # under the License. # +from common import * + +# ENV["QPID_USE_SWIG_CLIENT"] = "1" # XXX is this necessary? + +# XXX These tests hang, and I can't figure out why +# -i *tx_block_threads -# Make sure the python tools are available. They will be if we are building in -# a checkoug, they may not be in a distribution. -test -d $PYTHON_COMMANDS -a -x $PYTHON_COMMANDS/qpid-ha -a -x $PYTHON_COMMANDS/qpid-config || { echo "Skipping HA tests, qpid-ha or qpid-config not available."; exit 0; } +# ENV["QPID_NO_MODULE_DIR"] = "1" # Don't accidentally load installed modules +# ENV["QPID_DATA_DIR"] = "" +# ENV["QPID_CONFIG"] = join(BUILD_DIR, "src", "tests", "qpidd-empty.conf") +# ENV["QPID_PORT"] = "" +# ENV["QPID_LOG_TO_FILE"] = join(BUILD_DIR, "src", "tests", "gah.log") -srcdir=`dirname $0` -$srcdir/ha_tests.py +call("qpid-python-test -m ha_tests -DOUTDIR={}", WORK_DIR) +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +call("qpid-python-test -m idle_timeout_tests -DOUTDIR={}", WORK_DIR) + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests ------------------------------------------------------------------------------ svn:executable = * Modified: qpid/trunk/qpid/cpp/src/tests/run_interlink_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_interlink_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_interlink_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_interlink_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -19,8 +19,8 @@ # under the License. # -test -e "$AMQP_LIB" || { echo "Skipping AMQP 1.0 based tests; AMQP 1.0 support not available."; exit 0; } +from common import * -srcdir=`dirname $0` -$srcdir/interlink_tests.py +call("qpid-python-test -m interlink_tests -DOUTDIR={}", WORK_DIR) +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_interop_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_interop_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_interop_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_interop_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +port = start_broker("broker", "--load-module {}".format(AMQP_LIB)) + +ENV["QPID_INTEROP_URL"] = "localhost:{}".format(port) + +call("qpid-python-test -m interop_tests -DOUTDIR={}", WORK_DIR) + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_interop_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,116 @@ +#!/usr/bin/env bash + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +source env.sh + +# Check whether we have any globally configured IPv6 addresses +# - if not then we can't run the tests because ipv6 lookups won't +# work within the qpid code. This is a deliberate feature to avoid +# getting addresses that can't be routed by the machine. + +if ip -f inet6 -o addr | cut -f 9 -s -d' ' | grep global > /dev/null ; then + echo "IPv6 addresses configured - continuing" +else + echo "No global IPv6 addresses configured - skipping test" + exit 0 +fi + + +CONFIG=$(dirname $0)/qpidd-empty.conf +TEST_HOSTNAME=::1 +COUNT=10 + +trap cleanup EXIT + +error() { echo $*; exit 1; } + +# Don't need --no-module-dir or --no-data-dir as they are set as env vars in env.sh +COMMON_OPTS="--interface [::1] --daemon --auth no --config $CONFIG" + +# Record all broker ports started +unset PORTS +declare -a PORTS + +# Start new brokers: +# $1 must be integer +# $2 = extra opts +# Append used ports to PORTS variable +start_brokers() { + local -a ports + for (( i=0; $i<$1; i++)) do + ports[$i]=$(qpidd --port 0 $COMMON_OPTS $2) + done + PORTS=( ${PORTS[@]} ${ports[@]} ) +} + +stop_brokers() { + for port in "${PORTS[@]}"; + do + qpidd -qp $port + done + PORTS=() +} + +cleanup() { + stop_brokers +} + +start_brokers 1 +PORT=${PORTS[0]} +echo "Started IPv6 smoke perftest on broker port $PORT" + +## Test connection via connection settings +qpid-perftest --count ${COUNT} --port ${PORT} -b $TEST_HOSTNAME --summary + +## Test connection with a URL +URL="amqp:[$TEST_HOSTNAME]:$PORT" + +qpid-send -b $URL --content-string=hello -a "foo;{create:always}" +MSG=`qpid-receive -b $URL -a "foo;{create:always}" --messages 1` +test "$MSG" = "hello" || { echo "receive failed '$MSG' != 'hello'"; exit 1; } + +stop_brokers + +# Federation smoke test follows + +# Start 2 brokers + +start_brokers 2 +echo "Started Federated brokers on ports ${PORTS[*]}" +# Make broker urls +BROKER0="[::1]:${PORTS[0]}" +BROKER1="[::1]:${PORTS[1]}" +TEST_QUEUE=ipv6-fed-test + +qpid-config -b $BROKER0 add queue $TEST_QUEUE +qpid-config -b $BROKER1 add queue $TEST_QUEUE +qpid-route dynamic add $BROKER1 $BROKER0 amq.direct +qpid-config -b $BROKER1 bind amq.direct $TEST_QUEUE $TEST_QUEUE +qpid-route route map $BROKER1 + +datagen --count 100 | tee rdata-in | + ./qpid-send -b amqp:$BROKER0 -a amq.direct/$TEST_QUEUE --content-stdin +qpid-receive -b amqp:$BROKER1 -a $TEST_QUEUE --print-content yes -m 0 > rdata-out + +cmp rdata-in rdata-out || { echo "Federated data over IPv6 does not compare"; exit 1; } + +stop_brokers +rm rdata-in rdata-out Propchange: qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_logging_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_logging_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_logging_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_logging_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +set -eu + +source env.sh + +export WORK_DIR=$(mktemp -d $PWD/run_logging_tests_XXXX) + +exit_code=0 + +dynamic_log_hires_timestamp || exit_code=1 +dynamic_log_level_test || exit_code=1 + +if (( exit_code != 0 )); then + echo "Logging test failures" + exit $exit_code +fi + +rm -rf $WORK_DIR Propchange: qpid/trunk/qpid/cpp/src/tests/run_logging_tests ------------------------------------------------------------------------------ svn:executable = * Modified: qpid/trunk/qpid/cpp/src/tests/run_long_federation_sys_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_long_federation_sys_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_long_federation_sys_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_long_federation_sys_tests Thu Apr 21 12:31:34 2016 @@ -21,4 +21,4 @@ # Run the federation system tests (long version). -./run_federation_sys_tests LONG_TEST $@ +USE_LONG_TEST=1 ./run_federation_sys_tests $@ Modified: qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -18,45 +18,30 @@ # specific language governing permissions and limitations # under the License. # -#script to run a sequence of message group queue tests via make -source $QPID_TEST_COMMON +from common import * -ensure_python_tests +port = start_broker("broker") -QUEUE_NAME="group-queue" -GROUP_KEY="My-Group-Id" +commands = [ + "qpid-config -b {} add queue group-queue --group-header=My-Group-Id --shared-groups", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 3 --ack-frequency 7 --randomize-group-size --interleave 3", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 7 --ack-frequency 7 --randomize-group-size", + "qpid-config -b {} add queue group-queue-two --group-header=My-Group-Id --shared-groups", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 7 --ack-frequency 3 --randomize-group-size", + "msg_group_test -b {} -a group-queue-two --group-key My-Group-Id --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 3 --ack-frequency 7 --randomize-group-size --interleave 5", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 59 --group-size 5 --receivers 2 --senders 3 --capacity 1 --ack-frequency 3 --randomize-group-size", + "qpid-config -b {} del queue group-queue-two --force", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 59 --group-size 3 --receivers 2 --senders 3 --capacity 1 --ack-frequency 1 --randomize-group-size", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 211 --group-size 13 --receivers 2 --senders 3 --capacity 47 --ack-frequency 79 --interleave 53", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 10000 --group-size 1 --receivers 0 --senders 1", + "msg_group_test -b {} -a group-queue --group-key My-Group-Id --messages 10000 --receivers 5 --senders 0", + "qpid-config -b {} del queue group-queue --force", +] -BROKER_URL="${QPID_BROKER:-localhost}:${QPID_PORT:-5672}" - -run_test() { - "$@" -} - -##set -x - -declare -i i=0 -declare -a tests -tests=("qpid-config -b $BROKER_URL add queue $QUEUE_NAME --group-header=${GROUP_KEY} --shared-groups" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 3 --ack-frequency 7 --randomize-group-size --interleave 3" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 7 --ack-frequency 7 --randomize-group-size" - "qpid-config -b $BROKER_URL add queue ${QUEUE_NAME}-two --group-header=${GROUP_KEY} --shared-groups" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 7 --ack-frequency 3 --randomize-group-size" - "msg_group_test -b $BROKER_URL -a ${QUEUE_NAME}-two --group-key $GROUP_KEY --messages 103 --group-size 13 --receivers 2 --senders 3 --capacity 3 --ack-frequency 7 --randomize-group-size --interleave 5" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 59 --group-size 5 --receivers 2 --senders 3 --capacity 1 --ack-frequency 3 --randomize-group-size" - "qpid-config -b $BROKER_URL del queue ${QUEUE_NAME}-two --force" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 59 --group-size 3 --receivers 2 --senders 3 --capacity 1 --ack-frequency 1 --randomize-group-size" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 211 --group-size 13 --receivers 2 --senders 3 --capacity 47 --ack-frequency 79 --interleave 53" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 10000 --group-size 1 --receivers 0 --senders 1" - "msg_group_test -b $BROKER_URL -a $QUEUE_NAME --group-key $GROUP_KEY --messages 10000 --receivers 5 --senders 0" - "qpid-config -b $BROKER_URL del queue $QUEUE_NAME --force") - -while [ -n "${tests[i]}" ]; do - run_test ${tests[i]} - RETCODE=$? - if test x$RETCODE != x0; then - echo "FAILED message group test. Failed command: \"${tests[i]}\""; - exit 1; - fi - i+=1 -done +address = "localhost:{}".format(port) + +for command in commands: + call(command, address) + +check_results() Modified: qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests_soak URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests_soak?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests_soak (original) +++ qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests_soak Thu Apr 21 12:31:34 2016 @@ -18,13 +18,11 @@ # specific language governing permissions and limitations # under the License. # -#script to run a sequence of long-running message group tests via make -#setup path to find qpid-config and msg_group_test test progs -source ./test_env.sh -test -d $PYTHON_DIR || { echo "Skipping message group tests, no python dir."; exit 0; } +# Script to run a sequence of long-running message group tests via +# make -export PATH=$PWD:$srcdir:$PYTHON_COMMANDS:$PATH +source env.sh #set port to connect to via env var test -s qpidd.port && QPID_PORT=`cat qpidd.port` Modified: qpid/trunk/qpid/cpp/src/tests/run_paged_queue_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_paged_queue_tests?rev=1740289&r1=1740288&r2=1740289&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_paged_queue_tests (original) +++ qpid/trunk/qpid/cpp/src/tests/run_paged_queue_tests Thu Apr 21 12:31:34 2016 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one @@ -19,32 +19,27 @@ # under the License. # -#setup path to find qpid-config and sender/receiver test progs -source ./test_env.sh -trap stop_broker INT TERM QUIT - -export PATH=$PWD:$srcdir:$PYTHON_COMMANDS:$PATH - -start_broker() { - QPID_PORT=$($QPIDD_EXEC --daemon --port 0 --interface 127.0.0.1 --no-data-dir --paging-dir=$PWD/pqtest_data $MODULES --auth no) || { echo "Could not start broker"; exit 1; } -} - -stop_broker() { - $QPIDD_EXEC -q --port $QPID_PORT -} - -test_single_page() { - msgcount=1000 - qpid-send --messages $msgcount --content-size 1024 --broker "localhost:$QPID_PORT" --address "onepage; {create: always, node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_pages_loaded':1}}}}" - received=$(qpid-receive --address onepage --broker "localhost:$QPID_PORT" --messages $msgcount | wc -l) - if [[ $received -ne $msgcount ]]; then - echo "single page test failed: received $received messages, expected $msgcount" - exit 1 - fi -} - -start_broker -test_single_page -qpid-cpp-benchmark --broker "localhost:$QPID_PORT" --create-option "node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_size':0,'qpid.max_count':0,'qpid.flow_stop_size':0,'qpid.flow_resume_size':0,'qpid.flow_stop_count':0,'qpid.flow_resume_count':0}}}" -qpid-cpp-benchmark --broker "localhost:$QPID_PORT" --create-option "node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_size':0,'qpid.max_count':0,'qpid.flow_stop_size':0,'qpid.flow_resume_size':0,'qpid.flow_stop_count':0,'qpid.flow_resume_count':0}}}" --fill-drain -stop_broker +from common import * + +port = start_broker("broker", "--paging-dir={}".format(join(WORK_DIR, "pqtest_data"))) + +messages = 1000 +address = "onepage; {create: always, node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_pages_loaded':1}}}}" + +call_with_valgrind("qpid-send --messages {} --content-size 1024 --broker localhost:{} --address \"{}\"", + messages, port, address) + +output = call_for_output_with_valgrind("qpid-receive --address onepage --messages {} --broker localhost:{}", + messages, port) + +received = len(output.splitlines()) + +if received != messages: + fail("Single page test failed: received {} messages, expected {}", received, messages) + +option = "node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_size':0,'qpid.max_count':0,'qpid.flow_stop_size':0,'qpid.flow_resume_size':0,'qpid.flow_stop_count':0,'qpid.flow_resume_count':0}}}" + +call("qpid-cpp-benchmark --broker localhost:{} --create-option \"{}\"", port, option) +call("qpid-cpp-benchmark --broker localhost:{} --create-option \"{}\" --fill-drain", port, option) + +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_performance_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_performance_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_performance_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_performance_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +port = start_broker("broker") + +call_with_valgrind("qpid-perftest --summary --count 100 --port {}", port) + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_performance_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_python_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_python_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_python_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_python_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +load_module_arg = None + +if AMQP_LIB is not None: + load_module_arg = "--load-module {}".format(AMQP_LIB) + +acl_file = join(BUILD_DIR, "src", "tests", "policy.acl") +acl_file_arg = "--acl-file {}".format(acl_file) + +port = start_broker("broker", load_module_arg, acl_file_arg) + +# Native python tests + +run_broker_tests(port, "-m qpid_tests.broker_0_10 -m qpid.tests") + +# Swigged python tests + +failing_tests = join(BUILD_DIR, "src", "tests", "failing-amqp0-10-python-tests") + +ENV["QPID_USE_SWIG_CLIENT"] = "1" + +run_broker_tests(port, + "-m qpid.tests.messaging.message", + "-m qpid_tests.broker_0_10.priority", + "-m qpid_tests.broker_0_10.lvq", + "-m qpid_tests.broker_0_10.new_api", + "-I {}".format(failing_tests)) + +if AMQP_LIB is not None: + failing_tests = join(BUILD_DIR, "src", "tests", "failing-amqp1.0-python-tests") + + run_broker_tests(port, + "--define=\"protocol_version=amqp1.0\"", + "--define=\"policy_file={}\"".format(acl_file), + "-m qpid_tests.broker_1_0", + "-m qpid_tests.broker_0_10.new_api", + "-m assertions -m reject_release -m misc -m policies -m acl_1", + "-I {}".format(failing_tests)) + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_python_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_qmf_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_qmf_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_qmf_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_qmf_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +call("qpid-python-test -m qpidd_qmfv2_tests -DOUTDIR={}", WORK_DIR) + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_qmf_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_queue_redirect_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_queue_redirect_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_queue_redirect_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_queue_redirect_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +policy_file = join(BUILD_DIR, "src", "tests", "policy.acl") + +port = start_broker("broker", "--acl-file {}".format(policy_file), "--log-enable debug+:Model") + +run_broker_tests(port, "-m queue_redirect", "-Dpolicy-file={}".format(policy_file)) + +check_results() Added: qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from common import * + +ENV["QPID_PORT"] = start_broker("broker") + +call("ring_queue_test -c -s 4 -r 4") +call("ring_queue_test -s 4 -r 0") +call("ring_queue_test -s 1 -r 1") + +check_results() Propchange: qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests ------------------------------------------------------------------------------ svn:executable = * Added: qpid/trunk/qpid/cpp/src/tests/run_sasl_tests URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_sasl_tests?rev=1740289&view=auto ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_sasl_tests (added) +++ qpid/trunk/qpid/cpp/src/tests/run_sasl_tests Thu Apr 21 12:31:34 2016 @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +set -eu + +source env.sh + +export WORK_DIR=$(mktemp -d $PWD/run_sasl_tests_XXXX) + +echo "Created work dir '${WORK_DIR}'" + +min_sasl_version=131350 # Sasl version 2.1.22 +sasl_version=$(sasl_version) + +if (( $sasl_version < min_sasl_version )); then + echo "Sasl version is too old; found $version; require $min_version or greater" + echo "SKIPPING" + exit 0 +fi + +exit_code=0 + +function fail { + echo "FAILED! ${1}" + exit_code=1 +} + +echo "# Running sasl_fed" +sasl_fed || fail "Test sasl_fed failed" +echo "# Running sasl_fed_ex dynamic" +sasl_fed_ex dynamic || fail "Test sasl_fed_ex dynamic failed" +echo "# Running sasl_fed_ex link" +sasl_fed_ex link || fail "Test sasl_fed_ex link failed" +echo "# Running sasl_fed_ex queue" +sasl_fed_ex queue || fail "Test sasl_fed_ex queue failed" +echo "# Running sasl_fed_ex route" +sasl_fed_ex route || fail "Test sasl_fed_ex route failed" +echo "# Running sasl_no_dir" +sasl_no_dir || fail "Test sasl_no_dir failed" + +if (( exit_code != 0 )); then + echo "SASL test failures" + exit $exit_code +fi + +rm -rf $WORK_DIR Propchange: qpid/trunk/qpid/cpp/src/tests/run_sasl_tests ------------------------------------------------------------------------------ svn:executable = * --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
