mirror of https://github.com/apache/cassandra
Merge branch 'cassandra-3.0' into cassandra-3.11
This commit is contained in:
commit
1e42c105ce
|
|
@ -34,6 +34,37 @@ default_env_vars: &default_env_vars
|
|||
DTEST_BRANCH: trunk
|
||||
CCM_MAX_HEAP_SIZE: 1024M
|
||||
CCM_HEAP_NEWSIZE: 256M
|
||||
# The Ant test target to run, for example:
|
||||
# REPEATED_UTEST_TARGET: testsome
|
||||
# REPEATED_UTEST_TARGET: test-jvm-dtest-some
|
||||
# REPEATED_UTEST_TARGET: test-cdc
|
||||
# REPEATED_UTEST_TARGET: test-compression
|
||||
# REPEATED_UTEST_TARGET: test-system-keyspace-directory
|
||||
REPEATED_UTEST_TARGET: testsome
|
||||
# The name of JUnit class to be run multiple times, for example:
|
||||
# REPEATED_UTEST_CLASS: org.apache.cassandra.cql3.ViewTest
|
||||
# REPEATED_UTEST_CLASS: org.apache.cassandra.distributed.test.PagingTest
|
||||
REPEATED_UTEST_CLASS:
|
||||
# The optional specific methods within REPEATED_UTEST_CLASS to be run, for example:
|
||||
# REPEATED_UTEST_METHODS: testCompoundPartitionKey
|
||||
# REPEATED_UTEST_METHODS: testCompoundPartitionKey,testStaticTable
|
||||
# Please note that some Ant targets will ignore the -Dtest.methods argument produced by this.
|
||||
REPEATED_UTEST_METHODS:
|
||||
# The number of times that the repeated JUnit test should be run
|
||||
REPEATED_UTEST_COUNT: 100
|
||||
# Whether the test iteration should stop on the first failure
|
||||
REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
# A Python dtest to be run multiple times, for example:
|
||||
# REPEATED_DTEST_NAME: cqlsh_tests/test_cqlsh.py
|
||||
# REPEATED_DTEST_NAME: cqlsh_tests/test_cqlsh.py::TestCqlshSmoke
|
||||
# REPEATED_DTEST_NAME: cqlsh_tests/test_cqlsh.py::TestCqlshSmoke::test_create_index
|
||||
REPEATED_DTEST_NAME:
|
||||
# Whether the repeated Python dtest should use vnodes
|
||||
REPEATED_DTEST_VNODES: false
|
||||
# The number of times that the repeated Python dtest should be run
|
||||
REPEATED_DTEST_COUNT: 100
|
||||
# Whether the test iteration should stop on the first failure
|
||||
REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
|
||||
j8_par_executor: &j8_par_executor
|
||||
executor:
|
||||
|
|
@ -119,6 +150,20 @@ with_dtests_jobs: &with_dtest_jobs
|
|||
- j8_upgradetests-no-vnodes:
|
||||
requires:
|
||||
- start_upgrade_tests
|
||||
# Java 8 repeated utest (on request)
|
||||
- start_j8_repeated-utest:
|
||||
type: approval
|
||||
- j8_repeated-utest:
|
||||
requires:
|
||||
- start_j8_repeated-utest
|
||||
- build
|
||||
# Java 8 repeated dtest (on request)
|
||||
- start_j8_repeated-dtest:
|
||||
type: approval
|
||||
- j8_repeated-dtest:
|
||||
requires:
|
||||
- start_j8_repeated-dtest
|
||||
- build
|
||||
|
||||
with_dtest_jobs_only: &with_dtest_jobs_only
|
||||
jobs:
|
||||
|
|
@ -282,6 +327,23 @@ jobs:
|
|||
extra_env_args: 'RUN_STATIC_UPGRADE_MATRIX=true'
|
||||
pytest_extra_args: '--execute-upgrade-tests'
|
||||
|
||||
j8_repeated-utest:
|
||||
<<: *j8_par_executor
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- log_environment
|
||||
- run_repeated_utest
|
||||
|
||||
j8_repeated-dtest:
|
||||
<<: *j8_par_executor
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- clone_dtest
|
||||
- create_venv
|
||||
- run_repeated_dtest
|
||||
|
||||
commands:
|
||||
log_environment:
|
||||
steps:
|
||||
|
|
@ -602,3 +664,175 @@ commands:
|
|||
- store_artifacts:
|
||||
path: ~/cassandra-dtest/logs
|
||||
destination: dtest_<<parameters.file_tag>>_logs
|
||||
|
||||
run_repeated_utest:
|
||||
steps:
|
||||
- run:
|
||||
name: Run repeated utest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_UTEST_CLASS" == "<nil>" ]; then
|
||||
echo "Repeated utest class name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated utest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated utest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_UTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_UTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_UTEST_TARGET $REPEATED_UTEST_CLASS $REPEATED_UTEST_METHODS $count times"
|
||||
|
||||
set -x
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
time mv ~/cassandra /tmp
|
||||
cd /tmp/cassandra
|
||||
if [ -d ~/dtest_jars ]; then
|
||||
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
||||
fi
|
||||
|
||||
target=$REPEATED_UTEST_TARGET
|
||||
class_path=$REPEATED_UTEST_CLASS
|
||||
class_name="${class_path##*.}"
|
||||
|
||||
# Prepare the -Dtest.name argument.
|
||||
# It can be the fully qualified class name or the short class name, depending on the target.
|
||||
if [[ $target == "test" || \
|
||||
$target == "test-cdc" || \
|
||||
$target == "test-compression" || \
|
||||
$target == "test-system-keyspace-directory" ]]; then
|
||||
name="-Dtest.name=$class_name"
|
||||
else
|
||||
name="-Dtest.name=$class_path"
|
||||
fi
|
||||
|
||||
# Prepare the -Dtest.methods argument, which is optional
|
||||
if [ "$REPEATED_UTEST_METHODS" == "<nil>" ]; then
|
||||
methods=""
|
||||
else
|
||||
methods="-Dtest.methods=$REPEATED_UTEST_METHODS"
|
||||
fi
|
||||
|
||||
# Run the test target as many times as requested collecting the exit code,
|
||||
# stopping the iteration only if REPEATED_UTEST_STOP_ON_FAILURE is set.
|
||||
exit_code="$?"
|
||||
for i in $(seq -w 1 $count); do
|
||||
|
||||
echo "Running test iteration $i of $count"
|
||||
|
||||
# run the test
|
||||
status="passes"
|
||||
if !( set -o pipefail && ant $target $name $methods -Dno-build-test=true | tee stdout.txt ); then
|
||||
status="fails"
|
||||
exit_code=1
|
||||
fi
|
||||
|
||||
# move the stdout output file
|
||||
dest=/tmp/results/repeated_utest/stdout/${status}/${i}
|
||||
mkdir -p $dest
|
||||
mv stdout.txt $dest/${REPEATED_UTEST_TARGET}-${REPEATED_UTEST_CLASS}.txt
|
||||
|
||||
# move the XML output files
|
||||
source=build/test/output
|
||||
dest=/tmp/results/repeated_utest/output/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# move the log files
|
||||
source=build/test/logs
|
||||
dest=/tmp/results/repeated_utest/logs/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# maybe stop iterations on test failure
|
||||
if [[ $REPEATED_UTEST_STOP_ON_FAILURE = true ]] && (( $exit_code > 0 )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
(exit ${exit_code})
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/stdout
|
||||
destination: stdout
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
destination: junitxml
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/logs
|
||||
destination: logs
|
||||
|
||||
run_repeated_dtest:
|
||||
steps:
|
||||
- run:
|
||||
name: Run repeated dtest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_DTEST_NAME" == "<nil>" ]; then
|
||||
echo "Repeated dtest name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated dtest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated dtest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_DTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_DTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_DTEST_NAME $count times"
|
||||
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
java -version
|
||||
cd ~/cassandra-dtest
|
||||
mkdir -p /tmp/dtest
|
||||
|
||||
echo "env: $(env)"
|
||||
echo "** done env"
|
||||
mkdir -p /tmp/results/dtests
|
||||
|
||||
stop_on_failure_arg=""
|
||||
if $REPEATED_UTEST_STOP_ON_FAILURE; then
|
||||
stop_on_failure_arg="-x"
|
||||
fi
|
||||
|
||||
vnodes_args=""
|
||||
if $REPEATED_DTEST_VNODES; then
|
||||
vnodes_args="--use-vnodes --num-tokens=16"
|
||||
fi
|
||||
|
||||
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
||||
set -o pipefail && cd ~/cassandra-dtest && pytest $vnodes_args --count=$count $stop_on_failure_arg --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $REPEATED_DTEST_NAME | tee /tmp/dtest/stdout.txt
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results
|
||||
- store_artifacts:
|
||||
path: /tmp/dtest
|
||||
destination: dtest
|
||||
- store_artifacts:
|
||||
path: ~/cassandra-dtest/logs
|
||||
destination: dtest_logs
|
||||
|
|
|
|||
|
|
@ -108,6 +108,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
build:
|
||||
|
|
@ -189,6 +198,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-no-vnodes:
|
||||
|
|
@ -247,6 +265,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_upgradetests-no-vnodes:
|
||||
|
|
@ -346,6 +373,123 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-dtest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: medium
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 4
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Clone Cassandra dtest Repository (via git)
|
||||
command: |
|
||||
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
||||
- run:
|
||||
name: Configure virtualenv and python Dependencies
|
||||
command: |
|
||||
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
||||
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
||||
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
||||
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt
|
||||
pip3 freeze
|
||||
- run:
|
||||
name: Run repeated dtest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_DTEST_NAME" == "<nil>" ]; then
|
||||
echo "Repeated dtest name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated dtest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated dtest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_DTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_DTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_DTEST_NAME $count times"
|
||||
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
java -version
|
||||
cd ~/cassandra-dtest
|
||||
mkdir -p /tmp/dtest
|
||||
|
||||
echo "env: $(env)"
|
||||
echo "** done env"
|
||||
mkdir -p /tmp/results/dtests
|
||||
|
||||
stop_on_failure_arg=""
|
||||
if $REPEATED_UTEST_STOP_ON_FAILURE; then
|
||||
stop_on_failure_arg="-x"
|
||||
fi
|
||||
|
||||
vnodes_args=""
|
||||
if $REPEATED_DTEST_VNODES; then
|
||||
vnodes_args="--use-vnodes --num-tokens=16"
|
||||
fi
|
||||
|
||||
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
||||
set -o pipefail && cd ~/cassandra-dtest && pytest $vnodes_args --count=$count $stop_on_failure_arg --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $REPEATED_DTEST_NAME | tee /tmp/dtest/stdout.txt
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results
|
||||
- store_artifacts:
|
||||
path: /tmp/dtest
|
||||
destination: dtest
|
||||
- store_artifacts:
|
||||
path: ~/cassandra-dtest/logs
|
||||
destination: dtest_logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_stress:
|
||||
|
|
@ -392,6 +536,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_unit_tests:
|
||||
|
|
@ -484,6 +637,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-with-vnodes:
|
||||
|
|
@ -542,6 +704,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_jvm_dtests:
|
||||
|
|
@ -634,6 +805,182 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-utest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: medium
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 4
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Log Environment Information
|
||||
command: |
|
||||
echo '*** id ***'
|
||||
id
|
||||
echo '*** cat /proc/cpuinfo ***'
|
||||
cat /proc/cpuinfo
|
||||
echo '*** free -m ***'
|
||||
free -m
|
||||
echo '*** df -m ***'
|
||||
df -m
|
||||
echo '*** ifconfig -a ***'
|
||||
ifconfig -a
|
||||
echo '*** uname -a ***'
|
||||
uname -a
|
||||
echo '*** mount ***'
|
||||
mount
|
||||
echo '*** env ***'
|
||||
env
|
||||
echo '*** java ***'
|
||||
which java
|
||||
java -version
|
||||
- run:
|
||||
name: Run repeated utest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_UTEST_CLASS" == "<nil>" ]; then
|
||||
echo "Repeated utest class name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated utest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated utest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_UTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_UTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_UTEST_TARGET $REPEATED_UTEST_CLASS $REPEATED_UTEST_METHODS $count times"
|
||||
|
||||
set -x
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
time mv ~/cassandra /tmp
|
||||
cd /tmp/cassandra
|
||||
if [ -d ~/dtest_jars ]; then
|
||||
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
||||
fi
|
||||
|
||||
target=$REPEATED_UTEST_TARGET
|
||||
class_path=$REPEATED_UTEST_CLASS
|
||||
class_name="${class_path##*.}"
|
||||
|
||||
# Prepare the -Dtest.name argument.
|
||||
# It can be the fully qualified class name or the short class name, depending on the target.
|
||||
if [[ $target == "test" || \
|
||||
$target == "test-cdc" || \
|
||||
$target == "test-compression" || \
|
||||
$target == "test-system-keyspace-directory" ]]; then
|
||||
name="-Dtest.name=$class_name"
|
||||
else
|
||||
name="-Dtest.name=$class_path"
|
||||
fi
|
||||
|
||||
# Prepare the -Dtest.methods argument, which is optional
|
||||
if [ "$REPEATED_UTEST_METHODS" == "<nil>" ]; then
|
||||
methods=""
|
||||
else
|
||||
methods="-Dtest.methods=$REPEATED_UTEST_METHODS"
|
||||
fi
|
||||
|
||||
# Run the test target as many times as requested collecting the exit code,
|
||||
# stopping the iteration only if REPEATED_UTEST_STOP_ON_FAILURE is set.
|
||||
exit_code="$?"
|
||||
for i in $(seq -w 1 $count); do
|
||||
|
||||
echo "Running test iteration $i of $count"
|
||||
|
||||
# run the test
|
||||
status="passes"
|
||||
if !( set -o pipefail && ant $target $name $methods -Dno-build-test=true | tee stdout.txt ); then
|
||||
status="fails"
|
||||
exit_code=1
|
||||
fi
|
||||
|
||||
# move the stdout output file
|
||||
dest=/tmp/results/repeated_utest/stdout/${status}/${i}
|
||||
mkdir -p $dest
|
||||
mv stdout.txt $dest/${REPEATED_UTEST_TARGET}-${REPEATED_UTEST_CLASS}.txt
|
||||
|
||||
# move the XML output files
|
||||
source=build/test/output
|
||||
dest=/tmp/results/repeated_utest/output/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# move the log files
|
||||
source=build/test/logs
|
||||
dest=/tmp/results/repeated_utest/logs/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# maybe stop iterations on test failure
|
||||
if [[ $REPEATED_UTEST_STOP_ON_FAILURE = true ]] && (( $exit_code > 0 )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
(exit ${exit_code})
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/stdout
|
||||
destination: stdout
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
destination: junitxml
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/logs
|
||||
destination: logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_long:
|
||||
|
|
@ -680,6 +1027,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_compression:
|
||||
|
|
@ -772,6 +1128,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtest_jars_build:
|
||||
|
|
@ -850,6 +1215,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
workflows:
|
||||
|
|
@ -910,3 +1284,15 @@ workflows:
|
|||
- j8_upgradetests-no-vnodes:
|
||||
requires:
|
||||
- start_upgrade_tests
|
||||
- start_j8_repeated-utest:
|
||||
type: approval
|
||||
- j8_repeated-utest:
|
||||
requires:
|
||||
- start_j8_repeated-utest
|
||||
- build
|
||||
- start_j8_repeated-dtest:
|
||||
type: approval
|
||||
- j8_repeated-dtest:
|
||||
requires:
|
||||
- start_j8_repeated-dtest
|
||||
- build
|
||||
|
|
|
|||
|
|
@ -108,6 +108,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
build:
|
||||
|
|
@ -189,6 +198,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-no-vnodes:
|
||||
|
|
@ -247,6 +265,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_upgradetests-no-vnodes:
|
||||
|
|
@ -346,6 +373,123 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-dtest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: xlarge
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 100
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Clone Cassandra dtest Repository (via git)
|
||||
command: |
|
||||
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
||||
- run:
|
||||
name: Configure virtualenv and python Dependencies
|
||||
command: |
|
||||
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
||||
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
||||
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
||||
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt
|
||||
pip3 freeze
|
||||
- run:
|
||||
name: Run repeated dtest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_DTEST_NAME" == "<nil>" ]; then
|
||||
echo "Repeated dtest name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated dtest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated dtest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_DTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_DTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_DTEST_NAME $count times"
|
||||
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
java -version
|
||||
cd ~/cassandra-dtest
|
||||
mkdir -p /tmp/dtest
|
||||
|
||||
echo "env: $(env)"
|
||||
echo "** done env"
|
||||
mkdir -p /tmp/results/dtests
|
||||
|
||||
stop_on_failure_arg=""
|
||||
if $REPEATED_UTEST_STOP_ON_FAILURE; then
|
||||
stop_on_failure_arg="-x"
|
||||
fi
|
||||
|
||||
vnodes_args=""
|
||||
if $REPEATED_DTEST_VNODES; then
|
||||
vnodes_args="--use-vnodes --num-tokens=16"
|
||||
fi
|
||||
|
||||
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
||||
set -o pipefail && cd ~/cassandra-dtest && pytest $vnodes_args --count=$count $stop_on_failure_arg --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $REPEATED_DTEST_NAME | tee /tmp/dtest/stdout.txt
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results
|
||||
- store_artifacts:
|
||||
path: /tmp/dtest
|
||||
destination: dtest
|
||||
- store_artifacts:
|
||||
path: ~/cassandra-dtest/logs
|
||||
destination: dtest_logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_stress:
|
||||
|
|
@ -392,6 +536,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_unit_tests:
|
||||
|
|
@ -484,6 +637,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-with-vnodes:
|
||||
|
|
@ -542,6 +704,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_jvm_dtests:
|
||||
|
|
@ -634,6 +805,182 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-utest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: xlarge
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 100
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Log Environment Information
|
||||
command: |
|
||||
echo '*** id ***'
|
||||
id
|
||||
echo '*** cat /proc/cpuinfo ***'
|
||||
cat /proc/cpuinfo
|
||||
echo '*** free -m ***'
|
||||
free -m
|
||||
echo '*** df -m ***'
|
||||
df -m
|
||||
echo '*** ifconfig -a ***'
|
||||
ifconfig -a
|
||||
echo '*** uname -a ***'
|
||||
uname -a
|
||||
echo '*** mount ***'
|
||||
mount
|
||||
echo '*** env ***'
|
||||
env
|
||||
echo '*** java ***'
|
||||
which java
|
||||
java -version
|
||||
- run:
|
||||
name: Run repeated utest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_UTEST_CLASS" == "<nil>" ]; then
|
||||
echo "Repeated utest class name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated utest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated utest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_UTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_UTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_UTEST_TARGET $REPEATED_UTEST_CLASS $REPEATED_UTEST_METHODS $count times"
|
||||
|
||||
set -x
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
time mv ~/cassandra /tmp
|
||||
cd /tmp/cassandra
|
||||
if [ -d ~/dtest_jars ]; then
|
||||
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
||||
fi
|
||||
|
||||
target=$REPEATED_UTEST_TARGET
|
||||
class_path=$REPEATED_UTEST_CLASS
|
||||
class_name="${class_path##*.}"
|
||||
|
||||
# Prepare the -Dtest.name argument.
|
||||
# It can be the fully qualified class name or the short class name, depending on the target.
|
||||
if [[ $target == "test" || \
|
||||
$target == "test-cdc" || \
|
||||
$target == "test-compression" || \
|
||||
$target == "test-system-keyspace-directory" ]]; then
|
||||
name="-Dtest.name=$class_name"
|
||||
else
|
||||
name="-Dtest.name=$class_path"
|
||||
fi
|
||||
|
||||
# Prepare the -Dtest.methods argument, which is optional
|
||||
if [ "$REPEATED_UTEST_METHODS" == "<nil>" ]; then
|
||||
methods=""
|
||||
else
|
||||
methods="-Dtest.methods=$REPEATED_UTEST_METHODS"
|
||||
fi
|
||||
|
||||
# Run the test target as many times as requested collecting the exit code,
|
||||
# stopping the iteration only if REPEATED_UTEST_STOP_ON_FAILURE is set.
|
||||
exit_code="$?"
|
||||
for i in $(seq -w 1 $count); do
|
||||
|
||||
echo "Running test iteration $i of $count"
|
||||
|
||||
# run the test
|
||||
status="passes"
|
||||
if !( set -o pipefail && ant $target $name $methods -Dno-build-test=true | tee stdout.txt ); then
|
||||
status="fails"
|
||||
exit_code=1
|
||||
fi
|
||||
|
||||
# move the stdout output file
|
||||
dest=/tmp/results/repeated_utest/stdout/${status}/${i}
|
||||
mkdir -p $dest
|
||||
mv stdout.txt $dest/${REPEATED_UTEST_TARGET}-${REPEATED_UTEST_CLASS}.txt
|
||||
|
||||
# move the XML output files
|
||||
source=build/test/output
|
||||
dest=/tmp/results/repeated_utest/output/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# move the log files
|
||||
source=build/test/logs
|
||||
dest=/tmp/results/repeated_utest/logs/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# maybe stop iterations on test failure
|
||||
if [[ $REPEATED_UTEST_STOP_ON_FAILURE = true ]] && (( $exit_code > 0 )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
(exit ${exit_code})
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/stdout
|
||||
destination: stdout
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
destination: junitxml
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/logs
|
||||
destination: logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_long:
|
||||
|
|
@ -680,6 +1027,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_compression:
|
||||
|
|
@ -772,6 +1128,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtest_jars_build:
|
||||
|
|
@ -796,7 +1161,7 @@ jobs:
|
|||
git remote set-branches --add apache '$branch'
|
||||
git fetch --depth 1 apache $branch
|
||||
git checkout $branch
|
||||
it clean -fd
|
||||
git clean -fd
|
||||
# Loop to prevent failure due to maven-ant-tasks not downloading a jar..
|
||||
for x in $(seq 1 3); do
|
||||
${ANT_HOME}/bin/ant realclean; ${ANT_HOME}/bin/ant jar dtest-jar
|
||||
|
|
@ -815,7 +1180,7 @@ jobs:
|
|||
# and build the dtest-jar for the branch under test
|
||||
${ANT_HOME}/bin/ant realclean
|
||||
git checkout origin/$CIRCLE_BRANCH
|
||||
it clean -fd
|
||||
git clean -fd
|
||||
for x in $(seq 1 3); do
|
||||
${ANT_HOME}/bin/ant realclean; ${ANT_HOME}/bin/ant jar dtest-jar
|
||||
RETURN="$?"
|
||||
|
|
@ -850,6 +1215,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 2048M
|
||||
- CCM_HEAP_NEWSIZE: 512M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
workflows:
|
||||
|
|
@ -910,3 +1284,15 @@ workflows:
|
|||
- j8_upgradetests-no-vnodes:
|
||||
requires:
|
||||
- start_upgrade_tests
|
||||
- start_j8_repeated-utest:
|
||||
type: approval
|
||||
- j8_repeated-utest:
|
||||
requires:
|
||||
- start_j8_repeated-utest
|
||||
- build
|
||||
- start_j8_repeated-dtest:
|
||||
type: approval
|
||||
- j8_repeated-dtest:
|
||||
requires:
|
||||
- start_j8_repeated-dtest
|
||||
- build
|
||||
|
|
|
|||
|
|
@ -108,6 +108,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
build:
|
||||
|
|
@ -189,6 +198,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-no-vnodes:
|
||||
|
|
@ -247,6 +265,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_upgradetests-no-vnodes:
|
||||
|
|
@ -346,6 +373,123 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-dtest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: medium
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 4
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Clone Cassandra dtest Repository (via git)
|
||||
command: |
|
||||
git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
|
||||
- run:
|
||||
name: Configure virtualenv and python Dependencies
|
||||
command: |
|
||||
# note, this should be super quick as all dependencies should be pre-installed in the docker image
|
||||
# if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
|
||||
# we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
|
||||
# rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt
|
||||
pip3 freeze
|
||||
- run:
|
||||
name: Run repeated dtest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_DTEST_NAME" == "<nil>" ]; then
|
||||
echo "Repeated dtest name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated dtest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_DTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated dtest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_DTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_DTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_DTEST_NAME $count times"
|
||||
|
||||
source ~/env3.6/bin/activate
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
java -version
|
||||
cd ~/cassandra-dtest
|
||||
mkdir -p /tmp/dtest
|
||||
|
||||
echo "env: $(env)"
|
||||
echo "** done env"
|
||||
mkdir -p /tmp/results/dtests
|
||||
|
||||
stop_on_failure_arg=""
|
||||
if $REPEATED_UTEST_STOP_ON_FAILURE; then
|
||||
stop_on_failure_arg="-x"
|
||||
fi
|
||||
|
||||
vnodes_args=""
|
||||
if $REPEATED_DTEST_VNODES; then
|
||||
vnodes_args="--use-vnodes --num-tokens=16"
|
||||
fi
|
||||
|
||||
# we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
|
||||
set -o pipefail && cd ~/cassandra-dtest && pytest $vnodes_args --count=$count $stop_on_failure_arg --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $REPEATED_DTEST_NAME | tee /tmp/dtest/stdout.txt
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results
|
||||
- store_artifacts:
|
||||
path: /tmp/dtest
|
||||
destination: dtest
|
||||
- store_artifacts:
|
||||
path: ~/cassandra-dtest/logs
|
||||
destination: dtest_logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_stress:
|
||||
|
|
@ -392,6 +536,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_unit_tests:
|
||||
|
|
@ -484,6 +637,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtests-with-vnodes:
|
||||
|
|
@ -542,6 +704,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_jvm_dtests:
|
||||
|
|
@ -634,6 +805,182 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_repeated-utest:
|
||||
docker:
|
||||
- image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210304
|
||||
resource_class: medium
|
||||
working_directory: ~/
|
||||
shell: /bin/bash -eo pipefail -l
|
||||
parallelism: 4
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/cassandra
|
||||
- run:
|
||||
name: Log Environment Information
|
||||
command: |
|
||||
echo '*** id ***'
|
||||
id
|
||||
echo '*** cat /proc/cpuinfo ***'
|
||||
cat /proc/cpuinfo
|
||||
echo '*** free -m ***'
|
||||
free -m
|
||||
echo '*** df -m ***'
|
||||
df -m
|
||||
echo '*** ifconfig -a ***'
|
||||
ifconfig -a
|
||||
echo '*** uname -a ***'
|
||||
uname -a
|
||||
echo '*** mount ***'
|
||||
mount
|
||||
echo '*** env ***'
|
||||
env
|
||||
echo '*** java ***'
|
||||
which java
|
||||
java -version
|
||||
- run:
|
||||
name: Run repeated utest
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
if [ "$REPEATED_UTEST_CLASS" == "<nil>" ]; then
|
||||
echo "Repeated utest class name hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" == "<nil>" ]; then
|
||||
echo "Repeated utest count hasn't been defined, exiting without running any test"
|
||||
elif [ "$REPEATED_UTEST_COUNT" -le 0 ]; then
|
||||
echo "Repeated utest count is lesser or equals than zero, exiting without running any test"
|
||||
else
|
||||
|
||||
# Calculate the number of test iterations to be run by the current parallel runner.
|
||||
# Since we are running the same test multiple times there is no need to use `circleci tests split`.
|
||||
count=$((REPEATED_UTEST_COUNT / CIRCLE_NODE_TOTAL))
|
||||
if (($CIRCLE_NODE_INDEX < (REPEATED_UTEST_COUNT % CIRCLE_NODE_TOTAL))); then
|
||||
count=$((count+1))
|
||||
fi
|
||||
|
||||
if (($count <= 0)); then
|
||||
echo "No tests to run in this runner"
|
||||
else
|
||||
echo "Running $REPEATED_UTEST_TARGET $REPEATED_UTEST_CLASS $REPEATED_UTEST_METHODS $count times"
|
||||
|
||||
set -x
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
time mv ~/cassandra /tmp
|
||||
cd /tmp/cassandra
|
||||
if [ -d ~/dtest_jars ]; then
|
||||
cp ~/dtest_jars/dtest* /tmp/cassandra/build/
|
||||
fi
|
||||
|
||||
target=$REPEATED_UTEST_TARGET
|
||||
class_path=$REPEATED_UTEST_CLASS
|
||||
class_name="${class_path##*.}"
|
||||
|
||||
# Prepare the -Dtest.name argument.
|
||||
# It can be the fully qualified class name or the short class name, depending on the target.
|
||||
if [[ $target == "test" || \
|
||||
$target == "test-cdc" || \
|
||||
$target == "test-compression" || \
|
||||
$target == "test-system-keyspace-directory" ]]; then
|
||||
name="-Dtest.name=$class_name"
|
||||
else
|
||||
name="-Dtest.name=$class_path"
|
||||
fi
|
||||
|
||||
# Prepare the -Dtest.methods argument, which is optional
|
||||
if [ "$REPEATED_UTEST_METHODS" == "<nil>" ]; then
|
||||
methods=""
|
||||
else
|
||||
methods="-Dtest.methods=$REPEATED_UTEST_METHODS"
|
||||
fi
|
||||
|
||||
# Run the test target as many times as requested collecting the exit code,
|
||||
# stopping the iteration only if REPEATED_UTEST_STOP_ON_FAILURE is set.
|
||||
exit_code="$?"
|
||||
for i in $(seq -w 1 $count); do
|
||||
|
||||
echo "Running test iteration $i of $count"
|
||||
|
||||
# run the test
|
||||
status="passes"
|
||||
if !( set -o pipefail && ant $target $name $methods -Dno-build-test=true | tee stdout.txt ); then
|
||||
status="fails"
|
||||
exit_code=1
|
||||
fi
|
||||
|
||||
# move the stdout output file
|
||||
dest=/tmp/results/repeated_utest/stdout/${status}/${i}
|
||||
mkdir -p $dest
|
||||
mv stdout.txt $dest/${REPEATED_UTEST_TARGET}-${REPEATED_UTEST_CLASS}.txt
|
||||
|
||||
# move the XML output files
|
||||
source=build/test/output
|
||||
dest=/tmp/results/repeated_utest/output/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# move the log files
|
||||
source=build/test/logs
|
||||
dest=/tmp/results/repeated_utest/logs/${status}/${i}
|
||||
mkdir -p $dest
|
||||
if [[ -d $source && -n "$(ls $source)" ]]; then
|
||||
mv $source/* $dest/
|
||||
fi
|
||||
|
||||
# maybe stop iterations on test failure
|
||||
if [[ $REPEATED_UTEST_STOP_ON_FAILURE = true ]] && (( $exit_code > 0 )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
(exit ${exit_code})
|
||||
fi
|
||||
fi
|
||||
- store_test_results:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/stdout
|
||||
destination: stdout
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/output
|
||||
destination: junitxml
|
||||
- store_artifacts:
|
||||
path: /tmp/results/repeated_utest/logs
|
||||
destination: logs
|
||||
environment:
|
||||
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- ANT_HOME: /usr/share/ant
|
||||
- LANG: en_US.UTF-8
|
||||
- KEEP_TEST_DIR: true
|
||||
- DEFAULT_DIR: /home/cassandra/cassandra-dtest
|
||||
- PYTHONIOENCODING: utf-8
|
||||
- PYTHONUNBUFFERED: true
|
||||
- CASS_DRIVER_NO_EXTENSIONS: true
|
||||
- CASS_DRIVER_NO_CYTHON: true
|
||||
- CASSANDRA_SKIP_SYNC: true
|
||||
- DTEST_REPO: git://github.com/apache/cassandra-dtest.git
|
||||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_long:
|
||||
|
|
@ -680,6 +1027,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
utests_compression:
|
||||
|
|
@ -772,6 +1128,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
j8_dtest_jars_build:
|
||||
|
|
@ -850,6 +1215,15 @@ jobs:
|
|||
- DTEST_BRANCH: trunk
|
||||
- CCM_MAX_HEAP_SIZE: 1024M
|
||||
- CCM_HEAP_NEWSIZE: 256M
|
||||
- REPEATED_UTEST_TARGET: testsome
|
||||
- REPEATED_UTEST_CLASS: null
|
||||
- REPEATED_UTEST_METHODS: null
|
||||
- REPEATED_UTEST_COUNT: 100
|
||||
- REPEATED_UTEST_STOP_ON_FAILURE: false
|
||||
- REPEATED_DTEST_NAME: null
|
||||
- REPEATED_DTEST_VNODES: false
|
||||
- REPEATED_DTEST_COUNT: 100
|
||||
- REPEATED_DTEST_STOP_ON_FAILURE: false
|
||||
- JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
- JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
||||
workflows:
|
||||
|
|
@ -910,3 +1284,15 @@ workflows:
|
|||
- j8_upgradetests-no-vnodes:
|
||||
requires:
|
||||
- start_upgrade_tests
|
||||
- start_j8_repeated-utest:
|
||||
type: approval
|
||||
- j8_repeated-utest:
|
||||
requires:
|
||||
- start_j8_repeated-utest
|
||||
- build
|
||||
- start_j8_repeated-dtest:
|
||||
type: approval
|
||||
- j8_repeated-dtest:
|
||||
requires:
|
||||
- start_j8_repeated-dtest
|
||||
- build
|
||||
|
|
|
|||
|
|
@ -19,8 +19,17 @@
|
|||
|
||||
BASEDIR=`dirname $0`
|
||||
|
||||
circleci config process $BASEDIR/config-2_1.yml > $BASEDIR/config.yml.LOWRES
|
||||
patch -o $BASEDIR/config-2_1.yml.HIGHRES $BASEDIR/config-2_1.yml $BASEDIR/config-2_1.yml.high_res.patch
|
||||
circleci config process $BASEDIR/config-2_1.yml.HIGHRES > $BASEDIR/config.yml.HIGHRES
|
||||
rm $BASEDIR/config-2_1.yml.HIGHRES
|
||||
# setup lowres
|
||||
circleci config process $BASEDIR/config-2_1.yml > $BASEDIR/config.yml.LOWRES.tmp
|
||||
cat $BASEDIR/license.yml $BASEDIR/config.yml.LOWRES.tmp > $BASEDIR/config.yml.LOWRES
|
||||
rm $BASEDIR/config.yml.LOWRES.tmp
|
||||
|
||||
# setup highres
|
||||
patch -o $BASEDIR/config-2_1.yml.HIGHRES $BASEDIR/config-2_1.yml $BASEDIR/config-2_1.yml.high_res.patch
|
||||
circleci config process $BASEDIR/config-2_1.yml.HIGHRES > $BASEDIR/config.yml.HIGHRES.tmp
|
||||
cat $BASEDIR/license.yml $BASEDIR/config.yml.HIGHRES.tmp > $BASEDIR/config.yml.HIGHRES
|
||||
rm $BASEDIR/config-2_1.yml.HIGHRES $BASEDIR/config.yml.HIGHRES.tmp
|
||||
|
||||
# copy lower into config.yml to make sure this gets updated
|
||||
cp $BASEDIR/config.yml.LOWRES $BASEDIR/config.yml
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
|
|
@ -39,6 +39,8 @@ HIGHRES files, read below for details how to do it manually;
|
|||
1. make your edits to config-2_1.yml - let it stay at lowres settings
|
||||
1. generate a valid LOWRES file:
|
||||
`circleci config process config-2_1.yml > config.yml.LOWRES`
|
||||
1. add the Apache license header to the newly created LOWRES file:
|
||||
`cat license.yml config.yml.LOWRES > config.yml.LOWRES.new && mv config.yml.LOWRES.new config.yml.LOWRES`
|
||||
1. then apply the highres patch to config-2_1.yml;
|
||||
`patch -o config-2_1.yml.HIGHRES config-2_1.yml config-2_1.yml.high_res.patch`
|
||||
(this creates a new file `config-2_1.yml.HIGHRES` instead of in-place patching
|
||||
|
|
@ -48,5 +50,7 @@ HIGHRES files, read below for details how to do it manually;
|
|||
the patch file based on the diff (don't commit it though).
|
||||
1. generate the HIGHRES file:
|
||||
`circleci config process config-2_1.yml.HIGHRES > config.yml.HIGHRES`
|
||||
1. and remove the temporary patched highres `config-2_1.yml.HIGHRES`
|
||||
1. remove the temporary patched HIGHRES file: `rm config-2_1.yml.HIGHRES`
|
||||
1. add the Apache license header to the newly created HIGHRES file:
|
||||
`cat license.yml config.yml.HIGHRES > config.yml.HIGHRES.new && mv config.yml.HIGHRES.new config.yml.HIGHRES`
|
||||
|
||||
|
|
|
|||
|
|
@ -1198,7 +1198,7 @@
|
|||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="build-test" depends="build" description="Compile test classes">
|
||||
<target name="build-test" depends="build" description="Compile test classes" unless="no-build-test">
|
||||
<javac
|
||||
compiler="modern"
|
||||
debug="true"
|
||||
|
|
|
|||
|
|
@ -83,7 +83,52 @@ cstar_perf
|
|||
Another tool available on github is `cstar_perf <https://github.com/datastax/cstar_perf>`_ that can be used for intensive performance testing in large clusters or locally. Please refer to the project page on how to set it up and how to use it.
|
||||
|
||||
CircleCI
|
||||
--------
|
||||
Cassandra ships with a default `CircleCI <https://circleci.com>`_ configuration, to enable running tests on your branches, you need to go the CircleCI website, click "Login" and log in with your github account. Then you need to give CircleCI permission to watch your repositories. Once you have done that, you can optionally configure CircleCI to run tests in parallel - click "Projects", then your github account and then click the settings for the project. If you leave the parallelism at 1 for Cassandra, only ``ant eclipse-warnings`` and ``ant test`` will be run. If you up the parallelism to 4, it also runs ``ant long-test``, ``ant test-compression`` and ``ant stress-test``
|
||||
========
|
||||
|
||||
Cassandra ships with a default `CircleCI <https://circleci.com>`_ configuration, to enable running tests on your branches, you need to go the CircleCI website, click "Login" and log in with your github account. Then you need to give CircleCI permission to watch your repositories. Once you have done that, you can optionally configure CircleCI to run tests in parallel - click "Projects", then your github account and then click the settings for the project. If you leave the parallelism at 1 for Cassandra, only ``ant eclipse-warnings`` and ``ant test`` will be run. If you up the parallelism to 4, it also runs ``ant long-test``, ``ant test-compression`` and ``ant stress-test``.
|
||||
|
||||
The configuration for CircleCI is in the ``.circleci/config.yml`` file. This configuration file is meant to use low resources, you can find equivalent configuration files using more resources in the same ``.circleci`` directory. Please read the ``readme.md`` file in that directory for further information. Note that the higher resources are not available in the free tier of CircleCI.
|
||||
|
||||
The optional ``repeated_utest``/``repeated_dtest`` CircleCI jobs run a specific JUnit/Python test repeatedly. This is useful to verify that a certain test is stable. It's usually a good idea to run these jobs when adding or modifying a test. To specify what test should be run and the number of repetitions you should edit the related evironment variables in the CircleCI configuration file:
|
||||
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| Variable | Description |
|
||||
+====================================+==================================================================+
|
||||
| ``REPEATED_UTEST_TARGET`` | The Ant test target to run, for example: |
|
||||
| | |
|
||||
| | * ``testsome`` |
|
||||
| | * ``test-jvm-dtest-some`` |
|
||||
| | * ``test-cdc`` |
|
||||
| | * ``test-compression`` |
|
||||
| | * ``test-system-keyspace-directory`` |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_UTEST_CLASS`` | The name of the Java test class to be run multiple times, for |
|
||||
| | example: |
|
||||
| | |
|
||||
| | * ``Rorg.apache.cassandra.cql3.ViewTest`` |
|
||||
| | * ``Rorg.apache.cassandra.distributed.test.PagingTest`` |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_UTEST_METHODS`` | The optional specific methods within ``REPEATED_UTEST_CLASS`` to |
|
||||
| | be run, for example: |
|
||||
| | |
|
||||
| | * ``testCompoundPartitionKey`` |
|
||||
| | * ``testCompoundPartitionKey,testStaticTable`` |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_UTEST_COUNT`` | The number of times that the repeated Java test should be run |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_UTEST_STOP_ON_FAILURE`` | Whether the utest iteration should stop on the first failure |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_DTEST_NAME`` | The Python dtest to be run multiple times, for example: |
|
||||
| | |
|
||||
| | * ``cqlsh_tests/test_cqlsh.py`` |
|
||||
| | * ``cqlsh_tests/test_cqlsh.py::TestCqlshSmoke`` |
|
||||
| | * ``cqlsh_tests/test_cqlsh.py::TestCqlshSmoke::test_insert`` |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_DTEST_VNODES`` | Whether the repeated Python dtest should use vnodes |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_DTEST_COUNT`` | The number of times that the repeated Python dtest should be run |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
| ``REPEATED_DTEST_STOP_ON_FAILURE`` | Whether the dtest iteration should stop on the first failure |
|
||||
+------------------------------------+------------------------------------------------------------------+
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue