Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Change integration test harness to support scaling tests #1500

Merged
merged 7 commits into from
Oct 20, 2016

Conversation

billonahill
Copy link
Contributor

@billonahill billonahill commented Oct 18, 2016

Made a number of changes to support scaling tests:

  • If json test configs in updateArgs, the test is considered a scaling (i.e., update) test
  • Added MultiPhaseTestSpout which outputs tuples, polls for topology_updated state changes on the http_server and outputs more. This class relies on HttpGetCondition that polls for expected state.
  • Changed the python test runner to handle update tests by:
    • poll for topology_started state.
    • update the topology
    • proceed with the result verification

Apologies that this PR got large, but it was a hard one for me to break up.

There is still more work to be done to handle tests the scale down. Currently the aggregator bolt waits for teminal tuples from all upstream instances so removing one leaves it hanging. Will tackle that in a separate review.

@billonahill billonahill self-assigned this Oct 18, 2016
@billonahill billonahill added this to the 0.14.5 milestone Oct 18, 2016
@objmagic objmagic changed the title Change int test harness to support scaling tests Change integration test harness to support scaling tests Oct 18, 2016
@@ -86,6 +86,9 @@ public void execute(Tuple tuple) {
collector.emit(Constants.INTEGRATION_TEST_CONTROL_STREAM_ID,
tuple,
new Values(Constants.INTEGRATION_TEST_TERMINAL));
} else {
LOG.info(String.format(
"Received a terminals, waiting to receive %s more", terminalsToReceive));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it should be Received a terminal or Received terminals

@@ -14,18 +14,18 @@
# The location of default configure file
DEFAULT_TEST_CONF_FILE = "integration-test/src/python/test_runner/resources/test.json"

RETRY_ATTEMPTS = 15
RETRY_ATTEMPTS = 25
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the change from 15 to 25?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there are legit failures retrying 25 times is excessive and it takes over 4 minutes of results checking per test. Even 15 times seems high. If we have to retry anything this many times for simple, small test topologies, something is wrong.

That said, I can keep it if our tests are known to be too flaky when set below 25.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of the times the integration tests not flaky, I believe.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's what I thought. Let's reduce it and see if it causes problems.

@billonahill
Copy link
Contributor Author

All comments addressed and CI is passing. Let me know if anyone has additional comments.

@objmagic
Copy link
Contributor

LGTM 👍

@billonahill billonahill merged commit 18e08a0 into apache:master Oct 20, 2016
@billonahill billonahill deleted the billg/scaling_int_test branch October 20, 2016 21:20
ashvina pushed a commit to ashvina/heron that referenced this pull request Nov 9, 2016
* Change int test harness to support scaling tests

* fix arg parsing for python tests

* change retry back to 25

* fix bug during iteration

* fix topo args bug

* clean up log messages

* reduce attempts back to 15
nicknezis pushed a commit that referenced this pull request Sep 14, 2020
* Change int test harness to support scaling tests

* fix arg parsing for python tests

* change retry back to 25

* fix bug during iteration

* fix topo args bug

* clean up log messages

* reduce attempts back to 15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants