Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added New Test Definitions error, seekable, etc. Remove redundant test runs & Introduce dry test runs #507

Merged
merged 12 commits into from
Jul 3, 2019

Conversation

indianwhocodes
Copy link
Contributor

@indianwhocodes indianwhocodes commented Apr 16, 2019

Goals

  • Resolves testng encryptionCipher parameter does not appear to do anything #336 .
  • Eliminate redundant integration-test runs.
  • Test-Suite Size Reduction obtained from 609 tests -> 250 tests.
  • Class-Level Definition for every new integration-test that will be added in the future.
  • Incorporate dry run capability for the TestNG Suite of SDK to determine test-methods that are executed and the order in which they are run, without actually executing them.
  • These changes will further help in setting up a new Jenkins job java-manta-pre-it or simply update the existing one java-manta-it for new PR's made against the Java SDK.

Challenges

Unfortunately TestNG doesn't comprehensively support filtering a test suite by groups so we had to be more explicit about suite definition.

Overview

Adds a it.dryRun property that can be used to list the tests that would run with their respective TestNG params. TestNG unfortunately doesn't completely support filtering a test suite by groups so thorough detailing was required in suite definition.

Output of mvn verify it.dryRun=true using current testng-it.xml used with TestListingInterceptor:

[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Base manta path for suite Java Manta SDK Integration Test Suite: /ashwin.nair/stor/java-manta-integration-tests/8669c9af-b512-4ac6-b7be-2390b6a5e61c/
[main] INFO  com.joyent.test.util.TestListingInterceptor [ ] - DRY-RUN: Listing [250] tests that would have run
--------------------------ALL-TESTS----------------------------------------------------------
main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 250
[main] WARN  com.joyent.test.util.MantaPathSuiteListener [ ] - Skipping suite cleanup since dry-run is enabled.
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.952 s - in TestSuite

List for the output for before & after -Dit.dryRun=true respectively . Note thatdry-run-after list is accurate since it shows single value for encryptionCipher i.e AES128/CTR/NoPadding. Other testing groups include cbc-cipher and gcm-cipher are also defined.

Changes

  • change usingEncryption (boolean) to just encryptionCipher (string). omission (null) disables encryption

  • add a new constructor for IntegrationTestConfigContext which handles the above

  • switch from @BeforeClass with @Parameters to test constructors with just @Parameters. Whenever SkipException was thrown or putDirectory was called in a test which needed @Parameters a minimal method was created for @BeforeClass. The goal here was to make it safe to instantiate test classes without incurring side-effects.

  • remove encryption param from tests which don't actually perform any object PUTs or MPU uploads (e.g. MantaClientDirectoriesIT)

  • change <packages> to <classes> and target specific classes.

  • document a new system property it.dryRun which can be used by the new interceptor. When this system property is truthy as defined by BooleanUtils#toBooleanObject, i.e. the following are all true: y, Y, t, T, on, ON, yes, YES, true, TRUE and all the mixed-case versions thereof

  • added a test listener called TestListingInterceptor which is used to collect suite definitions and disable actually running tests in the event it.dryrun is true.

  • defined new <test name></test> and the EXISTING ones in testing-it.xml more accurately using class-level specifications including TestNG Group Definitions : timeout, range-downloads, snaplinks, seekable, error, headers, directory, metadata, etc.

  • Following up on Fixing Issue 483 For Defining HeavyWeight Test Groups #492 which had to be closed due to dependency-vulnerabilities.

  • Changes are incorporated from the closed PR Remove redundant integration test runs #364 by Tomas which is to remove redundancies in integration-test runs.

@cburroughs
Copy link
Contributor

Drive by color opinion: "nightly" isn't a term exclusive to Joyent, but still pretty far on the jargon scale. Is there a more self-descriptive term we could use? (slow? expensive?)

@indianwhocodes
Copy link
Contributor Author

indianwhocodes commented Apr 17, 2019

Drive by color opinion: "nightly" isn't a term exclusive to Joyent, but still pretty far on the jargon scale. Is there a more self-descriptive term we could use? (slow? expensive?)

Expensive Sounds Good.

@cburroughs
Copy link
Contributor

I have not used testng groups before and am not sure if I understand how the flags are to be used. With -Dit.dryRun=true I got Expected test count: 232. If I added -Dgroups=headers I got Expected test count: 7, which seemed okay. But -DexcludeGroups=expensive and showed Expected test count: 232.

@indianwhocodes
Copy link
Contributor Author

I have not used testng groups before and am not sure if I understand how the flags are to be used. With -Dit.dryRun=true I got Expected test count: 232. If I added -Dgroups=headers I got Expected test count: 7, which seemed okay. But -DexcludeGroups=expensive and showed Expected test count: 232.

Its because the expensive test group is enabled-false by default

@dekobon
Copy link
Contributor

dekobon commented Apr 22, 2019

When running the test from Maven using mvn verify, I got the following errors:

[ERROR] Tests run: 221, Failures: 3, Errors: 0, Skipped: 25, Time elapsed: 2,381.243 s <<< FAILURE! - in TestSuite
[ERROR] beforeClass(com.joyent.manta.client.MantaClientMetadataIT)  Time elapsed: 0.019 s  <<< FAILURE!
java.lang.NullPointerException
	at com.joyent.manta.client.MantaClientMetadataIT.beforeClass(MantaClientMetadataIT.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
	at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

[ERROR] beforeClass(com.joyent.manta.client.MantaClientMetadataIT)  Time elapsed: 4.03 s  <<< FAILURE!
java.lang.NullPointerException
	at com.joyent.manta.client.MantaClientMetadataIT.beforeClass(MantaClientMetadataIT.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
	at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

[ERROR] beforeClass(com.joyent.manta.client.MantaClientMetadataIT)  Time elapsed: 9.977 s  <<< FAILURE!
java.lang.NullPointerException
	at com.joyent.manta.client.MantaClientMetadataIT.beforeClass(MantaClientMetadataIT.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
	at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Failures: 
[ERROR] com.joyent.manta.client.MantaClientMetadataIT.beforeClass(com.joyent.manta.client.MantaClientMetadataIT)
[ERROR]   Run 1: MantaClientMetadataIT.beforeClass:51 NullPointer
[INFO]   Run 2: PASS
[ERROR]   Run 3: MantaClientMetadataIT.beforeClass:51 NullPointer
[INFO]   Run 4: PASS
[ERROR]   Run 5: MantaClientMetadataIT.beforeClass:51 NullPointer
[INFO]   Run 6: PASS
[INFO] 
[INFO] 
[ERROR] Tests run: 205, Failures: 1, Errors: 0, Skipped: 11

@indianwhocodes
Copy link
Contributor Author

I have not used testng groups before and am not sure if I understand how the flags are to be used. With -Dit.dryRun=true I got Expected test count: 232. If I added -Dgroups=headers I got Expected test count: 7, which seemed okay. But -DexcludeGroups=expensive and showed Expected test count: 232.

Its because the expensive test group is enabled-false by default

I have not used testng groups before and am not sure if I understand how the flags are to be used. With -Dit.dryRun=true I got Expected test count: 232. If I added -Dgroups=headers I got Expected test count: 7, which seemed okay. But -DexcludeGroups=expensive and showed Expected test count: 232.

Also, I believe the comment here might be useful.

@indianwhocodes
Copy link
Contributor Author

Deprecated classes coming within expensive testng-groups are being disabled by default

@cburroughs
Copy link
Contributor

I have -- I think -- the latest branch checked out. Git tells me the last commit is 4d6d73b. Do I have that right?

When I do mvn verify -Dit.dryRun=true I get

[main] INFO  com.joyent.test.util.TestListingInterceptor [ ] - DRY-RUN: Listing [294] tests that would have run

But when I run mvn verify -Dit.dryRun=true -DexcludedGroups=expensive

[main] INFO  com.joyent.test.util.TestListingInterceptor [ ] - DRY-RUN: Listing [322] tests that would have run

Do these counts match yours? Shouldn't the number of expected tests go down when any -DexcludedGroups are given?

@indianwhocodes
Copy link
Contributor Author

indianwhocodes commented Apr 30, 2019

I have -- I think -- the latest branch checked out. Git tells me the last commit is 4d6d73b. Do I have that right?

When I do mvn verify -Dit.dryRun=true I get

[main] INFO  com.joyent.test.util.TestListingInterceptor [ ] - DRY-RUN: Listing [294] tests that would have run

But when I run mvn verify -Dit.dryRun=true -DexcludedGroups=expensive

[main] INFO  com.joyent.test.util.TestListingInterceptor [ ] - DRY-RUN: Listing [322] tests that would have run

Do these counts match yours? Shouldn't the number of expected tests go down when any -DexcludedGroups are given?

Yes, These counts match mine, but when you invoke -DexcludedGroups parameter from the command line, it overrides all the exclusion tags defined in the testng-it.xml file which consecutively results in leading to more redundant test runs. This PR is made so that we won't have to invoke -DexcludedGroups anymore and also eliminates redundant test runs since we can now source the testng-it (Integration-Test Suite) to perform the exclusions for us using the added <exclude> tags.

@indianwhocodes
Copy link
Contributor Author

indianwhocodes commented Apr 30, 2019

@cburroughs the discussion here will shed more light on what I am talking about. Also,

Unfortunately it looks like TestNG doesn't completely support filtering a test suite by groups so we need to be more explicit about suite definition.

@cburroughs
Copy link
Contributor

Glad to hear I'm not crazy about the counts. Per our call, we have two use cases we want to be easy to from the command line (for jenkins). Anything fancier is okay as a convenience for developers and their IDEs:
(1) Run all of the tests we care about. This would be for nightly and after a commit to master.
(2) Run all of the tests we care about, except the really expensive ones. This would be for testing PRs.

With this PR the answer to (1) is just the default from running mvn verify. What is answer for (2)?

@dekobon
Copy link
Contributor

dekobon commented May 21, 2019

I just noticed that EncryptedServerSideMultipartManagerIT doesn't have canListUploadsInProgress marked as @Test(groups = { "expensive" }).

Additionally, when running mvn clean verify it doesn't skip tests in the expensive group by default. Is that behavior by design?

@indianwhocodes
Copy link
Contributor Author

When running mvn verify against the root directory.

[main] INFO  com.joyent.test.util.MantaPathSuiteListener [165.225.164.10 1b94e3c8-8967-11e9-b295-e336595f6b9e] - Removing base suite path: /ashwin.nair/stor/java-manta-integration-tests/$SUITE-UUID/
[INFO] Results:
[INFO] 
[WARNING] Tests run: 253, Failures: 0, Errors: 0, Skipped: 11



Total time: 24:37 min

@indianwhocodes
Copy link
Contributor Author

If I run mvn verify it.dryRun=true as per the PR initial description I get

[ERROR] Unknown lifecycle phase "it.dryRun=true". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]

After a bit more reading, it seems you mean mvn verify -Dit.dryRun=true (it's correct further into your initial PR description)

All that remains is for me to ask why you opened this PR? What problem you solve, and how I can determine the problem has been solved (or feature added)?

Goals & Challenges updated in the PR Description along with additional changes in javadocs and testing documentation.

TESTING.md Outdated Show resolved Hide resolved
TESTING.md Outdated Show resolved Hide resolved
@cburroughs
Copy link
Contributor

Glad to hear I'm not crazy about the counts. Per our call, we have two use cases we want to be easy to from the command line (for jenkins). Anything fancier is okay as a convenience for developers and their IDEs:
(1) Run all of the tests we care about. This would be for nightly and after a commit to master.
(2) Run all of the tests we care about, except the really expensive ones. This would be for testing PRs.
With this PR the answer to (1) is just the default from running mvn verify. What is answer for (2)?

After discussing with Elijah, reached the conclusion that all expensive tests will be excluded from mvn verify which will be an answer to both aforementioned use-cases.

This essentially means for following use-cases:

1. execute `mvn clean verify -DincludedGroups=expensive`. if we are opting to test heavyweight operations involving `mpu` and `jobs`.

2. execute `mvn clean verify`

I'm afraid I'm still having trouble getting the two uses case to work, this gives me 250 tests:

$ mvn --projects java-manta-it --also-make  verify -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 250

But neither of these are giving me > 250 tests

 $ mvn --projects java-manta-it --also-make  verify -DincludedGroups=expensive -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 250
 $ mvn --projects java-manta-it --also-make verify -Dgroups=expensive -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 0

What is the set of flags to run all of the tests as we would for post-commit CI?

@indianwhocodes
Copy link
Contributor Author

So we are entirely removing the approach of having an expensive test-group due to TestNG being extremely unreliable in its framework to support testng group exclusions cleanly as it was mentioned in #364 as well.

All integration-tests that have been anointed as expensive have been removed from the default Testing suite file so all we have to do now is to run mvn verify as a Jenkins job for all pending PR's since the default test-suite is already running a subset of all the integration-tests (excluding the unimportant:MantaClientJobIT, EncryptedJobsMultipartManager etc. and deprecated integration-tests).

@indianwhocodes
Copy link
Contributor Author

Glad to hear I'm not crazy about the counts. Per our call, we have two use cases we want to be easy to from the command line (for jenkins). Anything fancier is okay as a convenience for developers and their IDEs:
(1) Run all of the tests we care about. This would be for nightly and after a commit to master.
(2) Run all of the tests we care about, except the really expensive ones. This would be for testing PRs.
With this PR the answer to (1) is just the default from running mvn verify. What is answer for (2)?

After discussing with Elijah, reached the conclusion that all expensive tests will be excluded from mvn verify which will be an answer to both aforementioned use-cases.
This essentially means for following use-cases:

1. execute `mvn clean verify -DincludedGroups=expensive`. if we are opting to test heavyweight operations involving `mpu` and `jobs`.

2. execute `mvn clean verify`

I'm afraid I'm still having trouble getting the two uses case to work, this gives me 250 tests:

$ mvn --projects java-manta-it --also-make  verify -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 250

But neither of these are giving me > 250 tests

 $ mvn --projects java-manta-it --also-make  verify -DincludedGroups=expensive -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 250
 $ mvn --projects java-manta-it --also-make verify -Dgroups=expensive -Dit.dryRun=true | grep 'Expected test count'
[main] INFO  com.joyent.test.util.MantaPathSuiteListener [ ] - Expected test count: 0

What is the set of flags to run all of the tests as we would for post-commit CI?

We would just be running these tests like we run normal integration-tests. For instance,
mvn verify -Dtest=MantaClientJobtIT

@cburroughs
Copy link
Contributor

In that case, is it still necessary to switch from wildcards to a explicit list in the testng suite file? I thought we did that as part of trying to get groups to work, but it has an ongoing cost (future engineers will inevitably mess it up)

@indianwhocodes
Copy link
Contributor Author

indianwhocodes commented Jun 29, 2019

In that case, is it still necessary to switch from wildcards to a explicit list in the testng suite file? I thought we did that as part of trying to get groups to work, but it has an ongoing cost (future engineers will inevitably mess it up)

Yes but I explicitly added that in the documentation here that developers will have to add definitions to the testing suite once they come up with a new integration-test. I will make sure it gets added to the general SDK User Guide as well. Also, class-level definitions were in-place to reduce the redundancies significantly otherwise we were running each integration-test almost 6 times probably more.

Copy link
Contributor

@cburroughs cburroughs left a comment

Choose a reason for hiding this comment

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

I noted a few minor doc or formatting nits on the last read through. This is good to land once those are folded in. Thanks for shepherding this big set of changes through.

TESTING.md Outdated Show resolved Hide resolved
TESTING.md Outdated Show resolved Hide resolved
@indianwhocodes
Copy link
Contributor Author

I noted a few minor doc or formatting nits on the last read through. This is good to land once those are folded in. Thanks for shepherding this big set of changes through.

Thanks @cburroughs for this thorough review, learned a lot of much needed conventions, basics through this entire process.

@dekobon
Copy link
Contributor

dekobon commented Jul 3, 2019

I ran the integration tests for the latest bits and found the following test failure:

[ERROR] Tests run: 256, Failures: 1, Errors: 0, Skipped: 14, Time elapsed: 953.694 s <<< FAILURE! - in TestSuite
[ERROR] pruneParentDirectoriesFull(com.joyent.manta.client.MantaClientDirectoriesIT)  Time elapsed: 29.197 s  <<< FAILURE!
java.lang.AssertionError: expected [false] but found [true]
        at org.testng.Assert.fail(Assert.java:96)
        at org.testng.Assert.failNotEquals(Assert.java:776)
        at org.testng.Assert.assertFalse(Assert.java:65)
        at org.testng.Assert.assertFalse(Assert.java:75)
        at com.joyent.manta.client.MantaClientDirectoriesIT.pruneParentDirectoriesFull(MantaClientDirectoriesIT.java:262)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

@indianwhocodes
Copy link
Contributor Author

I ran the integration tests for the latest bits and found the following test failure:

[ERROR] Tests run: 256, Failures: 1, Errors: 0, Skipped: 14, Time elapsed: 953.694 s <<< FAILURE! - in TestSuite
[ERROR] pruneParentDirectoriesFull(com.joyent.manta.client.MantaClientDirectoriesIT)  Time elapsed: 29.197 s  <<< FAILURE!
java.lang.AssertionError: expected [false] but found [true]
        at org.testng.Assert.fail(Assert.java:96)
        at org.testng.Assert.failNotEquals(Assert.java:776)
        at org.testng.Assert.assertFalse(Assert.java:65)
        at org.testng.Assert.assertFalse(Assert.java:75)
        at com.joyent.manta.client.MantaClientDirectoriesIT.pruneParentDirectoriesFull(MantaClientDirectoriesIT.java:262)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

It seems this particular failure occurred due to the STRING_GENERATOR making some discrepancies when it came to creating the parentDir and childDir directories and some inconsistencies with their depths.
I ran this specific test separately and ran it while I invoked mvn verify and I didn't encounter any failures perhaps you could attach both String values so that I could interpret as to the reason it failed but the changes that have been checked in within #507 has nothing to do with this failure.

@dekobon
Copy link
Contributor

dekobon commented Jul 3, 2019

I'm going to go ahead and approve the PR. Can you make another ticket to capture the problems with that particular test?

@indianwhocodes
Copy link
Contributor Author

indianwhocodes commented Jul 3, 2019

I'm going to go ahead and approve the PR. Can you make another ticket to capture the problems with that particular test?

Yes, Issue #542 created to actively track this issue.

@indianwhocodes indianwhocodes merged commit ed0f8e1 into TritonDataCenter:master Jul 3, 2019
@indianwhocodes indianwhocodes deleted the testgroups-branch branch July 3, 2019 21:33
@indianwhocodes indianwhocodes restored the testgroups-branch branch July 3, 2019 21:33
@indianwhocodes indianwhocodes deleted the testgroups-branch branch July 3, 2019 21:33
@indianwhocodes indianwhocodes restored the testgroups-branch branch July 3, 2019 21:33
@indianwhocodes
Copy link
Contributor Author

This branch has been squashed and merged into master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

testng encryptionCipher parameter does not appear to do anything
4 participants